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); }
/// <summary> /// It returns the set of events fetched using the defined filters /// </summary> /// <param name="filters">The filters to apply, for more info on filters check GetStreamEventsFilters()</param> /// <returns>A task that contains the enumerable list of IWebSocketStream that matches the filters</returns> public async Task <IEnumerable <IWebSocketStream> > GetEventsByFiltersAsync(IDictionary <string, string> filters) { var(mongoDBFilters, limit) = ParseFilters(filters); return(await mongo.FindEventsByFiltersAsync(mongoDBFilters, limit : limit)); }