public async Task SingleInsertAndFind_TestAsync() { var streamEvent = FakeInstanceUtils.GenerateRandomStreamEvent(); await mongo.InsertEventAsync(new WebSocketStream(streamEvent, "tests")); var events = await mongo.FindEventsByFiltersAsync(Builders <WebSocketStream> .Filter.Eq(x => x.StreamEvent.Payload.Id, streamEvent.Payload.Id)); Assert.Single(events); var singleEvent = events.First(); Assert.IsType <WebSocketStream>(singleEvent); Assert.IsType <StreamEvent>(singleEvent.StreamEvent); Assert.IsType <Payload>(singleEvent.StreamEvent.Payload); Assert.IsAssignableFrom <IStreamEvent>(singleEvent.StreamEvent); Assert.IsAssignableFrom <IPayload>(singleEvent.StreamEvent.Payload); Assert.Equal(streamEvent.Event, singleEvent.StreamEvent.Event); Assert.Null(singleEvent.StreamEvent.JoinRef); Assert.Null(singleEvent.StreamEvent.Ref); Assert.Equal(streamEvent.Topic, singleEvent.StreamEvent.Topic); Assert.Equal(streamEvent.Payload.Timestamp, singleEvent.StreamEvent.Payload.Timestamp); Assert.Equal(streamEvent.Payload.MachineId, singleEvent.StreamEvent.Payload.MachineId); Assert.Equal(streamEvent.Payload.Status, singleEvent.StreamEvent.Payload.Status); }
public static async Task <(string id, string machineId, DateTime timestamp, string status)> SeedDataAsync(IMongo mongo) { string id = Guid.NewGuid().ToString(); await mongo.InsertEventAsync(new WebSocketStream( GenerateRandomStreamEvent(id: id), "tests" )); string machineId = Guid.NewGuid().ToString(); for (int i = 0; i < 10; i++) { await mongo.InsertEventAsync(new WebSocketStream( GenerateRandomStreamEvent(machineId: machineId), "tests" )); } DateTime timestamp = DateTime.UtcNow.AddDays(-5); for (int i = 0; i < 10; i++) { await mongo.InsertEventAsync(new WebSocketStream( GenerateRandomStreamEvent(timestamp: timestamp), "tests" )); } string status = "idle"; for (int i = 0; i < 10; i++) { await mongo.InsertEventAsync(new WebSocketStream( GenerateRandomStreamEvent(status: status), "tests" )); } return(id, machineId, timestamp, status); }
public async Task GetEventById_TestAsync() { string id = Guid.NewGuid().ToString(); var streamEvent = FakeInstanceUtils.GenerateRandomStreamEvent(id: id); await mongo.InsertEventAsync(new WebSocketStream(streamEvent, "test")); var singleEvent = await getData.GetEventByIdAsync(id); Assert.IsAssignableFrom <IWebSocketStream>(singleEvent); Assert.IsAssignableFrom <IStreamEvent>(singleEvent.StreamEvent); Assert.IsAssignableFrom <IPayload>(singleEvent.StreamEvent.Payload); Assert.Equal(streamEvent.Event, singleEvent.StreamEvent.Event); Assert.Null(singleEvent.StreamEvent.JoinRef); Assert.Null(singleEvent.StreamEvent.Ref); Assert.Equal(streamEvent.Topic, singleEvent.StreamEvent.Topic); Assert.Equal(streamEvent.Payload.Timestamp, singleEvent.StreamEvent.Payload.Timestamp); Assert.Equal(streamEvent.Payload.MachineId, singleEvent.StreamEvent.Payload.MachineId); Assert.Equal(streamEvent.Payload.Status, singleEvent.StreamEvent.Payload.Status); }
/// <summary> /// Method that encapsulate the business logic to store the event /// </summary> /// <param name="streamEvent">The stream event that need to be stored</param> /// <param name="source">A string description of the event source</param> /// <returns></returns> public async Task StoreEventAsync(IStreamEvent streamEvent, string source) { await mongo.InsertEventAsync(new WebSocketStream(streamEvent, source)); }