public void SetErrorMessageInViewModel_IfNoChanges() { // Arrange var errorMessage = "Something is wrong!"; var mockedView = new Mock <IAddNewClassView>(); mockedView.Setup(v => v.Model).Returns(new AddNewClassViewModel()); var mockedTeacherService = new Mock <ITeacherService>(); mockedTeacherService.Setup(s => s.Save()).Returns(0); mockedTeacherService.Setup(s => s.FindById(It.IsAny <string>())).Verifiable(); var mockedStudentClassService = new Mock <IStudentClassService>(); mockedStudentClassService.Setup(s => s.Add(It.IsAny <StudentClass>())).Verifiable(); var mockedStudentClassFactory = new Mock <IStudentClassFactory>(); mockedStudentClassFactory.Setup(f => f.CreateClass(It.IsAny <string>(), It.IsAny <string>())).Verifiable(); var presenter = new AddNewClassPresenter(mockedView.Object, mockedStudentClassService.Object, mockedTeacherService.Object, mockedStudentClassFactory.Object); var ev = new AddNewClassEventArgs(null, null); // Act & Assert Assert.DoesNotThrow(() => mockedView.Raise(v => v.CreateClassClick += null, ev)); Assert.AreEqual(errorMessage, mockedView.Object.Model.ErrorMessage); Assert.IsFalse(mockedView.Object.Model.IsSuccess); // Verify that the method is stopped and other dependencies are not called mockedTeacherService.Verify(s => s.Save(), Times.Never); mockedTeacherService.Verify(s => s.FindById(It.IsAny <string>()), Times.Never); mockedStudentClassService.Verify(s => s.Add(It.IsAny <StudentClass>()), Times.Once); }
public void CallTeacherService_GetTeachersWithoutClass_AndSetResultInViewModel() { // Arrange var teachers = new List <MinTeacherInfoDTO>() { new MinTeacherInfoDTO() { FirstName = "Test" } }; var mockedView = new Mock <IAddNewClassView>(); mockedView.Setup(v => v.Model).Returns(new AddNewClassViewModel()); var mockedTeacherService = new Mock <ITeacherService>(); mockedTeacherService.Setup(s => s.GetTeachersWithoutClass()).Returns(teachers).Verifiable(); var mockedStudentClassService = new Mock <IStudentClassService>(); var mockedStudentClassFactory = new Mock <IStudentClassFactory>(); var presenter = new AddNewClassPresenter(mockedView.Object, mockedStudentClassService.Object, mockedTeacherService.Object, mockedStudentClassFactory.Object); // Act mockedView.Raise(v => v.PageLoad += null, EventArgs.Empty); // Assert CollectionAssert.AreEqual(teachers, mockedView.Object.Model.FreeTeachers); mockedTeacherService.Verify(s => s.GetTeachersWithoutClass(), Times.Once); }