public void When_multiple_events_are_registered_it_should_remember_their_timestamps() { //----------------------------------------------------------------------------------------------------------- // Arrange //----------------------------------------------------------------------------------------------------------- DateTime nowUtc = 16.June(2017).At(15, 00).AsUtc(); var stats = new ProjectionStats(() => nowUtc); //----------------------------------------------------------------------------------------------------------- // Act //----------------------------------------------------------------------------------------------------------- stats.LogEvent("myProjector", "first event"); nowUtc = nowUtc.At(16, 00).AsUtc(); stats.LogEvent("myProjector", "second event"); //----------------------------------------------------------------------------------------------------------- // Assert //----------------------------------------------------------------------------------------------------------- var projectorStats = stats.Should().ContainSingle(s => s.ProjectorId == "myProjector").Subject; projectorStats.GetEvents().Should().BeEquivalentTo(new[] { new { Body = "first event", TimestampUtc = nowUtc.At(15, 00) }, new { Body = "second event", TimestampUtc = nowUtc.At(16, 00) } }); }
public When_the_events_of_a_specific_projector_are_requested() { Given(() => { var nowUtc = 10.July(2017).At(10, 39).AsUtc(); var stats = new ProjectionStats(() => nowUtc); stats.LogEvent("id1", "someevent"); var appBuilder = new AppBuilder(); appBuilder.UseLiquidProjections(stats); var httpClient = new HttpClient(new OwinHttpMessageHandler(appBuilder.Build())); httpClient.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); WithSubject(ct => httpClient); }); When(async() => { return(await Subject.GetAsync("http://localhost/projectionStats/id1/events")); }); }