@Test
fun validationSetsProperErrorsThenClearsThemAfterChangesMade() {
val view = TestLoginView()
val presenter = LoginPresenter(view, MockStorage())
presenter.validateAllInput()
val expectedEmailError = ValidationResult.Invalid.WasNull("email")
val expectedPasswordError = ValidationResult.Invalid.WasNull("password")
assertFalse(presenter.isCurrentInputValid())
assertEquals(expectedEmailError.reason, view.emailError)
assertEquals(expectedPasswordError.reason, view.passwordError)
view.password = "aaaaaa"
presenter.validatePassword()
assertFalse(presenter.isCurrentInputValid())
assertEquals(expectedEmailError.reason, view.emailError)
assertNull(view.passwordError)
view.email = "
[email protected]"
presenter.validateEmail()
assertTrue(presenter.isCurrentInputValid())
assertNull(view.emailError)
assertNull(view.passwordError)
}