Esempio n. 1
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);
                }
        }
Esempio n. 2
0
        public void OpdrachtStatussenMethodsReturnExpected()
        {
            // Arrange - Act
            var aangemeld   = OpdrachtStatussen.Aangemeld();
            var klaarGemeld = OpdrachtStatussen.Klaargemeld();
            var afgemeld    = OpdrachtStatussen.Afgemeld();
            var afgehandeld = OpdrachtStatussen.Afgehandeld();

            // Assert
            Assert.AreEqual(10, aangemeld.StatusId);
            Assert.AreEqual("Aangemeld", aangemeld.Beschrijving);

            Assert.AreEqual(20, klaarGemeld.StatusId);
            Assert.AreEqual("Klaar gemeld", klaarGemeld.Beschrijving);

            Assert.AreEqual(30, afgemeld.StatusId);
            Assert.AreEqual("Afgemeld", afgemeld.Beschrijving);

            Assert.AreEqual(100, afgehandeld.StatusId);
            Assert.AreEqual("Afgehandeld", afgehandeld.Beschrijving);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="onderhoudCommand"></param>
        public void AddOnderhoudsopdracht(CreateOnderhoudCommand onderhoudCommand)
        {
            // Map onderhoudCommand to a valid Onderhoudsopdracht entity
            var opdracht = new Onderhoudsopdracht
            {
                HasApk                     = onderhoudCommand.HasApk,
                Kenteken                   = onderhoudCommand.Kenteken,
                Kilometerstand             = onderhoudCommand.Kilometerstand,
                OnderhoudsBeschrijving     = onderhoudCommand.OnderhoudsBeschrijving,
                OpdrachtAangemaakt         = onderhoudCommand.OpdrachtAangemaakt,
                OpdrachtStatus             = OpdrachtStatussen.Aangemeld().StatusId,
                OpdrachtStatusBeschrijving = OpdrachtStatussen.Aangemeld().Beschrijving,
                Bestuurder                 = onderhoudCommand.Bestuurder,
                TelefoonNrBestuurder       = onderhoudCommand.TelefoonNrBestuurder
            };

            // Persist data using repository and store key after insert
            var opdrachtId = _onderhoudsopdrachtRepository.Insert(opdracht);

            // Map opdracht to OnderhoudsopdrachtCreatedEvent
            var opdrachtCreatedEvent = new OnderhoudsopdrachtCreatedEvent
            {
                RoutingKey                 = "Minor.Case2.MaRoWo.OnderhoudsBeheer.OnderhoudsopdrachtCreated",
                TimeStamp                  = DateTime.UtcNow,
                CorrelationID              = Guid.NewGuid(),
                OnderhoudsBeurtId          = opdrachtId,
                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
            };

            // Publish event "OnderhoudCreatedEvent"
            _eventPublisher.Publish(opdrachtCreatedEvent);
        }