public void ApkAanvraagLogRepositoryFindAllTest()
        {
            // Arrange - Act
            using (var repo = new ApkAanvraagLogRepository(new RdwContext(_options)))
            {
                var apkAanvraagLog1 = new ApkAanvraagLog()
                {
                    CorrelationId   = Guid.NewGuid().ToString(),
                    RequestMessage  = "RequestMessage 1",
                    ResponseMessage = "ResponseMessage 1"
                };
                repo.Insert(apkAanvraagLog1);
                var apkAanvraagLog2 = new ApkAanvraagLog()
                {
                    CorrelationId   = Guid.NewGuid().ToString(),
                    RequestMessage  = "RequestMessage 2",
                    ResponseMessage = "ResponseMessage 2"
                };
                repo.Insert(apkAanvraagLog2);
            }

            // Assert
            using (var repo = new ApkAanvraagLogRepository(new RdwContext(_options)))
            {
                Assert.AreEqual(2, repo.Count());
            }
        }
        public void ApkAanvraagLogRepositoryFindTest()
        {
            // Arrange
            string requestMessage  = "RequestMessage";
            string responseMessage = "ResponseMessage";

            // Act
            using (var repo = new ApkAanvraagLogRepository(new RdwContext(_options)))
            {
                repo.Insert(new ApkAanvraagLog()
                {
                    CorrelationId   = Guid.NewGuid().ToString(),
                    RequestMessage  = requestMessage,
                    ResponseMessage = responseMessage
                });
            }

            // Assert
            using (var repo = new ApkAanvraagLogRepository(new RdwContext(_options)))
            {
                var result = repo.Find(1);
                Assert.AreEqual(1, result.Id);
                Assert.AreEqual(requestMessage, result.RequestMessage);
                Assert.AreEqual(responseMessage, result.ResponseMessage);
            }
        }
        public void ApkAanvraagLogRepositoryUpdateTest()
        {
            // Arrange
            string updatedRequestMessage  = "Updated requestMessage";
            string updatedResponseMessage = "Updated responseMessage";

            using (var repo = new ApkAanvraagLogRepository(new RdwContext(_options)))
            {
                repo.Insert(new ApkAanvraagLog()
                {
                    CorrelationId   = Guid.NewGuid().ToString(),
                    RequestMessage  = "RequestMessage",
                    ResponseMessage = "ResponseMessage"
                });
            }

            // Act
            using (var repo = new ApkAanvraagLogRepository(new RdwContext(_options)))
            {
                repo.Update(new ApkAanvraagLog()
                {
                    Id              = 1,
                    RequestMessage  = updatedRequestMessage,
                    ResponseMessage = updatedResponseMessage
                });
            }

            // Assert
            using (var repo = new ApkAanvraagLogRepository(new RdwContext(_options)))
            {
                Assert.AreEqual(1, repo.Count());
                Assert.AreEqual(updatedRequestMessage, repo.Find(1).RequestMessage);
                Assert.AreEqual(updatedResponseMessage, repo.Find(1).ResponseMessage);
            }
        }
        public void ApkAanvraagLogRepositoryAddTest()
        {
            // Arrange - Act
            using (var repo = new ApkAanvraagLogRepository(new RdwContext(_options)))
            {
                repo.Insert(new ApkAanvraagLog()
                {
                    CorrelationId = Guid.NewGuid().ToString()
                });
            }

            // Assert
            using (var repo = new ApkAanvraagLogRepository(new RdwContext(_options)))
            {
                Assert.AreEqual(1, repo.Count());
            }
        }
        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 ApkAanvraagLogRepositoryDeleteTest()
        {
            // Arrange
            using (var repo = new ApkAanvraagLogRepository(new RdwContext(_options)))
            {
                var apkAanvraagLog = new ApkAanvraagLog()
                {
                    CorrelationId   = Guid.NewGuid().ToString(),
                    RequestMessage  = "RequestMessage",
                    ResponseMessage = "ResponseMessage"
                };
                // Act
                repo.Insert(apkAanvraagLog);
                repo.Delete(1);
            }

            // Assert
            using (var repo = new ApkAanvraagLogRepository(new RdwContext(_options)))
            {
                Assert.AreEqual(0, repo.Count());
            }
        }