public IActionResult SendOnderhoudsopdracht(OnderhoudsopdrachtViewModel onderhoudsOpdracht) { // Validate ApkAanvraag ViewModel if (!ModelState.IsValid) { return(View("Toevoegen", onderhoudsOpdracht)); } // ModelState is valid var createOnderhoudCommand = MapCreateOnderhoudCommand(onderhoudsOpdracht); object createOnderhoudResult; try { createOnderhoudCommand.Validate(); createOnderhoudResult = _onderhoudBeheerServiceAgent.AddOnderhoudsopdracht(createOnderhoudCommand); } catch (Exception ex) { _logger.LogException(new LogMessage(ex.Message, ex.StackTrace)); ViewData["FeedbackMessage"] = "Sorry, de service is op dit niet beschikbaar. Probeer het later opnieuw."; return(View("Toevoegen", onderhoudsOpdracht)); } if ((createOnderhoudResult is InvalidRequest)) { ViewData["FeedbackMessage"] = "Sorry, de opdracht kon niet verwerkt worden. Probeer het later opnieuw."; return(RedirectToAction("Toevoegen", onderhoudsOpdracht)); } return(RedirectToAction("OnderhoudsopdrachtToegevoegd")); }
public void SendOnderhoudsopdrachtWithInvalidViewModelNotCallsOnderhoudBeheerService() { // Arrange var repositoryMock = new Mock <IRepository <Onderhoudsopdracht, long> >(MockBehavior.Strict); var loggerMock = new Mock <ILogService>(MockBehavior.Strict); loggerMock.Setup(x => x.Log(It.IsAny <LogMessage>())); loggerMock.Setup(x => x.LogException(It.IsAny <LogMessage>())); OnderhoudsopdrachtenController controller = new OnderhoudsopdrachtenController(_onderhoudBeheerServiceAgent, repositoryMock.Object, loggerMock.Object); controller.ModelState.AddModelError("error", "Kilometerstand moet minimaal 0 zijn"); OnderhoudsopdrachtViewModel onderhoudsopdracht = new OnderhoudsopdrachtViewModel() { Kenteken = "DF-RE-60", Kilometerstand = -1, OnderhoudOmschrijving = "Uitlaat is lek", IsAPKKeuring = false, }; // Act var result = controller.SendOnderhoudsopdracht(onderhoudsopdracht); // Assert Assert.IsNotNull(result); Assert.IsNotNull((result as ViewResult).Model); Assert.AreEqual(0, _onderhoudBeheerServiceAgent.AddOnderhoudsopdrachtTimesCalled); Assert.IsInstanceOfType(result, typeof(IActionResult)); loggerMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Never()); loggerMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Never()); }
public void SendOnderhoudsopdrachtWithValidViewModelCallsOnderhoudBeheerService() { // Arrange var repositoryMock = new Mock <IRepository <Onderhoudsopdracht, long> >(MockBehavior.Strict); var loggerMock = new Mock <ILogService>(MockBehavior.Strict); loggerMock.Setup(x => x.Log(It.IsAny <LogMessage>())); loggerMock.Setup(x => x.LogException(It.IsAny <LogMessage>())); OnderhoudsopdrachtenController controller = new OnderhoudsopdrachtenController(_onderhoudBeheerServiceAgent, repositoryMock.Object, loggerMock.Object); OnderhoudsopdrachtViewModel onderhoudsopdracht = new OnderhoudsopdrachtViewModel() { Kenteken = "DF-RE-60", Kilometerstand = 100000, OnderhoudOmschrijving = "Uitlaat is lek", IsAPKKeuring = false, BestuurderNaam = "Rob", TelefoonNrBestuurder = "123" }; // Act var result = controller.SendOnderhoudsopdracht(onderhoudsopdracht); // Assert Assert.IsNotNull(result); Assert.AreEqual(1, _onderhoudBeheerServiceAgent.AddOnderhoudsopdrachtTimesCalled); Assert.IsInstanceOfType(result, typeof(IActionResult)); loggerMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Never()); loggerMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Never()); }
public IActionResult Index(long onderhoudsopdrachtId) { // If OnderhoudsopdrachtId was passed, check if we can find it and use it to fill form in advance bool opdrachtExists = _onderhoudsopdrachtRepository.Exists(onderhoudsopdrachtId); if (!opdrachtExists) { return(RedirectToAction("Index", "Onderhoudsopdrachten")); } var opdracht = _onderhoudsopdrachtRepository.Find(onderhoudsopdrachtId); var model = new OnderhoudsopdrachtViewModel(opdracht); return(View(model)); }
private CreateOnderhoudCommand MapCreateOnderhoudCommand(OnderhoudsopdrachtViewModel onderhoudsOpdracht) { CreateOnderhoudCommand createOnderhoudCommand = new CreateOnderhoudCommand() { Kenteken = onderhoudsOpdracht.Kenteken, Kilometerstand = onderhoudsOpdracht.Kilometerstand, OnderhoudsBeschrijving = onderhoudsOpdracht.OnderhoudOmschrijving, OpdrachtAangemaakt = DateTime.UtcNow, HasApk = onderhoudsOpdracht.IsAPKKeuring, Bestuurder = onderhoudsOpdracht.BestuurderNaam, TelefoonNrBestuurder = onderhoudsOpdracht.TelefoonNrBestuurder }; return(createOnderhoudCommand); }
public void SendOnderhoudsopdrachtWithFailingAgentReturnsMessage() { // Arrange var repositoryMock = new Mock <IRepository <Onderhoudsopdracht, long> >(MockBehavior.Strict); var loggerMock = new Mock <ILogService>(MockBehavior.Strict); loggerMock.Setup(x => x.Log(It.IsAny <LogMessage>())); loggerMock.Setup(x => x.LogException(It.IsAny <LogMessage>())); OnderhoudsopdrachtenController controller = new OnderhoudsopdrachtenController(_onderhoudBeheerServiceExceptionAgent, repositoryMock.Object, loggerMock.Object); OnderhoudsopdrachtViewModel onderhoudsopdracht = new OnderhoudsopdrachtViewModel() { Kenteken = "DF-RE-60", Kilometerstand = 100000, OnderhoudOmschrijving = "Uitlaat is lek", IsAPKKeuring = false, BestuurderNaam = "Rob", TelefoonNrBestuurder = "1234" }; // Act var result = controller.SendOnderhoudsopdracht(onderhoudsopdracht); // Assert ViewResult viewResult = (result as ViewResult); OnderhoudsopdrachtViewModel resultViewModel = (viewResult.Model as OnderhoudsopdrachtViewModel); Assert.AreEqual(1, _onderhoudBeheerServiceExceptionAgent.AddOnderhoudsopdrachtTimesCalled); Assert.AreEqual((string)controller.ViewData["FeedbackMessage"], "Sorry, de service is op dit niet beschikbaar. Probeer het later opnieuw."); Assert.AreEqual(onderhoudsopdracht.Kenteken, resultViewModel.Kenteken); loggerMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Never()); loggerMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Once()); }