private async Task ExistingPage(ServerType server, RuntimeFlavor runtimeFlavor, RuntimeArchitecture architecture, string applicationBaseUrl) { await TestServices.RunSiteTest( SiteName, server, runtimeFlavor, architecture, applicationBaseUrl, async (httpClient, logger, token) => { var response = await RetryHelper.RetryRequest(async() => { return(await httpClient.GetAsync(string.Empty)); }, logger, token, retryCount: 30); var responseText = await response.Content.ReadAsStringAsync(); logger.LogResponseOnFailedAssert(response, responseText, () => { string expectedText = "Hello World, try /bob to get a 404"; Assert.Equal(expectedText, responseText); Assert.Equal(HttpStatusCode.OK, response.StatusCode); }); }); }
private async Task RunSite(ServerType serverType, RuntimeFlavor runtimeFlavor, RuntimeArchitecture architecture, string applicationBaseUrl) { await TestServices.RunSiteTest( SiteName, serverType, runtimeFlavor, architecture, applicationBaseUrl, async (httpClient, logger, token) => { var response = await RetryHelper.RetryRequest(async() => { return(await httpClient.GetAsync(string.Empty)); }, logger, token, retryCount: 30); var responseText = await response.Content.ReadAsStringAsync(); string expectedText = "Retry Count 42\r\n" + "Default Ad Block House\r\n" + "Ad Block Contoso Origin sql-789 Product Code contoso2014\r\n" + "Ad Block House Origin blob-456 Product Code 123\r\n"; logger.LogResponseOnFailedAssert(response, responseText, () => { Assert.Equal(expectedText, responseText); }); }); }
private async Task RunSite(ServerType server, RuntimeFlavor runtimeFlavor, RuntimeArchitecture architecture, string applicationBaseUrl) { await TestServices.RunSiteTest( SiteName, server, runtimeFlavor, architecture, applicationBaseUrl, async (httpClient, logger, token) => { // ===== English ===== var response = await RetryHelper.RetryRequest(async() => { return(await httpClient.GetAsync(string.Empty)); }, logger, token, retryCount: 30); var responseText = await response.Content.ReadAsStringAsync(); var headingIndex = responseText.IndexOf("<h2>Application uses</h2>"); Assert.True(headingIndex >= 0); // ===== French ===== response = await RetryHelper.RetryRequest(async() => { return(await httpClient.GetAsync("?culture=fr&ui-culture=fr")); }, logger, token, retryCount: 30); responseText = await response.Content.ReadAsStringAsync(); headingIndex = responseText.IndexOf("<h2>Utilisations d'application</h2>"); Assert.True(headingIndex >= 0); }); }
private async Task RunSite(ServerType serverType, RuntimeFlavor runtimeFlavor, RuntimeArchitecture architecture, string applicationBaseUrl) { await TestServices.RunSiteTest(SiteName, serverType, runtimeFlavor, architecture, applicationBaseUrl, async (httpClient, logger, token) => { var response = await RetryHelper.RetryRequest(async() => { return(await httpClient.GetAsync(string.Empty)); }, logger, token, retryCount: 30); var responseText = await response.Content.ReadAsStringAsync(); logger.LogResponseOnFailedAssert(response, responseText, () => { Assert.Equal("Before\r\nHello world\r\nAfter\r\n", responseText); var customHeaderText = response.Headers.GetValues("CustomHeader").Single(); Assert.Equal("My Header", customHeaderText); }); }); }
private async Task RunSite(ServerType serverType, RuntimeFlavor runtimeFlavor, RuntimeArchitecture architecture, string applicationBaseUrl) { await TestServices.RunSiteTest( SiteName, serverType, runtimeFlavor, architecture, applicationBaseUrl, async (httpClient, logger, token) => { var response = await RetryHelper.RetryRequest(async() => { return(await httpClient.GetAsync(string.Empty)); }, logger, token, retryCount: 30); var responseText = await response.Content.ReadAsStringAsync(); logger.LogResponseOnFailedAssert(response, responseText, () => { Assert.Equal("Yo, middleware!\r\nThis request is a GET\r\n", responseText); }); }); }
public async Task CustomErrorCode(ServerType server, RuntimeFlavor runtimeFlavor, RuntimeArchitecture architecture, string applicationBaseUrl) { await TestServices.RunSiteTest( SiteName, server, runtimeFlavor, architecture, applicationBaseUrl, async (httpClient, logger, token) => { var response = await RetryHelper.RetryRequest(async() => { return(await httpClient.GetAsync("/errors/" + (int)HttpStatusCode.PaymentRequired)); }, logger, token, retryCount: 30); var responseText = await response.Content.ReadAsStringAsync(); logger.LogResponseOnFailedAssert(response, responseText, () => { Assert.Equal(HttpStatusCode.PaymentRequired, response.StatusCode); }); }); }
private async Task NonExistingPage(ServerType server, RuntimeFlavor runtimeFlavor, RuntimeArchitecture architecture, string applicationBaseUrl) { await TestServices.RunSiteTest( SiteName, server, runtimeFlavor, architecture, applicationBaseUrl, async (httpClient, logger, token) => { var response = await RetryHelper.RetryRequest(async() => { return(await httpClient.GetAsync("/bob")); }, logger, token, retryCount: 30); var responseText = await response.Content.ReadAsStringAsync(); logger.LogResponseOnFailedAssert(response, responseText, () => { Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }); }); }
private async Task RunSite(ServerType serverType, RuntimeFlavor runtimeFlavor, RuntimeArchitecture architecture, string applicationBaseUrl) { await TestServices.RunSiteTest( SiteName, serverType, runtimeFlavor, architecture, applicationBaseUrl, async (httpClient, logger, token) => { var response = await RetryHelper.RetryRequest(async() => { return(await httpClient.GetAsync(string.Empty)); }, logger, token, retryCount: 30); var responseText = await response.Content.ReadAsStringAsync(); logger.LogResponseOnFailedAssert(response, responseText, () => { Assert.Contains("ValueOfKey-Data:Inventory:ConnectionString", responseText); Assert.Contains("ValueOfKey-Data:Inventory:Provider", responseText); }); }); }
private async Task RunSite(ServerType server, RuntimeFlavor runtimeFlavor, RuntimeArchitecture architecture, string applicationBaseUrl) { // calltwo and callthree in the expression below // increment on every call. // The test verifies that everything else stays the same // and that the two values that change are increasing in value string responseMatcher = @"---------- MyMiddleware ctor\r\n" + @"CallOne\[1\]\r\n" + @"CallTwo\[2\]\r\n" + @"CallThree\[3\]\r\n" + @"---------- context\.RequestServices\r\n" + @"CallOne\[1\]\r\n" + @"CallTwo\[(?<calltwo>\d+)\]\r\n" + @"CallThree\[(?<callthree>\d+)\]\r\n" + @"---------- Done\r\n"; var responseRegex = new Regex(responseMatcher, RegexOptions.Compiled | RegexOptions.Multiline); await TestServices.RunSiteTest( SiteName, server, runtimeFlavor, architecture, applicationBaseUrl, async (httpClient, logger, token) => { // ===== First call ===== var response = await RetryHelper.RetryRequest(async() => { return(await httpClient.GetAsync(string.Empty)); }, logger, token, retryCount: 30); var responseText = await response.Content.ReadAsStringAsync(); var match = responseRegex.Match(responseText); Assert.True(match.Success); var callTwo1 = int.Parse(match.Groups["calltwo"].Value); var callThree1 = int.Parse(match.Groups["callthree"].Value); // ===== Second call ===== response = await RetryHelper.RetryRequest(async() => { return(await httpClient.GetAsync(string.Empty)); }, logger, token, retryCount: 30); responseText = await response.Content.ReadAsStringAsync(); logger.LogResponseOnFailedAssert(response, responseText, () => { match = responseRegex.Match(responseText); Assert.True(match.Success); var callTwo2 = int.Parse(match.Groups["calltwo"].Value); var callThree2 = int.Parse(match.Groups["callthree"].Value); Assert.True(callTwo1 < callTwo2); Assert.True(callThree1 < callThree2); }); }); }