public async Task Can_Modify_Aggregate()
        {
            // PREPARE
            var @event = new TestAggregateCreated
            {
                TestAggregateId = 332,
                Name            = "ddsd"
            };

            var aggregate = new TestAggregate();
            await aggregate.Initialize(GetEvents(@event), Task.FromResult(3333));

            // RUN
            aggregate.ChangeName("changed name");

            // ASSERT
            Assert.True(aggregate.HasChanges());
            Assert.Equal("332", aggregate.AggregateId);
            Assert.Equal(3333, aggregate.AggregateVersion);
            var changes = aggregate.GetChanges();

            Assert.Single(changes);
            var nameChanged = (TestAggregateNameChanged)changes.Single();

            Assert.Equal(332, nameChanged.TestAggregateId);
            Assert.Equal("ddsd", nameChanged.PreviousName);
            Assert.Equal("changed name", nameChanged.CurrentName);
        }
        public void SerializeObject_WhenObjectIsNotRegisteredAsShorthandType_ReturnsJson()
        {
            var idValue    = Guid.NewGuid();
            var obj        = new TestAggregateCreated(idValue);
            var serializer = new JsonDocumentSerializer();

            var json = serializer.SerializeObject(obj);

            json.Should().Contain("\"$type\":\"Brickweave.EventStore.Tests.Models.TestAggregateCreated, Brickweave.EventStore.Tests\"");

            _output.WriteLine(json);
        }
        public void SerializeObject_WhenObjectIsRegisteredAsShorthandType_ReturnsJson()
        {
            var idValue    = Guid.NewGuid();
            var obj        = new TestAggregateCreated(idValue);
            var serializer = new JsonDocumentSerializer(typeof(TestAggregateCreated));

            var json = serializer.SerializeObject(obj);

            json.Should().Contain("\"$type\":\"TestAggregateCreated\"");

            _output.WriteLine(json);
        }
        public async Task Can_Initialize_Aggregate_From_Events()
        {
            // PREPARE
            var @event = new TestAggregateCreated
            {
                TestAggregateId = 332,
                Name            = "ddsd"
            };

            // RUN
            var aggregate = new TestAggregate();
            await aggregate.Initialize(GetEvents(@event), Task.FromResult(3333));

            // ASSERT
            Assert.False(aggregate.HasChanges());
            Assert.Equal("332", aggregate.AggregateId);
            Assert.Equal(3333, aggregate.AggregateVersion);
            var changes = aggregate.GetChanges();

            Assert.Empty(changes);
        }
Example #5
0
 private void Apply(TestAggregateCreated @event)
 {
     Number = @event.Number;
 }
Example #6
0
 private void Apply(TestAggregateCreated e)
 {
     SetIdentity(TestAggregateId.Of(Guid.Parse(e.AggregateId)));
 }
Example #7
0
 public static TestAggregate NewFrom(TestAggregateId id) =>
 (TestAggregate) new TestAggregate().ApplyChange(TestAggregateCreated.Of(id));
Example #8
0
 private void Apply(TestAggregateCreated e)
 {
     AppliedEvents.Add(e);
 }
Example #9
0
 public void ApplyEvent(TestAggregate aggregate, TestAggregateCreated @event)
 {
     ProjectedEvents.Add(@event.GetType().Name);
 }
Example #10
0
 private void Apply(TestAggregateCreated e)
 {
     ID = e.ID;
     SeenEvents.Add(e);
 }