public async void PostStarterZipValidationTest() { var model = new GeneratorModel() { Dependencies = "Actuator,MySql", Description = "TestDescription", ProjectName = "123.TestProject", SteeltoeVersion = "2.2.0", TargetFrameworkVersion = "netcoreapp2.2", TemplateShortName = "Steeltoe-WebApi", TemplateVersion = TemplateVersion.V2, }; var props = model.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance); var kvps = props.Select(prop => new KeyValuePair <string, string>(prop.Name, prop.GetValue(model).ToString())).ToArray(); var formContent = new FormUrlEncodedContent(kvps); var result = await _client.PostAsync("https://localhost/starter.zip", formContent); Assert.Equal(HttpStatusCode.BadRequest, result.StatusCode); var responseString = await result.Content.ReadAsStringAsync(); Assert.Contains(@"""ProjectName"":[""ProjectName must be a valid C# Identifier""]", responseString); }
public async void PostStarterZipTest() { var model = new GeneratorModel() { Dependencies = "Actuator,MySql", Description = "TestDescription", ProjectName = "TestCompany.TestProject", SteeltoeVersion = "2.2.0", TargetFrameworkVersion = "netcoreapp2.2", TemplateShortName = "Steeltoe-WebApi", TemplateVersion = TemplateVersion.V2, }; var props = model.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance); var kvps = props.Select(prop => new KeyValuePair <string, string>(prop.Name, prop.GetValue(model).ToString())).ToArray(); var formContent = new FormUrlEncodedContent(kvps); var result = await _client.PostAsync("https://localhost/starter.zip", formContent); Assert.Equal(HttpStatusCode.OK, result.StatusCode); Dictionary <string, string> files = new Dictionary <string, string>(); using (var stream = await result.Content.ReadAsStreamAsync()) { using (ZipArchive archive = new ZipArchive(stream, ZipArchiveMode.Read)) { foreach (var entry in archive.Entries) { var fileStream = entry.Open(); files.Add(entry.Name, new StreamReader(fileStream).ReadToEnd()); } } } Assert.True(files.Count > 0); Assert.Contains("Program.cs", files.Keys); Assert.Contains("TestCompany.TestProject", files["Program.cs"]); }