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"); }
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 "); }
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>(); }
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); }