public async Task CurrentInfoUri_ShouldReturnExpectedResponse() { var freezeDateTime = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc); var options = new TemporalOptions(); using (var server = TestServer.Create(app => { app.UseTemporal(options); })) { var response = await server.CreateRequest(options.CurrentInfoUri) .AddHeader("cookie", freezeDateTime.ToString("o")) .GetAsync(); response.EnsureSuccessStatusCode(); var responseType = new { Now = new DateTime(), UtcNow = new DateTime() }; var responseObj = JsonConvert.DeserializeAnonymousType( await response.Content.ReadAsStringAsync(), responseType); Assert.Equal(freezeDateTime, responseObj.UtcNow); Assert.Equal(freezeDateTime.ToLocalTime(), responseObj.Now); } }
public async Task FreezeUri_ShouldSetCookie() { var freezeUtc = "2000-01-01T00:00:00"; var options = new TemporalOptions(); using (var server = TestServer.Create(app => { app.UseTemporal(options); })) { var content = new FormUrlEncodedContent(new Dictionary <string, string>() { { "utc", freezeUtc } }); var response = await server.HttpClient.PostAsync(options.FreezeUri, content); response.EnsureSuccessStatusCode(); var setCookieHeaderValue = response.Headers .Single(x => x.Key == "Set-Cookie").Value.Single(); var expectedStartsWith = CookieTimeProvider.CookieName + $"={HttpUtility.UrlEncode(freezeUtc + ".0000000").ToUpper()}"; Assert.True(setCookieHeaderValue.StartsWith(expectedStartsWith), $"Expected\n{setCookieHeaderValue}\nto start with\n{expectedStartsWith}"); } }
public async Task FreezeUri_ShouldReturnMethodNotAllowedForGet() { var options = new TemporalOptions(); using (var server = TestServer.Create(app => { app.UseTemporal(options); })) { var response = await server.HttpClient.GetAsync(options.FreezeUri); Assert.Equal(HttpStatusCode.MethodNotAllowed, response.StatusCode); } }
public async Task FreezeUri_ShouldReturnBadRequestWhenMissingQueryStringParameter() { var options = new TemporalOptions(); using (var server = TestServer.Create(app => { app.UseTemporal(options); })) { var content = new StringContent(""); var response = await server.HttpClient.PostAsync(options.FreezeUri, content); Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); } }
public async Task UnfreezeUri_ShouldRemoveCookie() { var options = new TemporalOptions(); using (var server = TestServer.Create(app => { app.UseTemporal(options); })) { var content = new StringContent(""); var response = await server.HttpClient.PostAsync(options.UnfreezeUri, content); response.EnsureSuccessStatusCode(); var setCookieHeaderValue = response.Headers .Single(x => x.Key == "Set-Cookie").Value.Single(); Assert.Equal( $"{CookieTimeProvider.CookieName}=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT", setCookieHeaderValue); } }