public void BasicEventReplierTest() { const int port = 5566; //Create event replier using EventReplier <PingEvent, OkResponse> eventReplier = new(port, _ => new OkResponse()); // ReSharper disable once AccessToDisposedClosure _ = Task.Run(() => eventReplier.HandleEventsLoop()); //Setup test's zmq Utils.CreateZmq(ZSocketType.REQ, port, false, out ZContext context, out ZSocket socket); //Create ping event and serialize it byte[] okEventData = EventsSerializer.SerializeEvent(new PingEvent()); //Send it socket.Send(okEventData); //Get the response back from the event replier byte[] responseRawData = socket.Receive(); OkResponse responseResponse = EventsSerializer.DeserializeEvent <OkResponse>(responseRawData); Assert.IsNotNull(responseResponse); socket.Dispose(); context.Dispose(); }
public void BasicUnionEventReplierTest() { const int port = 6677; using EventReplier <EngineActionEvent, EngineActionResponse> eventReplier = new(port, _ => new OkResponse()); // ReSharper disable once AccessToDisposedClosure _ = Task.Run(() => eventReplier.HandleEventsLoop()); //Setup test's zmq Utils.CreateZmq(ZSocketType.REQ, port, false, out ZContext context, out ZSocket socket); //Get the response byte[] okEventData = EventsSerializer.SerializeEvent <EngineActionEvent>(new PingEvent()); socket.Send(okEventData); //Check the type byte[] responseRawData = socket.Receive(); EngineActionResponse responseActionResponse = EventsSerializer.DeserializeEvent <EngineActionResponse>(responseRawData); Assert.IsNotNull(responseActionResponse); Assert.That(responseActionResponse.GetType(), Is.EqualTo(typeof(OkResponse))); socket.Dispose(); context.Dispose(); }
public EventStore(E05.Test.Infrastructure.Bus bus, EventsSerializer eventsSerializer, SnapshotStore snapshotStore) { Events = new List <EventDescriptor>(); _bus = bus; _eventsSerializer = eventsSerializer; _snapshotStore = snapshotStore; }
public void ShouldUseTheProjectionToGetTheLatestVersion() { //Given var events = new List <object>(); Guid id = Guid.NewGuid(); const string name = "test"; const string newName = "second"; var bus = new E05.Test.Infrastructure.Bus(); var eventsSerializer = EventsSerializer.GetEventSerializer(); var eventStore = new EventStore(bus, eventsSerializer); var commandHandler = new InventoryCommandHandler(bus, eventStore); var projection = new ItemsProjection(bus); bus.Send(new CreateInventoryItem(id, name)); var lastProjection = projection.GetById(id); //When bus.Send(new ModifyItemName(id, newName, lastProjection.Version)); //Then var items = projection.GetAll().ToList(); Assert.AreEqual(1, items.Count); var kvp = items[0]; Assert.AreEqual(id, kvp.Id); Assert.AreEqual(newName, kvp.Name); Assert.AreEqual(1, kvp.Version); }
public void BasicUnionSerializationTest() { byte[] data = EventsSerializer.SerializeEvent <EngineActionEvent>(new PingEvent()); EngineActionEvent engineEvent = EventsSerializer.DeserializeEvent <EngineActionEvent>(data); Assert.That(engineEvent.GetType(), Is.EqualTo(typeof(PingEvent))); }
public void should_store_and_retrieve_event() { // Arrange var serializer = new EventsSerializer("test.xml"); var repository = new EventsRepository(serializer); var dt = new DateTime(2012, 7, 14); // Act repository.Add(new Event(dt)); var list = repository.GetAll(); // Assert Assert.Equal(1, list.Count); Assert.Equal(dt, list[0].Date); }
public void BasicEventDispatcherTest() { const int port = 8732; //Setup test's ZMQ Utils.CreateZmq(ZSocketType.REP, port, true, out ZContext context, out ZSocket socket); //Create the event dispatcher EventDispatcher <EngineActionEvent, EngineActionResponse> eventDispatcher = null; _ = Task.Run(() => { eventDispatcher = new EventDispatcher <EngineActionEvent, EngineActionResponse>(new TimeSpan(0, 0, 0, 4), port); eventDispatcher.DispatchEventsThread().RunSynchronously(); }); SpinWait.SpinUntil(() => eventDispatcher != null); //Send the event bool gotResponse = false; eventDispatcher.QueueEvent(new PingEvent(), responseEventDispatcher => { //We got a response gotResponse = true; Assert.IsNotNull(responseEventDispatcher); Assert.That(responseEventDispatcher.GetType(), Is.EqualTo(typeof(OkResponse))); }); //Get a event from the dispatcher byte[] requestData = socket.Receive(); EngineActionEvent actionEvent = EventsSerializer.DeserializeEvent <EngineActionEvent>(requestData); Assert.IsNotNull(actionEvent); Assert.That(actionEvent.GetType(), Is.EqualTo(typeof(PingEvent))); //Respond EngineActionResponse response = new OkResponse(); byte[] responseData = EventsSerializer.SerializeEvent <EngineActionResponse>(response); socket.Send(responseData); SpinWait.SpinUntil(() => gotResponse); eventDispatcher.Dispose(); socket.Dispose(); context.Dispose(); }
public void should_serialize_and_deserialize_two_events() { // Arrange var events = new EventsList(new List<Event> { new Event(new DateTime(2012, 12, 12)), new Event(new DateTime(2011, 11, 1)) }); var target = new EventsSerializer("serialized.xml"); // Act target.Serialize(events); var result = target.Deserialize(); // Assert Assert.Equal(2, result.Count); Assert.Equal(new DateTime(2012, 12, 12), result[0].Date); Assert.Equal(new DateTime(2011, 11, 1), result[1].Date); }
public void ShouldGenerateSnapshot() { //Given var events = new List <object>(); Guid id = Guid.NewGuid(); const string name = "test"; var bus = new E05.Test.Infrastructure.Bus(); var snapshotStore = new SnapshotStore(); var eventsSerializer = EventsSerializer.GetEventSerializer(); var eventStore = new EventStore(bus, eventsSerializer, snapshotStore); var commandHandler = new InventoryCommandHandler(bus, eventStore); var projection = new ItemsProjection(bus); bus.Send(new CreateInventoryItem(id, name)); //When var i = 0; for (; i < 11; i++) { var lastProjection = projection.GetById(id); bus.Send(new ModifyItemName(id, "new" + i, lastProjection.Version)); } //Then var items = projection.GetAll().ToList(); Assert.AreEqual(1, items.Count); var kvp = items[0]; Assert.AreEqual(id, kvp.Id); Assert.AreEqual("new10", kvp.Name); Assert.AreEqual(11, kvp.Version); var snapshotData = snapshotStore.GetSnapshot(id); Assert.AreEqual(10, snapshotData.Version); var snapshot = JsonConvert.DeserializeObject <InventorySnapshot>(snapshotData.Data); Assert.AreEqual("new9", snapshot.Name); }
public EventStore(E05.Test.Infrastructure.Bus bus, EventsSerializer eventsSerializer) { Events = new List <EventDescriptor>(); _bus = bus; _eventsSerializer = eventsSerializer; }
public void BasicSerializationTest() { byte[] data = EventsSerializer.SerializeEvent(new PingEvent()); PingEvent pingEvent = EventsSerializer.DeserializeEvent <PingEvent>(data); }