public EventSourcedAggregateFactoryTests() { eventStreamUpgrader = Substitute.For <IEventStreamUpgrader>(); eventStreamUpgrader.UpgradeStream(null, null).ReturnsForAnyArgs(ci => { var stream = ci.Arg <IEnumerable <IEventMessage <DomainAggregateEvent> > >(); var aggregateMetadata = ci.Arg <IReadOnlyDictionary <string, string> >(); return(eventStreamUpgradeFunc(stream, aggregateMetadata)); }); DomainClassInfo[] domainClasses = new[] { new DomainClassInfo(entity1ClassId, null, typeof(MyEntity)), new DomainClassInfo(entity2ClassId, null, typeof(MyEntity2)) }; entityTypeManager = Substitute.For <IEntityTypeManager>(); entityTypeManager.GetClassInfoByClassId(Guid.Empty) .ReturnsForAnyArgs(ci => domainClasses.Single(x => x.Id == ci.Arg <Guid>())); entityTypeManager.TryGetClassInfoByClrType(null) .ReturnsForAnyArgs(ci => domainClasses.SingleOrDefault(x => x.ClrType == ci.Arg <Type>())); entityTypeManager.GetClassInfoByClrType(null) .ReturnsForAnyArgs(ci => domainClasses.Single(x => x.ClrType == ci.Arg <Type>())); sut = new EventSourcedAggregateFactory(eventStreamUpgrader, new EntityFactory(), entityTypeManager); }
public EventSourcedAggregateFactory(IEventStreamUpgrader eventStreamUpgrader, IEntityFactory entityFactory, IEntityTypeManager entityTypeManager) { this.eventStreamUpgrader = eventStreamUpgrader; this.entityFactory = entityFactory; this.entityTypeManager = entityTypeManager; }