public void ValidKentekensTrue()
        {
            // Arrange
            var invalidKentekens   = new[] { "11-AA-BB", "01-02-AA", "01-BBB-ZZ", "01-A-BZA" };
            var defaultApkAanvraag = new ApkAanvraagViewModel
            {
                Kilometerstand = 100,
                EigenaarAuto   = "Max",
                VoertuigType   = "personenauto"
            };
            bool modelStateIsValid = true;

            // Act
            foreach (var invalidKenteken in invalidKentekens)
            {
                // Update to new faulty kenteken
                defaultApkAanvraag.Kenteken = invalidKenteken;
                var context           = new ValidationContext(defaultApkAanvraag, null, null);
                var results           = new List <ValidationResult>();
                var isModelStateValid = Validator.TryValidateObject(defaultApkAanvraag, context, results, true);
                if (!isModelStateValid)
                {
                    modelStateIsValid = false;
                    break;
                }
            }
            // Assert
            Assert.IsTrue(modelStateIsValid);
        }
示例#2
0
        public void SendApkAanvraagWithErrorsReturnsViewResult()
        {
            var webConfigMock = new Mock <IOptions <WebAppConfig> >(MockBehavior.Strict);
            // Arrange
            var loggerMock = new Mock <ILogService>(MockBehavior.Strict);

            loggerMock.Setup(x => x.Log(It.IsAny <LogMessage>()));
            loggerMock.Setup(x => x.LogException(It.IsAny <LogMessage>()));

            using (var repo = new OnderhoudsopdrachtenRepository(new GarageAdministratieContext(_options)))
            {
                var target = new ApkController(_rdwIntegrationServiceAgent, repo, loggerMock.Object, webConfigMock.Object);

                target.ModelState.AddModelError("error", "custom error");
                var model = new ApkAanvraagViewModel();
                model.EigenaarAuto = "Max";

                // Act
                var result = target.SendApkAanvraag(model);

                // Assert
                Assert.IsNotNull(result);
                Assert.IsNotNull((result as ViewResult).Model);
                Assert.AreEqual(model.EigenaarAuto, ((result as ViewResult).Model as ApkAanvraagViewModel).EigenaarAuto);

                loggerMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Never());
                loggerMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Never());
            }
        }
示例#3
0
        public void SendApkAanvraagFailingAgentMessageResult()
        {
            var webConfigMock = new Mock <IOptions <WebAppConfig> >(MockBehavior.Strict);

            webConfigMock.Setup(x => x.Value).Returns(new WebAppConfig());

            // Arrange
            var loggerMock = new Mock <ILogService>(MockBehavior.Strict);

            loggerMock.Setup(x => x.Log(It.IsAny <LogMessage>()));
            loggerMock.Setup(x => x.LogException(It.IsAny <LogMessage>()));

            using (var repo = new OnderhoudsopdrachtenRepository(new GarageAdministratieContext(_options)))
            {
                var target = new ApkController(_rdwIntegrationServiceExceptionAgent, repo, loggerMock.Object, webConfigMock.Object);

                var model = new ApkAanvraagViewModel();
                model.EigenaarAuto = "Max";

                // Act
                var result = target.SendApkAanvraag(model);

                // Assert
                Assert.IsNotNull(result);
                Assert.IsNotNull((result as ViewResult).Model);
                Assert.IsNotNull(target.ViewData["FeedbackMessage"]);
                Assert.AreEqual((string)target.ViewData["FeedbackMessage"], "Sorry, de service is op dit niet beschikbaar. Probeer het later opnieuw.");
                Assert.AreEqual(model.EigenaarAuto, ((result as ViewResult).Model as ApkAanvraagViewModel).EigenaarAuto);

                loggerMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Never());
                loggerMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Once());
            }
        }
        public void EmptyInvalidModelModelStateFalse()
        {
            // Arrange
            var model   = new ApkAanvraagViewModel();
            var context = new ValidationContext(model, null, null);
            var results = new List <ValidationResult>();

            // Act
            var isModelStateValid = Validator.TryValidateObject(model, context, results, true);

            // Assert
            Assert.IsFalse(isModelStateValid);
        }
        private ApkKeuringsVerzoekCommand CreateApkKeuringsVerzoekCommand(ApkAanvraagViewModel apkAanvraag)
        {
            var apkKeuringsVerzoekCommand = new ApkKeuringsVerzoekCommand()
            {
                OnderhoudsBeurtId          = apkAanvraag.OndehoudsopdrachtId,
                Kenteken                   = apkAanvraag.Kenteken,
                Kilometerstand             = apkAanvraag.Kilometerstand,
                EigenaarNaam               = apkAanvraag.EigenaarAuto,
                VoertuigType               = apkAanvraag.VoertuigType,
                KeuringsDatum              = DateTime.UtcNow,
                KeuringsinstantieKvkNummer = _settings.Value.KvkNummer,
                KeuringsinstantieType      = _settings.Value.InstantieType,
                Bedrijfsnaam               = _settings.Value.BedrijfsNaam,
                BedrijfPlaats              = _settings.Value.BedrijfsPlaats
            };

            return(apkKeuringsVerzoekCommand);
        }
        public void InvalidKentekenModelStateFalse()
        {
            // Arrange
            var defaultApkAanvraag = new ApkAanvraagViewModel
            {
                Kenteken       = "",
                Kilometerstand = 100,
                EigenaarAuto   = "Max",
                VoertuigType   = "personenauto"
            };
            var context = new ValidationContext(defaultApkAanvraag, null, null);
            var results = new List <ValidationResult>();

            // Act
            var modelStateIsValid = Validator.TryValidateObject(defaultApkAanvraag, context, results, true);

            // Assert
            Assert.IsFalse(modelStateIsValid);
        }
        public void InvalidVoertuigTypeModelStateFalse()
        {
            // Arrange
            var model = new ApkAanvraagViewModel
            {
                Kenteken       = "11-AA-22",
                Kilometerstand = 100,
                EigenaarAuto   = "Max",
                VoertuigType   = "motorboot"
            };

            var context = new ValidationContext(model, null, null);
            var results = new List <ValidationResult>();

            // Act
            var isModelStateValid = Validator.TryValidateObject(model, context, results, true);

            // Assert
            Assert.IsFalse(isModelStateValid);
        }
        /// <summary>
        /// Default Index page for controller
        /// </summary>
        /// <param name="apkAanvraag"></param>
        /// <returns></returns>
        public IActionResult Index(long onderhoudsopdrachtId)
        {
            var model = new ApkAanvraagViewModel();
            // If OnderhoudsopdrachtId was passed, check if we can find it and use it to fill form in advance
            var opdrachtExists = _onderhoudsopdrachtRepository.Exists(onderhoudsopdrachtId);

            if (!opdrachtExists)
            {
                return(RedirectToAction("Index", "Onderhoudsopdrachten"));
            }
            var opdracht = _onderhoudsopdrachtRepository.Find(onderhoudsopdrachtId);

            model = new ApkAanvraagViewModel()
            {
                OndehoudsopdrachtId = opdracht.OnderhoudsId,
                Kenteken            = opdracht.Kenteken,
                Kilometerstand      = opdracht.Kilometerstand,
                EigenaarAuto        = opdracht.Bestuuder
            };
            return(View(model));
        }
        public IActionResult SendApkAanvraag(ApkAanvraagViewModel apkAanvraag)
        {
            // Validate ApkAanvraag ViewModel
            if (!ModelState.IsValid)
            {
                return(View("Index", apkAanvraag));
            }

            // ModelState is valid
            var    apkKeuringsVerzoekCommand = CreateApkKeuringsVerzoekCommand(apkAanvraag);
            object keuringsVerzoekResult;

            try
            {
                keuringsVerzoekResult = _rdwIntegrationServiceAgent.MakeApkRequest(apkKeuringsVerzoekCommand);
            }
            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("Index", apkAanvraag));
            }

            if (!(keuringsVerzoekResult is KeuringsVerzoekAntwoord))
            {
                return(RedirectToAction("Index", apkAanvraag));
            }

            KeuringsVerzoekAntwoord keuringsVerzoekAntwoord = (KeuringsVerzoekAntwoord)keuringsVerzoekResult;

            if (keuringsVerzoekAntwoord.IsSteekProef == true)
            {
                var steekProefViewModel = new SteekproefViewModel(keuringsVerzoekAntwoord.SteepkProefDate);
                return(View("SteekProef", steekProefViewModel));
            }
            return(View("AutoAfgemeld"));
        }