public async Task ChangeAppPath() { // [Setup] // setup webhost using appsettings with specific path var random = new Bogus.Randomizer(); var randomPathChars = random.Chars('a', 'z', random.Int(1, 10)); var randomPath = new string(randomPathChars); var randomSecret = random.Words(10); var hostbuilder = WebHost .CreateDefaultBuilder() .ConfigureServices(s => { s .AddOurOrders(appSettings => { appSettings.Path = randomPath; appSettings.JwtSecret = randomSecret; }) .UseInMemoryDB(); }) .Configure(appbuilder => { appbuilder .UseOurOrders(); }); var server = new TestServer(hostbuilder); var httpClient = server.CreateClient(); // [Exercise] // send a request to the webhost on the specified path var path = $"/{randomPath}/account/current"; var response = await httpClient.GetAsync(path); // [Verify] // check if request is successful Assert.True(response.IsSuccessStatusCode); // [Teardown] // shut down the server that we setup server.Dispose(); }
public static string BuildTestString(string pattern) { if (string.IsNullOrWhiteSpace(pattern)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(pattern)); } var randomizer = new Bogus.Randomizer(); const int noMatchPercentage = 50; if (WeightedMatch(noMatchPercentage)) { return(randomizer.String()); } const int charMatchPercentage = 95; var strBuilder = new StringBuilder(pattern.Length * 2); foreach (var patternCh in pattern) { if (patternCh == '?') { strBuilder.Append(randomizer.AlphaNumeric(1)); } else if (patternCh == '*') { strBuilder.Append(randomizer.Words()); } else { if (WeightedMatch(charMatchPercentage)) { strBuilder.Append(patternCh); } } } var str = strBuilder.ToString(); return(str); bool WeightedMatch(int percentage) { return(randomizer.Bool(percentage / 100f)); } }