From 9c9d44a9c96b4a11379fb4dc14fb2b3ee460ae2a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 31 Aug 2025 23:03:07 +0000 Subject: [PATCH] Daily Test Coverage Improver: Add comprehensive HttpEncodings tests - Adds 9 test methods for FSharp.Data.HttpEncodings module - Achieves comprehensive coverage for encoding name/codepage resolution - Tests both valid encodings and error handling scenarios - Covers default encodings (ISO-8859-1) and common encodings (UTF-8, UTF-16, ASCII) - Includes proper exception testing for invalid inputs - All tests pass with zero regressions in existing test suite --- .../FSharp.Data.Core.Tests.fsproj | 1 + tests/FSharp.Data.Core.Tests/HttpEncodings.fs | 49 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 tests/FSharp.Data.Core.Tests/HttpEncodings.fs diff --git a/tests/FSharp.Data.Core.Tests/FSharp.Data.Core.Tests.fsproj b/tests/FSharp.Data.Core.Tests/FSharp.Data.Core.Tests.fsproj index b85fa7803..de077011c 100644 --- a/tests/FSharp.Data.Core.Tests/FSharp.Data.Core.Tests.fsproj +++ b/tests/FSharp.Data.Core.Tests/FSharp.Data.Core.Tests.fsproj @@ -20,6 +20,7 @@ + diff --git a/tests/FSharp.Data.Core.Tests/HttpEncodings.fs b/tests/FSharp.Data.Core.Tests/HttpEncodings.fs new file mode 100644 index 000000000..5aaba8721 --- /dev/null +++ b/tests/FSharp.Data.Core.Tests/HttpEncodings.fs @@ -0,0 +1,49 @@ +module FSharp.Data.Tests.HttpEncodings + +open FsUnit +open NUnit.Framework +open System.Text +open FSharp.Data + +[] +let ``HttpEncodings.PostDefaultEncoding returns ISO-8859-1`` () = + HttpEncodings.PostDefaultEncoding.WebName |> should equal "iso-8859-1" + +[] +let ``HttpEncodings.ResponseDefaultEncoding returns ISO-8859-1`` () = + HttpEncodings.ResponseDefaultEncoding.WebName |> should equal "iso-8859-1" + +[] +let ``HttpEncodings.getEncoding with valid encoding name works`` () = + let utf8Encoding = HttpEncodings.getEncoding "utf-8" + utf8Encoding.WebName |> should equal "utf-8" + +[] +let ``HttpEncodings.getEncoding with codepage number works`` () = + let utf8Encoding = HttpEncodings.getEncoding "65001" + utf8Encoding.WebName |> should equal "utf-8" + +[] +let ``HttpEncodings.getEncoding with ASCII encoding name works`` () = + let asciiEncoding = HttpEncodings.getEncoding "ascii" + asciiEncoding.WebName |> should equal "us-ascii" + +[] +let ``HttpEncodings.getEncoding with ISO-8859-1 encoding name works`` () = + let iso88591 = HttpEncodings.getEncoding "iso-8859-1" + iso88591.WebName |> should equal "iso-8859-1" + +[] +let ``HttpEncodings.getEncoding with UTF-16 codepage works`` () = + let utf16 = HttpEncodings.getEncoding "1200" + utf16.WebName |> should equal "utf-16" + +[] +let ``HttpEncodings.getEncoding with invalid encoding name throws`` () = + (fun () -> HttpEncodings.getEncoding "invalid-encoding-name" |> ignore) + |> should throw typeof + +[] +let ``HttpEncodings.getEncoding with invalid codepage number throws`` () = + (fun () -> HttpEncodings.getEncoding "99999" |> ignore) + |> should throw typeof \ No newline at end of file