public void ValidAddOnderhoudsopdrachtPostDomainServiceExceptionTest() { // Arrange var onderhoudsopdrachtServiceMock = new Mock <IOnderhoudsopdrachtService>(MockBehavior.Strict); onderhoudsopdrachtServiceMock.Setup(x => x.AddOnderhoudsopdracht(It.IsAny <CreateOnderhoudCommand>())).Throws <Exception>(); var logServiceMock = new Mock <ILogService>(MockBehavior.Strict); logServiceMock.Setup(x => x.Log(It.IsAny <LogMessage>())); logServiceMock.Setup(x => x.LogException(It.IsAny <LogMessage>())); var controller = new OnderhoudController(onderhoudsopdrachtServiceMock.Object, logServiceMock.Object); // Act var result = controller.Post(new CreateOnderhoudCommand()); // Assert onderhoudsopdrachtServiceMock.Verify(x => x.AddOnderhoudsopdracht(It.IsAny <CreateOnderhoudCommand>()), Times.Once()); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult)); var invalidRequest = (result as BadRequestObjectResult).Value as InvalidRequest; Assert.AreEqual("Er ging iets mis. Onderhoud niet geplaatst.", invalidRequest.Message); Assert.AreEqual(0, invalidRequest.InvalidProperties.Count()); logServiceMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Never()); logServiceMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Once()); }
public void ValidAddOnderhoudsopdrachtPostTest() { // Arrange var logServiceMock = new Mock <ILogService>(MockBehavior.Strict); logServiceMock.Setup(x => x.Log(It.IsAny <LogMessage>())); logServiceMock.Setup(x => x.LogException(It.IsAny <LogMessage>())); var onderhoudsopdrachtServiceMock = new Mock <IOnderhoudsopdrachtService>(MockBehavior.Strict); onderhoudsopdrachtServiceMock.Setup(x => x.AddOnderhoudsopdracht(It.IsAny <CreateOnderhoudCommand>())); var controller = new OnderhoudController(onderhoudsopdrachtServiceMock.Object, logServiceMock.Object); // Act var result = controller.Post(new CreateOnderhoudCommand()); // Assert onderhoudsopdrachtServiceMock.Verify(x => x.AddOnderhoudsopdracht(It.IsAny <CreateOnderhoudCommand>()), Times.Once()); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(OkResult)); logServiceMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Never()); logServiceMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Never()); }
public void InvalidAddOnderhoudsopdrachtPostTest() { // Arrange var onderhoudsopdrachtServiceMock = new Mock <IOnderhoudsopdrachtService>(MockBehavior.Strict); onderhoudsopdrachtServiceMock.Setup(x => x.AddOnderhoudsopdracht(It.IsAny <CreateOnderhoudCommand>())); var logServiceMock = new Mock <ILogService>(MockBehavior.Strict); logServiceMock.Setup(x => x.Log(It.IsAny <LogMessage>())); logServiceMock.Setup(x => x.LogException(It.IsAny <LogMessage>())); var controller = new OnderhoudController(onderhoudsopdrachtServiceMock.Object, logServiceMock.Object); controller.ModelState.AddModelError("error", "testerror"); // Act var result = controller.Post(new CreateOnderhoudCommand()); // Assert onderhoudsopdrachtServiceMock.Verify(x => x.AddOnderhoudsopdracht(It.IsAny <CreateOnderhoudCommand>()), Times.Never()); Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult)); var invalidRequest = (result as BadRequestObjectResult).Value as InvalidRequest; Assert.AreEqual("Request bevat: 1 fouten", invalidRequest.Message); logServiceMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Once()); logServiceMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Never()); }
public void FacadeToDomainService() { // Arrange var eventPublisherMock = new Mock <IEventPublisher>(MockBehavior.Strict); eventPublisherMock.Setup(x => x.Publish(It.IsAny <DomainEvent>())); using (var onderhoudsopdrachtRepo = new OnderhoudsopdrachtRepository(new OnderhoudBeheerContext(_options))) { var onderhoudsopdrachtService = new OnderhoudsopdrachtService(onderhoudsopdrachtRepo, eventPublisherMock.Object); var logServiceMock = new Mock <ILogService>(MockBehavior.Strict); logServiceMock.Setup(x => x.Log(It.IsAny <LogMessage>())); logServiceMock.Setup(x => x.LogException(It.IsAny <LogMessage>())); // Act // Facade receives valid CreateOnderhoudCommand var onderhoudController = new OnderhoudController(onderhoudsopdrachtService, logServiceMock.Object); // Post multiple CreateOnderhoudCommands to the controller using Post method foreach (var createOnderhoudCommand in _validCreateOnderhoudCommands) { // Post will pass CreateOnderhoudCommands to DomainService (OnderhoudsopdrachtService) onderhoudController.Post(createOnderhoudCommand); } // Results stored in database var storedInDatabase = onderhoudsopdrachtRepo.FindAll(); // Assert // Test if repository saved correct entity Assert.AreEqual(3, storedInDatabase.Count()); CollectionAssert.AllItemsAreNotNull(storedInDatabase.ToList()); // Check if all can be found by Id. Id's are starting at 1 and Database is re-created for every test. for (var i = 1; i < _validCreateOnderhoudCommands.Count + 1; i++) { var currentItem = storedInDatabase.Where(x => x.Id == i).FirstOrDefault(); Assert.IsNotNull(currentItem); } // Test if Publisher has been called exactly 3 times eventPublisherMock.Verify(x => x.Publish(It.IsAny <DomainEvent>()), Times.Exactly(_validCreateOnderhoudCommands.Count)); logServiceMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Never()); logServiceMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Never()); } }