コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="e"></param>
        public void HandlerApkEvent(ApkAfgemeldEvent e)
        {
            using (var context = new OnderhoudBeheerContext(_options))
                using (var repository = new OnderhoudsopdrachtRepository(context))
                {
                    var opdracht = repository.Find(e.OnderhoudsBeurtId);

                    OpdrachtStatus newState = e.HasSteekProef ? OpdrachtStatussen.Klaargemeld() : OpdrachtStatussen.Afgemeld();

                    opdracht.OpdrachtStatus             = newState.StatusId;
                    opdracht.OpdrachtStatusBeschrijving = newState.Beschrijving;

                    repository.Update(opdracht);

                    var updateEvent = new OnderhoudsopdrachtUpdatedEvent()
                    {
                        RoutingKey                 = "Minor.Case2.MaRoWo.OnderhoudsBeheer.OnderhoudsopdrachtUpdated",
                        TimeStamp                  = DateTime.UtcNow,
                        CorrelationID              = Guid.NewGuid(),
                        OnderhoudsBeurtId          = opdracht.Id,
                        HasApk                     = opdracht.HasApk,
                        Kenteken                   = opdracht.Kenteken,
                        Kilometerstand             = opdracht.Kilometerstand,
                        OnderhoudsBeschrijving     = opdracht.OnderhoudsBeschrijving,
                        OpdrachtAangemaakt         = opdracht.OpdrachtAangemaakt,
                        OpdrachtStatus             = opdracht.OpdrachtStatus,
                        OpdrachtStatusBeschrijving = opdracht.OpdrachtStatusBeschrijving,
                        Bestuurder                 = opdracht.Bestuurder,
                        TelefoonNrBestuurder       = opdracht.TelefoonNrBestuurder
                    };

                    _publisher.Publish(updateEvent);
                }
        }
コード例 #2
0
        public void OnderhoudsopdrachtRepositoryAddTest()
        {
            // Arrange - Act
            using (var repo = new OnderhoudsopdrachtRepository(new OnderhoudBeheerContext(_options)))
            {
                repo.Insert(new Onderhoudsopdracht()
                {
                    Kenteken                   = "AA-BB-11",
                    HasApk                     = true,
                    Kilometerstand             = 100,
                    OnderhoudsBeschrijving     = "Achterlicht links vervangen",
                    OpdrachtAangemaakt         = DateTime.UtcNow,
                    Bestuurder                 = "Rob",
                    TelefoonNrBestuurder       = "0315-12356",
                    OpdrachtStatus             = 1,
                    OpdrachtStatusBeschrijving = "Aangemeld"
                });
            }

            // Assert
            using (var repo = new OnderhoudsopdrachtRepository(new OnderhoudBeheerContext(_options)))
            {
                Assert.AreEqual(1, repo.Count());
            }
        }
コード例 #3
0
        public void HandleApkRequestWithSteekproef()
        {
            var pubMock = new Mock <IEventPublisher>(MockBehavior.Strict);

            pubMock.Setup(x => x.Publish(It.IsAny <DomainEvent>()));
            var service = new ApkEventService(_options, pubMock.Object);

            long id = -1;

            using (var context = new OnderhoudBeheerContext(_options))
                using (var repo = new OnderhoudsopdrachtRepository(context))
                {
                    id = repo.Insert(new Onderhoudsopdracht()
                    {
                        Kenteken                   = "AA-BB-11",
                        HasApk                     = true,
                        Kilometerstand             = 100,
                        OnderhoudsBeschrijving     = "Achterlicht links vervangen",
                        OpdrachtAangemaakt         = DateTime.UtcNow,
                        OpdrachtStatus             = OpdrachtStatussen.Aangemeld().StatusId,
                        OpdrachtStatusBeschrijving = OpdrachtStatussen.Aangemeld().Beschrijving,
                        Bestuurder                 = "Rob",
                        TelefoonNrBestuurder       = "1232323"
                    });
                }


            var apkEvent = new ApkAfgemeldEvent();

            apkEvent.CorrelationID     = new Guid();
            apkEvent.HasSteekProef     = true;
            apkEvent.Kenteken          = "12-12-12";
            apkEvent.SteekProefDatum   = new DateTime(2016, 12, 12);
            apkEvent.TimeStamp         = new DateTime();
            apkEvent.RoutingKey        = "test";
            apkEvent.OnderhoudsBeurtId = id;

            service.HandlerApkEvent(apkEvent);

            pubMock.Verify(x => x.Publish(It.IsAny <DomainEvent>()), Times.Once);

            using (var context = new OnderhoudBeheerContext(_options))
                using (var repo = new OnderhoudsopdrachtRepository(context))
                {
                    var opdracht = repo.Find(id);
                    Assert.AreEqual(OpdrachtStatussen.Klaargemeld().StatusId, opdracht.OpdrachtStatus);
                    Assert.AreEqual(OpdrachtStatussen.Klaargemeld().Beschrijving, opdracht.OpdrachtStatusBeschrijving);
                }
        }
コード例 #4
0
        public void FacadeToDomainService()
        {
            // Arrange
            var eventPublisherMock = new Mock <IEventPublisher>(MockBehavior.Strict);

            eventPublisherMock.Setup(x => x.Publish(It.IsAny <DomainEvent>()));

            using (var onderhoudsopdrachtRepo = new OnderhoudsopdrachtRepository(new OnderhoudBeheerContext(_options)))
            {
                var onderhoudsopdrachtService = new OnderhoudsopdrachtService(onderhoudsopdrachtRepo, eventPublisherMock.Object);

                var logServiceMock = new Mock <ILogService>(MockBehavior.Strict);
                logServiceMock.Setup(x => x.Log(It.IsAny <LogMessage>()));
                logServiceMock.Setup(x => x.LogException(It.IsAny <LogMessage>()));

                // Act

                // Facade receives valid CreateOnderhoudCommand
                var onderhoudController = new OnderhoudController(onderhoudsopdrachtService, logServiceMock.Object);
                // Post multiple CreateOnderhoudCommands to the controller using Post method
                foreach (var createOnderhoudCommand in _validCreateOnderhoudCommands)
                {
                    // Post will pass CreateOnderhoudCommands to DomainService (OnderhoudsopdrachtService)
                    onderhoudController.Post(createOnderhoudCommand);
                }

                // Results stored in database
                var storedInDatabase = onderhoudsopdrachtRepo.FindAll();

                // Assert

                // Test if repository saved correct entity
                Assert.AreEqual(3, storedInDatabase.Count());
                CollectionAssert.AllItemsAreNotNull(storedInDatabase.ToList());
                // Check if all can be found by Id. Id's are starting at 1 and Database is re-created for every test.
                for (var i = 1; i < _validCreateOnderhoudCommands.Count + 1; i++)
                {
                    var currentItem = storedInDatabase.Where(x => x.Id == i).FirstOrDefault();
                    Assert.IsNotNull(currentItem);
                }

                // Test if Publisher has been called exactly 3 times
                eventPublisherMock.Verify(x => x.Publish(It.IsAny <DomainEvent>()), Times.Exactly(_validCreateOnderhoudCommands.Count));

                logServiceMock.Verify(x => x.Log(It.IsAny <LogMessage>()), Times.Never());
                logServiceMock.Verify(x => x.LogException(It.IsAny <LogMessage>()), Times.Never());
            }
        }
コード例 #5
0
        public void OnderhoudsopdrachtRepositoryUpdateTest()
        {
            // Arrange
            string updatedOnderhoudsBeschrijving = "Bijgewerkte OnderhoudsBeschrijving";

            using (var repo = new OnderhoudsopdrachtRepository(new OnderhoudBeheerContext(_options)))
            {
                repo.Insert(new Onderhoudsopdracht()
                {
                    Kenteken                   = "AA-BB-11",
                    HasApk                     = true,
                    Kilometerstand             = 130,
                    OnderhoudsBeschrijving     = "Spoiler vervangen",
                    OpdrachtAangemaakt         = DateTime.UtcNow,
                    Bestuurder                 = "Rob",
                    TelefoonNrBestuurder       = "0315-12356",
                    OpdrachtStatus             = 1,
                    OpdrachtStatusBeschrijving = "Aangemeld"
                });
            }

            // Act
            using (var repo = new OnderhoudsopdrachtRepository(new OnderhoudBeheerContext(_options)))
            {
                var item = repo.Find(1);


                item.Kenteken = "AA-BB-12";
                item.OnderhoudsBeschrijving = updatedOnderhoudsBeschrijving;
                repo.Update(item);
            };


            // Assert
            using (var repo = new OnderhoudsopdrachtRepository(new OnderhoudBeheerContext(_options)))
            {
                Assert.AreEqual(1, repo.Count());
                Assert.AreEqual(updatedOnderhoudsBeschrijving, repo.Find(1).OnderhoudsBeschrijving);
                Assert.AreEqual("AA-BB-12", repo.Find(1).Kenteken);
            }
        }
コード例 #6
0
        public void OnderhoudsopdrachtRepositoryFindTest()
        {
            // Arrange
            string kenteken               = "AA-BB-11";
            bool   isApk                  = true;
            int    kilometerstand         = 100;
            string onderhoudsBeschrijving = "Accu vervangen";

            // Act
            using (var repo = new OnderhoudsopdrachtRepository(new OnderhoudBeheerContext(_options)))
            {
                repo.Insert(new Onderhoudsopdracht()
                {
                    Kenteken                   = kenteken,
                    HasApk                     = isApk,
                    Kilometerstand             = kilometerstand,
                    OnderhoudsBeschrijving     = onderhoudsBeschrijving,
                    OpdrachtAangemaakt         = DateTime.UtcNow,
                    Bestuurder                 = "Rob",
                    TelefoonNrBestuurder       = "0315-12356",
                    OpdrachtStatus             = 1,
                    OpdrachtStatusBeschrijving = "Aangemeld"
                });
            }

            // Assert
            using (var repo = new OnderhoudsopdrachtRepository(new OnderhoudBeheerContext(_options)))
            {
                var result = repo.Find(1);
                Assert.AreEqual(1, result.Id);
                Assert.AreEqual(kenteken, result.Kenteken);
                Assert.AreEqual(isApk, result.HasApk);
                Assert.AreEqual(kilometerstand, result.Kilometerstand);
                Assert.AreEqual(onderhoudsBeschrijving, result.OnderhoudsBeschrijving);
            }
        }
コード例 #7
0
        public void OnderhoudsopdrachtRepositoryInsertReturnIncreasedTest()
        {
            // Arrange - Act
            long generatedId1 = -1;
            long generatedId2 = -1;
            long generatedId3 = -1;
            long generatedId4 = -1;

            using (var repo = new OnderhoudsopdrachtRepository(new OnderhoudBeheerContext(_options)))
            {
                generatedId1 = repo.Insert(new Onderhoudsopdracht()
                {
                    Kenteken                   = "AA-BB-11",
                    HasApk                     = true,
                    Kilometerstand             = 100,
                    OnderhoudsBeschrijving     = "Achterlicht links vervangen",
                    OpdrachtAangemaakt         = DateTime.UtcNow,
                    Bestuurder                 = "Rob",
                    TelefoonNrBestuurder       = "0315-12356",
                    OpdrachtStatus             = 1,
                    OpdrachtStatusBeschrijving = "Aangemeld"
                });
                generatedId2 = repo.Insert(new Onderhoudsopdracht()
                {
                    Kenteken                   = "AA-BB-11",
                    HasApk                     = true,
                    Kilometerstand             = 100,
                    OnderhoudsBeschrijving     = "Achterlicht links vervangen",
                    OpdrachtAangemaakt         = DateTime.UtcNow,
                    Bestuurder                 = "Rob",
                    TelefoonNrBestuurder       = "0315-12356",
                    OpdrachtStatus             = 1,
                    OpdrachtStatusBeschrijving = "Aangemeld"
                });
                generatedId3 = repo.Insert(new Onderhoudsopdracht()
                {
                    Kenteken                   = "AA-BB-11",
                    HasApk                     = true,
                    Kilometerstand             = 100,
                    OnderhoudsBeschrijving     = "Achterlicht links vervangen",
                    OpdrachtAangemaakt         = DateTime.UtcNow,
                    Bestuurder                 = "Rob",
                    TelefoonNrBestuurder       = "0315-12356",
                    OpdrachtStatus             = 1,
                    OpdrachtStatusBeschrijving = "Aangemeld"
                });
                generatedId4 = repo.Insert(new Onderhoudsopdracht()
                {
                    Kenteken                   = "AA-BB-11",
                    HasApk                     = true,
                    Kilometerstand             = 100,
                    OnderhoudsBeschrijving     = "Achterlicht links vervangen",
                    OpdrachtAangemaakt         = DateTime.UtcNow,
                    Bestuurder                 = "Rob",
                    TelefoonNrBestuurder       = "0315-12356",
                    OpdrachtStatus             = 1,
                    OpdrachtStatusBeschrijving = "Aangemeld"
                });
            }

            // Assert
            using (var repo = new OnderhoudsopdrachtRepository(new OnderhoudBeheerContext(_options)))
            {
                Assert.AreEqual(4, repo.Count());
                CollectionAssert.AreEqual(new List <long> {
                    generatedId1, generatedId2, generatedId3, generatedId4
                }, repo.FindAll().Select(x => x.Id).ToList());
            }
        }