Beispiel #1
0
        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"));
        }
Beispiel #2
0
        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());
        }
Beispiel #3
0
        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());
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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());
        }