public AsyncEventQueueManagerTests() { crudRepository = new InMemoryCrudRepository(); eventSerializer = Substitute.For <IEventSerializer>(); sut = new AsyncEventQueueManager(crudRepository, eventSerializer, null); // TODO test }
public CrudAggregateStoreTests() { crudRepository = new InMemoryCrudRepository(); entityTypeManager = Substitute.For <IEntityTypeManager>(); publishEventBuffer = Substitute.For <IPublishEventBuffer>(); domainClasses = new List <DomainClassInfo>() { new DomainClassInfo(TestAggregateClassId, null, typeof(TestAggregate)) }; 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>())); eventMessageFactory = Substitute.For <IEventMessageFactory>(); eventMessageFactory.CreateMessageAsync(null).ReturnsForAnyArgs(ci => { var @event = ci.ArgAt <IEvent>(0); Type messageType = typeof(EventMessageDraft <>).MakeGenericType(@event.GetType()); IEventMessageDraft messageDraft = (IEventMessageDraft)messageType.GetConstructor(new[] { @event.GetType() }).Invoke(new[] { @event }); messageDraft.SetMetadata("TestKey", "TestValue"); return(messageDraft); }); // TODO something more lightweight? sut = new CrudAggregateStore(crudRepository, entityTypeManager, publishEventBuffer, eventMessageFactory); }
public EventStoreTests() { inMemoryCrudRepository = Substitute.ForPartsOf <InMemoryCrudRepository>(); eventStreams = new[] { new EventStream(Guid.NewGuid()), new EventStream(Guid.NewGuid()), new EventStream(Guid.NewGuid()) }; inMemoryCrudRepository.AttachRange(eventStreams); eventSerializer = Substitute.For <IEventSerializer>(); eventSerializer.SerializeEvent(null) .ReturnsForAnyArgs(ci => ("{\"bar\":" + ci.ArgAt <Event1>(0).Foo + "}", new VersionedTypeId("EventName", 5))); eventSerializer.DeserializeEvent(Arg.Any <string>(), new VersionedTypeId("EventName", 5)) .Returns(ci => new Event1((int)JObject.Parse(ci.ArgAt <string>(0))["bar"])); eventSerializer.SerializeEventMetadata(null) .ReturnsForAnyArgs(ci => JsonConvert.SerializeObject(ci.Arg <IReadOnlyDictionary <string, string> >() .Append(new KeyValuePair <string, string>("fakeSer", "true")) .ToDictionary(x => x.Key, x => x.Value))); eventSerializer.DeserializeEventMetadata(null) .ReturnsForAnyArgs(ci => { var json = JObject.Parse(ci.Arg <string>()); json["fakeDeser"] = "true"; return(new JsonMetadata(json)); }); FakeClock.Setup(); eventStreamRows = new[] { new EventStreamRow(Guid.NewGuid(), "{\"bar\":1}", "EventName", 5, eventStreams[0].Id, 1, Clock.Current.Now, "{\"doh\":\"1\"}"), new EventStreamRow(Guid.NewGuid(), "{\"bar\":2}", "EventName", 5, eventStreams[0].Id, 2, Clock.Current.Now, "{\"doh\":\"2\"}"), new EventStreamRow(Guid.NewGuid(), "{\"bar\":3}", "EventName", 5, eventStreams[1].Id, 3, Clock.Current.Now, "{\"doh\":\"3\"}"), new EventStreamRow(Guid.NewGuid(), "{\"bar\":4}", "EventName", 5, eventStreams[1].Id, 2, Clock.Current.Now, "{\"doh\":\"4\"}"), new EventStreamRow(Guid.NewGuid(), "{\"bar\":5}", "EventName", 5, eventStreams[1].Id, 4, Clock.Current.Now, "{\"doh\":\"5\"}"), new EventStreamRow(Guid.NewGuid(), "{\"bar\":6}", "EventName", 5, eventStreams[1].Id, 5, Clock.Current.Now, "{\"doh\":\"6\"}") }; expectedStoreRecords = eventStreamRows.Select((x, i) => new FakeEventStoreRecord() { Event = eventSerializer.DeserializeEvent(x.EventJson, new VersionedTypeId(x.EventName, x.EventVersion)), AdditionalMetadata = new Dictionary <string, string>() { { "doh", (i + 1).ToString() }, { "fakeDeser", "true" } }, EventId = eventStreamRows[i].Id, StreamSequenceNumber = eventStreamRows[i].StreamSequenceNumber }) .ToArray(); inMemoryCrudRepository.AttachRange(eventStreamRows); sut = new EventStore(inMemoryCrudRepository, eventSerializer); }
public ChangeTrackerTests() { crudRepository = new InMemoryCrudRepository(); actorContext = Substitute.For <IActorContext>(); actorContext.CurrentActorName.Returns("actor"); eventBus = Substitute.For <IEventBus>(); FakeClock.Setup(); FakeClock.Now = DateTime.Today; trackedChangeRecordConverter = Substitute.For <ITrackedChangeRecordConverter>(); Mapper.Reset(); // TODO will break if other parallel tests call this too Mapper.Initialize(cfg => cfg.AddProfile(new HistoryAutoMapperProfile(trackedChangeRecordConverter))); sut = new ChangeTracker(crudRepository, actorContext, trackedChangeRecordConverter, eventBus); }
public DbMessageLoaderTests() { inMemoryCrudRepository = new InMemoryCrudRepository(); dbMessageCache = Substitute.For <IDbMessageCache>(); messages = new[] { new LocalizationMessage(Guid.NewGuid(), null, "hello", "ahoj", new Locale("cs-CZ"), null), new LocalizationMessage(Guid.NewGuid(), null, "coffee", "kafe", new Locale("cs-CZ"), null) }; inMemoryCrudRepository.AttachRange(messages); sut = new DbMessageLoader(dbMessageCache, inMemoryCrudRepository); }
public ChangeTrackerTests() { crudRepository = new InMemoryCrudRepository(); actorContext = Substitute.For <IActorContext>(); actorContext.CurrentActorName.Returns("actor"); eventBus = Substitute.For <IEventBus>(); FakeClock.Setup(); FakeClock.Now = DateTime.Today; trackedChangeRecordConverter = Substitute.For <ITrackedChangeRecordConverter>(); var mapperConfig = new MapperConfiguration(configurationExpression => { configurationExpression.AddProfile(new HistoryAutoMapperProfile(trackedChangeRecordConverter)); }); mapper = mapperConfig.CreateMapper(); sut = new ChangeTracker(crudRepository, actorContext, trackedChangeRecordConverter, eventBus, mapper); }
public BufferedNotificationProcessJobTests() { bufferGovernor1 = Substitute.For <IBufferGovernor>(); bufferGovernor1.Id.Returns(Guid.NewGuid()); inMemoryCrudRepository = new InMemoryCrudRepository(); notificationSerializer = Substitute.For <INotificationSerializer>(); notificationPipeline1 = Substitute.For <INotificationPipeline>(); notificationPipeline1.Id.Returns(Guid.NewGuid()); notificationPipeline2 = Substitute.For <INotificationPipeline>(); notificationPipeline2.Id.Returns(Guid.NewGuid()); notificationSerializer.FromJson(null).ReturnsForAnyArgs(ci => new TestNotification() { Data = ci.ArgAt <SerializedNotification>(0).NotificationJson, TypeName = ci.ArgAt <SerializedNotification>(0).NotificationClassName }); sut = new BufferedNotificationProcessJob(new[] { bufferGovernor1 }, inMemoryCrudRepository, new[] { notificationPipeline1, notificationPipeline2 }, notificationSerializer); }
public SagaMetadataRepositoryTests() { inMemoryCrudRepository = new InMemoryCrudRepository(); sut = new SagaMetadataRepository(inMemoryCrudRepository); }
public EntityAttributeChangeLoggerTests() { crudRepository = new InMemoryCrudRepository(); changeTracker = Substitute.For <IChangeTracker>(); sut = new EntityAttributeChangeLogger(changeTracker, crudRepository); }
public BufferedNotificationStoreTests() { inMemoryCrudRepository = Substitute.ForPartsOf <InMemoryCrudRepository>(); sut = new BufferedNotificationStore(inMemoryCrudRepository); }
public AggregatingBufferGovernorTests() { sut = new AggregatingBufferGovernor(governorId, TimeSpan.FromMinutes(5)); inMemoryCrudRepository = new InMemoryCrudRepository(); }