public void HandleApkKeuringsVerzoekRdwApkAgentCalledTest() { // Arrange var rdwApkAgentMock = new Mock <IRdwApkAgent>(MockBehavior.Strict); var verzoekConverterMock = new Mock <IKeuringsVerzoekConverter>(MockBehavior.Strict); var logRepoMock = new Mock <IRepository <ApkAanvraagLog, long> >(MockBehavior.Strict); verzoekConverterMock.Setup(l => l.ToKeuringsVerzoekAntwoord(It.IsAny <Keuringsregistratie>())).Returns(new KeuringsVerzoekAntwoord()); logRepoMock.Setup(l => l.Insert(It.IsAny <ApkAanvraagLog>())); logRepoMock.Setup(l => l.Update(It.IsAny <ApkAanvraagLog>())); rdwApkAgentMock.Setup(x => x.SendApkKeuringsVerzoek(It.IsAny <string>())).Returns( "<?xml version=\"1.0\" encoding=\"utf - 8\"?><apkKeuringsverzoekResponseMessage xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><keuringsregistratie correlatieId=\"f7f56961-6928-46ef-9b49-98d611ce2b71\" xmlns=\"http://www.rdw.nl\" xmlns:apk=\"http://www.rdw.nl/apk\"><kenteken>string</kenteken><apk:keuringsdatum>24-11-2016</apk:keuringsdatum><apk:steekproef xsi:nil=\"true\"/></keuringsregistratie></apkKeuringsverzoekResponseMessage>" ); var publisherMock = new Mock <IEventPublisher>(MockBehavior.Strict); publisherMock.Setup(x => x.Publish(It.IsAny <DomainEvent>())); var target = new RdwApkManager(rdwApkAgentMock.Object, verzoekConverterMock.Object, logRepoMock.Object, "http://www.rdw.nl", "http://www.rdw.nl/apk", publisherMock.Object); var apkKeuringsVerzoekCommand = new ApkKeuringsVerzoekCommand(); var result = target.HandleApkKeuringsVerzoek(apkKeuringsVerzoekCommand); // Act - Assert rdwApkAgentMock.Verify(x => x.SendApkKeuringsVerzoek(It.IsAny <string>()), Times.Once()); verzoekConverterMock.Verify(l => l.ToKeuringsVerzoekAntwoord(It.IsAny <Keuringsregistratie>()), Times.Once()); logRepoMock.Verify(x => x.Insert(It.IsAny <ApkAanvraagLog>()), Times.Once()); logRepoMock.Verify(x => x.Update(It.IsAny <ApkAanvraagLog>()), Times.Once()); publisherMock.Verify(x => x.Publish(It.IsAny <DomainEvent>()), Times.Once()); Assert.IsNotNull(result); }
public void ManagerTestCommand() { var logServiceMock = new Mock <ILogService>(MockBehavior.Strict); logServiceMock.Setup(x => x.Log(It.IsAny <LogMessage>())); logServiceMock.Setup(x => x.LogException(It.IsAny <LogMessage>())); var rdwApkAgentMock = new Mock <IRdwApkAgent>(MockBehavior.Strict); var verzoekConverterMock = new Mock <IKeuringsVerzoekConverter>(MockBehavior.Strict); var logRepoMock = new Mock <IRepository <ApkAanvraagLog, long> >(MockBehavior.Strict); var publisherMock = new Mock <IEventPublisher>(MockBehavior.Strict); var target = new RdwApkManager(rdwApkAgentMock.Object, verzoekConverterMock.Object, logRepoMock.Object, "http://www.rdw.nl", "http://www.rdw.nl/apk", publisherMock.Object); var apkKeuringsVerzoekCommand = new ApkKeuringsVerzoekCommand() { BedrijfPlaats = "De heurne", Bedrijfsnaam = "Marowo", EigenaarNaam = "Henk", Kenteken = "bl-bl-31", KeuringsDatum = new DateTime(2016, 1, 30), KeuringsinstantieKvkNummer = "1234 1234", KeuringsinstantieType = "Garage", Kilometerstand = 1234, VoertuigType = "auto" }; var result = target.CreateRequestFromCommand(apkKeuringsVerzoekCommand); Assert.IsNotNull(result); Assert.AreEqual("De heurne", result.Keuringsverzoek.Keuringsinstantie.Plaats); Assert.AreEqual("Marowo", result.Keuringsverzoek.Keuringsinstantie.Naam); Assert.AreEqual("Henk", result.Keuringsverzoek.Voertuig.Naam); Assert.AreEqual("bl-bl-31", result.Keuringsverzoek.Voertuig.Kenteken); Assert.AreEqual("30-1-2016", result.Keuringsverzoek.Keuringsdatum); Assert.AreEqual("1234 1234", result.Keuringsverzoek.Keuringsinstantie.Kvk); Assert.AreEqual("Garage", result.Keuringsverzoek.Keuringsinstantie.Type); Assert.AreEqual("1234", result.Keuringsverzoek.Voertuig.Kilometerstand); Assert.AreEqual("auto", result.Keuringsverzoek.Voertuig.Type); Assert.AreEqual("http://www.rdw.nl", result.Keuringsverzoek.Xmlns); Assert.AreEqual("http://www.rdw.nl/apk", result.Keuringsverzoek.Apk); Assert.AreNotEqual("00000000-0000-0000-0000-000000000000", result.Keuringsverzoek.CorrelatieId); logServiceMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Never()); logServiceMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Never()); }
public void FacadeToRdwAgent() { // 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 keuringsVerzoekConverter = new KeuringsVerzoekConverter(); var rdwApkAgentMock = new Mock <IRdwApkAgent>(MockBehavior.Strict); rdwApkAgentMock.Setup(x => x.SendApkKeuringsVerzoek(It.IsAny <string>())).Returns("<?xml version=\"1.0\" encoding=\"utf - 8\"?><apkKeuringsverzoekResponseMessage xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><keuringsregistratie correlatieId=\"f7f56961-6928-46ef-9b49-98d611ce2b71\" xmlns=\"http://www.rdw.nl\" xmlns:apk=\"http://www.rdw.nl/apk\"><kenteken>string</kenteken><apk:keuringsdatum>24-11-2016</apk:keuringsdatum><apk:steekproef xsi:nil=\"true\"/></keuringsregistratie></apkKeuringsverzoekResponseMessage>"); var publisherMock = new Mock <IEventPublisher>(MockBehavior.Strict); publisherMock.Setup(x => x.Publish(It.IsAny <DomainEvent>())); publisherMock.Setup(x => x.Dispose()); using (var apkAanvraagLogRepo = new ApkAanvraagLogRepository(new RdwContext(_options))) using (var rdwApkManager = new RdwApkManager(rdwApkAgentMock.Object, keuringsVerzoekConverter, apkAanvraagLogRepo, "keuringsverzoekXmlns", "keuringsverzoekApk", publisherMock.Object)) using (var apkController = new ApkController(rdwApkManager, logServiceMock.Object)) { // Act - Start at controller foreach (var apkKeuringsVerzoekCommand in _validApkKeuringsVerzoekCommands) { // Send commands to controller's post method apkController.Post(apkKeuringsVerzoekCommand); } // Assert // See if all commands reached the Agent rdwApkAgentMock.Verify(x => x.SendApkKeuringsVerzoek(It.IsAny <string>()), Times.Exactly(3)); logServiceMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Never()); logServiceMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Never()); var logsStoredInDatabase = apkAanvraagLogRepo.FindAll(); // One log record should be inserted for each command Assert.AreEqual(_validApkKeuringsVerzoekCommands.Count, logsStoredInDatabase.Count()); } }
public void HandleApkKeuringsVerzoekCommandNullThrowsApkKeuringsVerzoekException() { // Arrange var rdwApkAgentMock = new Mock <IRdwApkAgent>(MockBehavior.Strict); var verzoekConverterMock = new Mock <IKeuringsVerzoekConverter>(MockBehavior.Strict); var logRepoMock = new Mock <IRepository <ApkAanvraagLog, long> >(MockBehavior.Strict); var publisherMock = new Mock <IEventPublisher>(MockBehavior.Strict); var target = new RdwApkManager(rdwApkAgentMock.Object, verzoekConverterMock.Object, logRepoMock.Object, "http://www.rdw.nl", "http://www.rdw.nl/apk", publisherMock.Object ); ApkKeuringsVerzoekCommand apkKeuringsVerzoekCommand = null; // Act - Assert Assert.ThrowsException <ArgumentNullException>(() => target.HandleApkKeuringsVerzoek(apkKeuringsVerzoekCommand)); }