public void SimpleStorageTest() { var streamId = Guid.NewGuid().ToString(); var storage = new TransitionStorage(GetRepository()); var originalTransitions = new List<Transition> { CreatedTransition(streamId, 1), CreatedTransition(streamId, 2), CreatedTransition(streamId, 3) }; using (var stream = storage.OpenStream(streamId)) { stream.Write(originalTransitions[0]); stream.Write(originalTransitions[1]); stream.Write(originalTransitions[2]); } List<Transition> storedTransitions = new List<Transition>(); using (var stream = storage.OpenStream(streamId)) { foreach (var transition in stream.Read()) { storedTransitions.Add(transition); } } TransitionAsserter.AssertTransitions(originalTransitions, storedTransitions); GetRepository().RemoveStream(streamId); }
public void SimpleStorageTest() { var streamId = Guid.NewGuid().ToString(); var storage = new TransitionStorage(GetRepository()); var originalTransitions = new List <Transition> { CreatedTransition(streamId, 1), CreatedTransition(streamId, 2), CreatedTransition(streamId, 3) }; using (var stream = storage.OpenStream(streamId)) { stream.Write(originalTransitions[0]); stream.Write(originalTransitions[1]); stream.Write(originalTransitions[2]); } List <Transition> storedTransitions = new List <Transition>(); using (var stream = storage.OpenStream(streamId)) { foreach (var transition in stream.Read()) { storedTransitions.Add(transition); } } TransitionAsserter.AssertTransitions(originalTransitions, storedTransitions); GetRepository().RemoveStream(streamId); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); var container = new Container(); DependencyResolver.SetResolver(new SmDependencyResolver(container)); // // Service bus // var bus = ServiceBus.Run(c => c .SetServiceLocator(new StructureMapServiceLocator(container)) .MemorySynchronousTransport() .SetName("Main Service Bus") .SetInputQueue("sync.server") .AddEndpoint(type => type.FullName.EndsWith("Event"), "sync.server") .AddEndpoint(type => type.FullName.EndsWith("Command"), "sync.server") .AddEndpoint(type => type.FullName.EndsWith("Message"), "sync.server") .Dispatcher(d => d .AddHandlers(typeof(UserAR).Assembly) .AddHandlers(typeof(UserEntityEventHandler).Assembly) ) ); container.Configure(config => config.For <IServiceBus>().Singleton().Use(bus)); // // Domain and Event store configuration // var dataTypeRegistry = new AssemblyQualifiedDataTypeRegistry(); var transitionsRepository = new InMemoryTransitionRepository(); var transitionsStorage = new TransitionStorage(transitionsRepository); var snapshotRepository = new InMemorySnapshotRepository(); container.Configure(config => { config.For <ITransitionRepository>().Singleton().Use(transitionsRepository); config.For <ITransitionStorage>().Singleton().Use(transitionsStorage); config.For <CqrsSample.Infrastructure.Snapshots.ISnapshotRepository>().Singleton().Use(snapshotRepository); config.For <IDataTypeRegistry>().Singleton().Use(dataTypeRegistry); config.For <IEventStore>().Use <EventStore>(); config.For <IEventBus>().Use <ParalectServiceBusEventBus>(); config.For <IRepository>().Use <Repository>(); config.For <ICommandService>().Use <CommandService>(); }); }
public void ShouldThrowOnDuplicationWhenVersion1() { var streamId = Guid.NewGuid().ToString(); var storage = new TransitionStorage(GetRepository()); var originalTransitions = new List <Transition> { CreatedTransition(streamId, 1), CreatedTransition(streamId, 1), CreatedTransition(streamId, 1) }; using (var stream = storage.OpenStream(streamId)) { stream.Write(originalTransitions[0]); Assert.Throws <DuplicateTransitionException>(() => stream.Write(originalTransitions[1])); Assert.Throws <DuplicateTransitionException>(() => stream.Write(originalTransitions[2])); } GetRepository().RemoveStream(streamId); }
public void ShouldThrowOnDuplication() { var streamId = Guid.NewGuid().ToString(); var storage = new TransitionStorage(GetRepository()); var originalTransitions = new List<Transition> { CreatedTransition(streamId, 2), CreatedTransition(streamId, 2), CreatedTransition(streamId, 2) }; using (var stream = storage.OpenStream(streamId)) { stream.Write(originalTransitions[0]); Assert.Throws<ConcurrencyException>(()=> stream.Write(originalTransitions[1])); Assert.Throws<ConcurrencyException>(() => stream.Write(originalTransitions[2])); } GetRepository().RemoveStream(streamId); }
public void ShouldNotAllowWritingWhenInReadMode() { var streamId = Guid.NewGuid().ToString(); var storage = new TransitionStorage(GetRepository()); var originalTransitions = new List <Transition> { CreatedTransition(streamId, 1), }; using (var stream = storage.OpenStream(streamId)) { stream.Write(originalTransitions[0]); } using (var stream = storage.OpenStream(streamId)) { stream.Read().ToList(); Assert.Throws <InvalidOperationException>(() => stream.Write(originalTransitions[0])); } GetRepository().RemoveStream(streamId); }
public static ITransitionStorage GetTransitionStorage() { var server = new TransitionStorage(GetTransitionRepository()); return(server); }
public void ShouldNotAllowWritingWhenInReadMode() { var streamId = Guid.NewGuid().ToString(); var storage = new TransitionStorage(GetRepository()); var originalTransitions = new List<Transition> { CreatedTransition(streamId, 1), }; using (var stream = storage.OpenStream(streamId)) { stream.Write(originalTransitions[0]); } using (var stream = storage.OpenStream(streamId)) { stream.Read().ToList(); Assert.Throws<InvalidOperationException>(() => stream.Write(originalTransitions[0])); } GetRepository().RemoveStream(streamId); }