Exemplo n.º 1
0
        public void Should_Store_New_Article()
        {
            // Arrange
            IEvent evt        = null;
            var    newArtikel = new Art(new TypeBasedEventDispatcher <Art>(null), 1);

            newArtikel.EventRaised += (s, e) => evt = e.Event;

            var cmd = new ArtikelNeuanlageCommand()
            {
                Artikelnummer = 1, Artikelbezeichnung = "Dummy"
            };

            var repoMock = new Mock <IArtikelRepository>(MockBehavior.Strict);

            repoMock.Setup(r => r.LadeArtikelMitKategorien(1))
            .Returns(default(Art));
            repoMock.Setup(r => r.CreateNew(1)).Returns(newArtikel);


            var subject = new Article.Services.ArtikelCommandHandler(repoMock.Object);

            // Act
            subject.Handle(cmd);

            // Assert
            repoMock.Verify(r => r.LadeArtikelMitKategorien(1), Times.Once);
            repoMock.Verify(r => r.CreateNew(1), Times.Once);

            newArtikel.Bezeichnung.Should().Be("Dummy");
            evt.Should().NotBeNull();
            evt.AggregateId.Should().Be(1);
            evt.Should().BeAssignableTo <ArtikelAngelegtEvent>();
            (evt as ArtikelAngelegtEvent).Artikelbezeichnung.Should().Be("Dummy");
        }
Exemplo n.º 2
0
        public void Should_Throw_On_Existing_Article()
        {
            // Arrange
            var cmd = new ArtikelNeuanlageCommand()
            {
                Artikelnummer = 1
            };

            var repoMock = new Mock <IArtikelRepository>(MockBehavior.Strict);

            repoMock.Setup(r => r.LadeArtikelMitKategorien(1))
            .Returns(new Art(null, 1));

            var subject = new Article.Services.ArtikelCommandHandler(repoMock.Object);

            // Act
            Action action = () => subject.Handle(cmd);

            // Assert
            action.Should().Throw <InvalidOperationException>();
            repoMock.Verify(r => r.LadeArtikelMitKategorien(1), Times.Once);
        }