Example #1
0
        public void Record_GrapeBlendUpdated_When_Updating_Blend()
        {
            //Arrange
            var originalName = new ChampagneName("Bollinger 2007");
            var sut          = new Champagne();

            sut.Execute(new CreateChampagne(new AggregateId(Guid.NewGuid()), originalName));
            sut.ClearUncommittedEvents();

            var grapes = new[]
            {
                new GrapeBlend(new GrapeBlendPercentage(0.3), new GrapeVariety("PinotNoir")),
                new GrapeBlend(new GrapeBlendPercentage(0.7), new GrapeVariety("PinotBlanc")),
            };
            var cmd = new UpdateGrapeBlend(sut.Id, grapes);

            //Act
            sut.Execute(cmd);

            //Assert
            sut.GetUncommittedEvents().Count().ShouldBe(1);

            var evt = sut.GetUncommittedEvents().Single() as GrapeBlendUpdated;

            evt.ShouldNotBeNull();
            evt.Id.ShouldBeSameAs(sut.Id);
            evt.UpdatedBlend.ShouldBeSameAs(grapes);
        }
Example #2
0
        public void Throw_Error_When_Reusing_Grapes_In_Blend()
        {
            //Arrange
            var originalName = new ChampagneName("Bollinger 2007");
            var sut          = new Champagne();

            sut.Execute(new CreateChampagne(new AggregateId(Guid.NewGuid()), originalName));
            sut.ClearUncommittedEvents();

            var grapes = new[]
            {
                new GrapeBlend(new GrapeBlendPercentage(0.3), new GrapeVariety("PinotNoir")),
                new GrapeBlend(new GrapeBlendPercentage(0.7), new GrapeVariety("PinotNoir")),
            };
            var cmd = new UpdateGrapeBlend(sut.Id, grapes);

            //Act
            Should.Throw <DomainError>(() =>
            {
                sut.Execute(cmd);
            });

            //Assert
            sut.GetUncommittedEvents().Count().ShouldBe(0);
        }
Example #3
0
        public void Record_ChampagneRenamed_Event_When_Changing_Champagne_Name(RenameChampagne cmd)
        {
            //Arrange
            var originalName = new ChampagneName("Bollinger 2007");
            var sut          = new Champagne();

            sut.Execute(new CreateChampagne(new AggregateId(Guid.NewGuid()), originalName));
            sut.ClearUncommittedEvents();

            //Act
            sut.Execute(cmd);

            //Assert
            sut.GetUncommittedEvents().Count().ShouldBe(1);

            var evt = sut.GetUncommittedEvents().Single() as ChampagneRenamed;

            evt.ShouldNotBeNull();
            evt.OldName.ShouldBeSameAs(originalName);
            evt.NewName.ShouldBeSameAs(cmd.NewName);
        }
 public CreateChampagne(AggregateId id, ChampagneName name)
 {
     Id   = id;
     Name = name;
 }
Example #5
0
 public RenameChampagne(AggregateId id, ChampagneName newName)
 {
     Id      = id;
     NewName = newName;
 }
Example #6
0
 public ChampagneCreated(AggregateId id, ChampagneName name) : base(id)
 {
     Name = name;
 }
Example #7
0
 public ChampagneRenamed(AggregateId id, ChampagneName oldName, ChampagneName newName) : base(id)
 {
     OldName = oldName;
     NewName = newName;
 }