public void OnderhoudController_MaakNieuwOnderhoudsOpdracht_SuccessWithData()
        {
            // Arrange
            var repoMock = new Mock <IRepository>(MockBehavior.Strict);

            repoMock.Setup(r => r.Insert(It.IsAny <OnderhoudsOpdracht>()));

            var pubMock = new Mock <IEventPublisher>(MockBehavior.Strict);

            pubMock.Setup(p => p.Publish(It.IsAny <OnderhoudsOpdrachtAangemeldEvent>()));

            var target = new OnderhoudController(repoMock.Object, pubMock.Object);

            var command = new MeldOnderhoudsOpdrachtAanCommand()
            {
                KlantGuid            = new Guid("0f8fad5b-d9cb-469f-a165-70867728950e"),
                AutoGuid             = new Guid("0f8fad5b-d9cb-469f-a165-70867728950e"),
                AanmeldDatum         = DateTime.ParseExact("2016-11-30 10:51", "yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture),
                Kilometerstand       = 101,
                OpdrachtOmschrijving = "test omschrijving",
                Apk = true
            };

            // Act
            IActionResult result = target.MaakNieuwOnderhoudsOpdracht(command);

            // Assert
            Assert.IsInstanceOfType(result, typeof(OkResult));
            repoMock.Verify(r => r.Insert(It.IsAny <OnderhoudsOpdracht>()), Times.Once());
            pubMock.Verify(p => p.Publish(It.IsAny <OnderhoudsOpdrachtAangemeldEvent>()), Times.Once());
        }
Пример #2
0
        public IActionResult MaakNieuwOnderhoudsOpdracht([FromBody] MeldOnderhoudsOpdrachtAanCommand command)
        {
            if (ModelState.IsValid && command != null)
            {
                OnderhoudsOpdracht opdracht = new OnderhoudsOpdracht
                {
                    AanmeldDatum         = command.AanmeldDatum,
                    Apk                  = command.Apk,
                    AutoGuid             = command.AutoGuid,
                    Kilometerstand       = command.Kilometerstand,
                    KlantGuid            = command.KlantGuid,
                    OpdrachtOmschrijving = command.OpdrachtOmschrijving
                };

                repository.Insert(opdracht);

                var OnderhoudEvent = new OnderhoudsOpdrachtAangemeldEvent
                {
                    AanmeldDatum           = opdracht.AanmeldDatum,
                    Apk                    = opdracht.Apk,
                    AutoGuid               = opdracht.AutoGuid,
                    Kilometerstand         = opdracht.Kilometerstand,
                    KlantGuid              = opdracht.KlantGuid,
                    OnderhoudsOpdrachtGuid = opdracht.Guid,
                    OpdrachtOmschrijving   = opdracht.OpdrachtOmschrijving
                };

                publisher.Publish(OnderhoudEvent);
                return(Ok());
            }

            return(BadRequest());
        }
        public void OnderhoudController_MaakNieuwOnderhoudsOpdracht_Success()
        {
            // Arrange
            var repoMock = new Mock <IRepository>(MockBehavior.Strict);

            repoMock.Setup(r => r.Insert(It.IsAny <OnderhoudsOpdracht>()));

            var pubMock = new Mock <IEventPublisher>(MockBehavior.Strict);

            pubMock.Setup(p => p.Publish(It.IsAny <OnderhoudsOpdrachtAangemeldEvent>()));

            var target = new OnderhoudController(repoMock.Object, pubMock.Object);

            var command = new MeldOnderhoudsOpdrachtAanCommand();

            // Act
            IActionResult result = target.MaakNieuwOnderhoudsOpdracht(command);

            // Assert
            Assert.IsInstanceOfType(result, typeof(OkResult));
            repoMock.Verify(r => r.Insert(It.IsAny <OnderhoudsOpdracht>()), Times.Once());
            pubMock.Verify(p => p.Publish(It.IsAny <OnderhoudsOpdrachtAangemeldEvent>()), Times.Once());
        }