This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class WeatherPresenter : WeatherContract.Presenter { | |
private var _view: WeakReference<WeatherContract.View>? | |
private var view: WeatherContract.View? | |
get() = _view?.get() ?: null | |
override fun takeView(view: WeatherContract.View) { | |
this._view = WeakReference(view) | |
} | |
override fun dropView() { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
navigationController?.popViewController(animated: true) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
this.view = view |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
presenter = WeatherPresenter() | |
presenter.takeView(view: self) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let weatherView = WeatherViewController() | |
navigationController?.pushViewController(weatherView, animated: true) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class WeatherViewController: UIViewController, WeatherContractView { | |
private var presenter: WeatherContractPresenter? | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
presenter = WeatherPresenter() | |
presenter.takeView(view: self) | |
} | |
dealloc { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class WeatherViewController: UIViewController, WeatherContractView { | |
private var presenter: WeatherContractPresenter? | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
presenter = WeatherPresenterImpl() | |
presenter.takeView(view: self) | |
} | |
dealloc { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class WeatherPresenter : WeatherContract.Presenter { | |
private var view: WeatherContract.View? | |
override fun takeView(view: WeatherContract.View) { | |
this.view = view | |
} | |
override fun dropView() { | |
this.view = null | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
interface WeatherContract { | |
interface View { | |
fun showError(errorMessage: String) | |
fun showSpinner(loading: Boolean) | |
fun setLocation(location: String) | |
fun setWeather(temperature: String, conditions: String) | |
} | |
interface Presenter { | |
fun takeView(view: View) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class WeatherPresenterTest { | |
private lateinit var presenter: WeatherContract.Presenter | |
@RelaxedMockK private lateinit var view: WeatherContract.View | |
@MockK private lateinit var locationProvider: LocationProvider | |
@MockK private lateinit var weatherRepository: WeatherRepository | |
@BeforeTest |
NewerOlder