public EventHandlerSpecs() { _dataFixture = new Fixture(); _stoppingTokenSource = new CancellationTokenSource(); _deserializeWithPrivateSetters = new JsonSerializerSettings { ContractResolver = new JsonPrivateResolver() }; _eventHandlerStateStore = Substitute.For <IProjectionStore <Core.ReadModel.Projections.EventHandlerState.Projection> >(); _eventHandlerStateStore .WhenForAnyArgs((IProjectionStore <Core.ReadModel.Projections.EventHandlerState.Projection> ps) => ps.Create(Arg.Any <string>(), Arg.Any <Core.ReadModel.Projections.EventHandlerState.Projection>())) .Do(ci => _updatedEventHandlerState = ci.ArgAt <Core.ReadModel.Projections.EventHandlerState.Projection>(1)); _eventHandlerStateStore .WhenForAnyArgs((IProjectionStore <Core.ReadModel.Projections.EventHandlerState.Projection> ps) => ps.Update(Arg.Any <string>(), Arg.Any <Core.ReadModel.Projections.EventHandlerState.Projection>())) .Do(ci => _updatedEventHandlerState = ci.ArgAt <Core.ReadModel.Projections.EventHandlerState.Projection>(1)); IServiceCollection services = new ServiceCollection(); services.AddLogging(); services.AddSingleton(_eventHandlerStateStore); services.AddSingleton <IProjectionBuilderRegistrar, ProjectionBuilderRegistrar>(); services.AddSingleton <Core.ReadModel.EventStream.Handlers.EventHandler <SomeStream> >(); services.AddSingleton <ProjectionBuilder1>(); services.AddSingleton <ProjectionBuilder2>(); services.AddSingleton <ProjectionBuilder3>(); services.AddSingleton <ProjectionBuilder4>(); _serviceProvider = services.BuildServiceProvider(); HandledEventTracker.Reset(); }
private void GivenTheEventHasAlreadyBeenHandled() { var eventAudit = EventAudit.Create( _dataFixture.Create <DateTimeOffset>(), _dataFixture.Create <string>(), _dataFixture.Create <long>(), _eventEnvelope.StreamPosition + 1); _originalEventHandlerState = Core.ReadModel.Projections.EventHandlerState.Projection.Create(eventAudit); _eventHandlerStateStore .Get(Arg.Any <string>()) .Returns(_originalEventHandlerState); }
private Core.ReadModel.Projections.EventHandlerState.Projection CopyOf(Core.ReadModel.Projections.EventHandlerState.Projection original) { var serializedDto = JsonConvert.SerializeObject(original); return(JsonConvert.DeserializeObject <Core.ReadModel.Projections.EventHandlerState.Projection>(serializedDto, _deserializeWithPrivateSetters)); }