Skip to content

Instantly share code, notes, and snippets.

View TheAdamBorek's full-sized avatar

Adam Borek TheAdamBorek

View GitHub Profile
@TheAdamBorek
TheAdamBorek / pre_push.md
Last active June 1, 2016 17:40
pre_push git hook which invokes synx script before every push

Instalation

To install this hook you have to create a pre_push file inside .git/hooks/ and paste there the script written below. Next you have to set execute permisions with following command:

$ chmod a+x pre_push

Don't forget to change the project name inside the script.

@TheAdamBorek
TheAdamBorek / PostsListViewModel.swift
Last active August 21, 2016 12:42
Inject an generic struct
//
// Created by Adam Borek on 17.06.2016.
//
import Foundation
import RxSwift
import RxCocoa
class PostsListViewModel {
typealias Index = Int
private var selectedOption: Observable<ImageSource> {
return Observable.create { [weak self] observer in
guard let `self` = self else {
observer.onCompleted()
return Disposables.create()
}
let actionSheet = self.prepareActionSheet(with: observer)
self.presenter?.present(actionSheet)
return Disposables.create {
final class ViewModelTests: XCTestCase {
private var subject: AvatarViewModel!
var imageHavingMock: ImageHavingStub!
override func setUp() {
super.setUp()
rx_disposeBag = DisposeBag()
imageHavingMock = ImageHavingStub()
subject = AvatarViewModel(imageReceiver: imageHavingMock)
}
func test_receiveImage_onButtonClick() {
}
let buttonTap = PublishSubject<Void>()
buttonTap.bindTo(subject.chooseImageButtonPressed)
.disposed(by: rx_disposeBag)
buttonTap.onNext(())
XCTAssertEqual(resultImage, imageHavingMock.expectedImage)
func test_receiveImage_onButtonClick() {
var resultImage: UIImage!
subject.image.drive(onNext: { image in
resultImage = image
}).disposed(by: rx_disposeBag)
buttonTap.onNext(())
XCTAssertEqual(resultImage, imageHavingMock.expectedImage)
}
var resultImage: UIImage!
subject.image.drive(onNext: { image in
resultImage = image
}).disposed(by: rx_disposeBag)
func test_receiveImage_onButtonClick_version2() {
let testScheduler = TestScheduler(initialClock: 0)
}