예제 #1
0
        public async Task If_renamed_to_an_unknown_name_When_the_aggregate_is_sourced_then_the_event_is_anonymous()
        {
            var order = await repository.GetLatest(aggregateId);

            var rename = new EventMigrator.Rename(order.EventHistory.Last().SequenceNumber, "ItemAdded (ignored)");

            await EventMigrator.SaveWithRenames(MigratableRepository, order, new[] { rename });

            (await repository.GetLatest(aggregateId)).EventHistory.Last().GetType().Name.Should().Be("AnonymousEvent`1");
        }
예제 #2
0
        public async Task If_an_unrecognized_event_is_renamed_then_a_useful_exception_is_thrown()
        {
            var order = await repository.GetLatest(aggregateId);

            var         rename = new EventMigrator.Rename(99999, "ItemAdded (ignored)");
            Func <Task> action = () => EventMigrator.SaveWithRenames(MigratableRepository, order, new[] { rename });

            action.ShouldThrow <EventMigrator.SequenceNumberNotFoundException>()
            .And.Message.Should().StartWith("Migration failed, because no event with sequence number 99999 on aggregate ");
        }
예제 #3
0
        public async Task If_renamed_and_saved_When_the_aggregate_is_sourced_then_the_event_is_the_new_name()
        {
            var order = await repository.GetLatest(aggregateId);

            var rename = new EventMigrator.Rename(order.EventHistory.Last().SequenceNumber, "ItemAdded2");

            await EventMigrator.SaveWithRenames(MigratableRepository, order, new[] { rename });

            (await repository.GetLatest(aggregateId)).EventHistory.Last().Should().BeOfType <Order.ItemAdded2>();
        }
예제 #4
0
 public async Task SaveAndMigrateAsync <TAggregate>(TAggregate aggregate, IEnumerable <EventMigrator.Rename> renames)
     where TAggregate : EventSourcedAggregate <TAggregate>
 {
     aggregates.Add(aggregate);
     await EventMigrator.SaveWithRenames((IMigratableEventSourcedRepository <TAggregate>) builder.GetRepository <TAggregate>(), aggregate, renames);
 }