From b1e98b22557171b9c554ee527ba0669153f40e8f Mon Sep 17 00:00:00 2001 From: Samson Amaugo Date: Fri, 15 Jul 2022 03:19:44 +0100 Subject: [PATCH 1/9] created project --- .../typedResults/TypedResultsApiWithTest/Program.cs | 6 ++++++ .../TypedResultsApiWithTest.csproj | 9 +++++++++ .../TypedResultsApiWithTest/appsettings.Development.json | 8 ++++++++ .../TypedResultsApiWithTest/appsettings.json | 9 +++++++++ 4 files changed, 32 insertions(+) create mode 100644 aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs create mode 100644 aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/TypedResultsApiWithTest.csproj create mode 100644 aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/appsettings.Development.json create mode 100644 aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/appsettings.json diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs new file mode 100644 index 000000000000..1760df1d28be --- /dev/null +++ b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs @@ -0,0 +1,6 @@ +var builder = WebApplication.CreateBuilder(args); +var app = builder.Build(); + +app.MapGet("/", () => "Hello World!"); + +app.Run(); diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/TypedResultsApiWithTest.csproj b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/TypedResultsApiWithTest.csproj new file mode 100644 index 000000000000..4c2bb77d0106 --- /dev/null +++ b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/TypedResultsApiWithTest.csproj @@ -0,0 +1,9 @@ + + + + net7.0 + enable + enable + + + diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/appsettings.Development.json b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/appsettings.Development.json new file mode 100644 index 000000000000..0c208ae9181e --- /dev/null +++ b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/appsettings.json b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/appsettings.json new file mode 100644 index 000000000000..10f68b8c8b4f --- /dev/null +++ b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} From ca0e98608a8d9ae2f495db45a90b5af571769a61 Mon Sep 17 00:00:00 2001 From: Samson Amaugo Date: Fri, 15 Jul 2022 03:21:37 +0100 Subject: [PATCH 2/9] added required test nugets --- .../TypedResultsApiWithTest/TypedResultsApiWithTest.csproj | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/TypedResultsApiWithTest.csproj b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/TypedResultsApiWithTest.csproj index 4c2bb77d0106..32b3eb29c7a2 100644 --- a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/TypedResultsApiWithTest.csproj +++ b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/TypedResultsApiWithTest.csproj @@ -6,4 +6,11 @@ enable + + + + + + + From 765089187171b9a2974e3c455b8df04f340a4ee8 Mon Sep 17 00:00:00 2001 From: Samson Amaugo Date: Fri, 15 Jul 2022 03:22:24 +0100 Subject: [PATCH 3/9] added custom controller --- .../TypedResultsApiWithTest/Program.cs | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs index 1760df1d28be..8a02a3769751 100644 --- a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs +++ b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs @@ -2,5 +2,41 @@ var app = builder.Build(); app.MapGet("/", () => "Hello World!"); - +// map the /weatherforecast endpoint to a custom action +app.MapWeatherApi(); app.Run(); + + + +public static class WeatherApi +{ + public static string[] summaries = +{ + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" +}; + + public static WebApplication MapWeatherApi(this WebApplication routes) + { + routes.MapGet("/weatherforecast", GetAllWeathers); + + return routes; + } + public static IResult GetAllWeathers() + { + var forecast = Enumerable.Range(1, 5).Select(index => + new WeatherForecast + ( + DateTime.Now.AddDays(index), + Random.Shared.Next(-20, 55), + summaries[Random.Shared.Next(summaries.Length)] + )) + .ToArray(); + // return a typed result + return TypedResults.Ok(forecast); ; + } +} + +public record WeatherForecast(DateTime Date, int TemperatureC, string? Summary) +{ + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +} From d7a946cb52b2a3f23089ebc1d07725be8725c149 Mon Sep 17 00:00:00 2001 From: Samson Amaugo Date: Fri, 15 Jul 2022 03:23:37 +0100 Subject: [PATCH 4/9] created test file --- .../typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs new file mode 100644 index 000000000000..e69de29bb2d1 From d588ce0d74c935201334165008df05c9b7da7cef Mon Sep 17 00:00:00 2001 From: Samson Amaugo Date: Fri, 15 Jul 2022 03:24:52 +0100 Subject: [PATCH 5/9] added comments --- .../Test/WeatherApiTest.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs index e69de29bb2d1..e35f43824b4e 100644 --- a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs +++ b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs @@ -0,0 +1,19 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Microsoft.AspNetCore.Http.HttpResults; + +namespace Tests +{ + [TestClass()] + public class WeatherApiTests + { + [TestMethod()] + public void MapWeatherApiTest() + { + var result = WeatherApi.GetAllWeathers(); + // assert that the result is a typed result of type WeatherForecast[] + Assert.IsInstanceOfType(result, typeof(Ok)); + } + + } + +} \ No newline at end of file From 96b01ede78b6e0de10a1cf843954a415c62449d2 Mon Sep 17 00:00:00 2001 From: sammychinedu2ky Date: Sat, 16 Jul 2022 06:02:56 +0100 Subject: [PATCH 6/9] add new line Co-authored-by: Rick Anderson <3605364+Rick-Anderson@users.noreply.github.com> --- .../typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs index e35f43824b4e..24994ae3f959 100644 --- a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs +++ b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs @@ -16,4 +16,4 @@ public void MapWeatherApiTest() } -} \ No newline at end of file +} From 301c1ea62ead9ed1dbd05d8e82a5369690d8f608 Mon Sep 17 00:00:00 2001 From: sammychinedu2ky Date: Sat, 16 Jul 2022 06:03:27 +0100 Subject: [PATCH 7/9] remove a line Co-authored-by: Rick Anderson <3605364+Rick-Anderson@users.noreply.github.com> --- .../misc-samples/typedResults/TypedResultsApiWithTest/Program.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs index 8a02a3769751..b866e53e53f3 100644 --- a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs +++ b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs @@ -31,7 +31,6 @@ public static IResult GetAllWeathers() summaries[Random.Shared.Next(summaries.Length)] )) .ToArray(); - // return a typed result return TypedResults.Ok(forecast); ; } } From 2b67822aabac19f9d106fc2dec0cfb0a9b0744b7 Mon Sep 17 00:00:00 2001 From: sammychinedu2ky Date: Sat, 16 Jul 2022 06:03:44 +0100 Subject: [PATCH 8/9] remove line Co-authored-by: Rick Anderson <3605364+Rick-Anderson@users.noreply.github.com> --- .../typedResults/TypedResultsApiWithTest/Program.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs index b866e53e53f3..c1c7edbd6be2 100644 --- a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs +++ b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Program.cs @@ -6,8 +6,6 @@ app.MapWeatherApi(); app.Run(); - - public static class WeatherApi { public static string[] summaries = From 8d990a56e6da471d2a0ac6683d131e60a292a677 Mon Sep 17 00:00:00 2001 From: sammychinedu2ky Date: Sat, 16 Jul 2022 06:04:02 +0100 Subject: [PATCH 9/9] removed comment Co-authored-by: Rick Anderson <3605364+Rick-Anderson@users.noreply.github.com> --- .../typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs index 24994ae3f959..549a5a44fe91 100644 --- a/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs +++ b/aspnetcore/fundamentals/minimal-apis/misc-samples/typedResults/TypedResultsApiWithTest/Test/WeatherApiTest.cs @@ -10,7 +10,6 @@ public class WeatherApiTests public void MapWeatherApiTest() { var result = WeatherApi.GetAllWeathers(); - // assert that the result is a typed result of type WeatherForecast[] Assert.IsInstanceOfType(result, typeof(Ok)); }