packages feed

hydra-0.14.0: src/gen-test/haskell/Hydra/Test/Json/Writer.hs

-- Note: this is an automatically generated file. Do not edit.

-- | Test cases for JSON serialization

module Hydra.Test.Json.Writer where

import qualified Hydra.Json.Model as Model
import qualified Hydra.Testing as Testing
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.ByteString as B
import qualified Data.Int as I
import qualified Data.List as L
import qualified Data.Map as M
import qualified Data.Set as S

-- | Test cases for JSON serialization (writer)
allTests :: Testing.TestGroup
allTests =
    Testing.TestGroup {
      Testing.testGroupName = "JSON serialization",
      Testing.testGroupDescription = Nothing,
      Testing.testGroupSubgroups = [
        Testing.TestGroup {
          Testing.testGroupName = "primitives",
          Testing.testGroupDescription = Nothing,
          Testing.testGroupSubgroups = [],
          Testing.testGroupCases = [
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "null",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = Model.ValueNull,
                Testing.writerTestCaseOutput = "null"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "true",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueBoolean True),
                Testing.writerTestCaseOutput = "true"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "false",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueBoolean False),
                Testing.writerTestCaseOutput = "false"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "zero",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueNumber 0.0),
                Testing.writerTestCaseOutput = "0"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "positive integer",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueNumber 42.0),
                Testing.writerTestCaseOutput = "42"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "negative integer",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueNumber (-17.0)),
                Testing.writerTestCaseOutput = "-17"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "large integer",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueNumber 1000000.0),
                Testing.writerTestCaseOutput = "1000000"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "decimal",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueNumber 3.14),
                Testing.writerTestCaseOutput = "3.14"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "negative decimal",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueNumber (-2.5)),
                Testing.writerTestCaseOutput = "-2.5"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "small decimal",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueNumber 1.0e-3),
                Testing.writerTestCaseOutput = "1.0e-3"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []}]},
        Testing.TestGroup {
          Testing.testGroupName = "strings",
          Testing.testGroupDescription = Nothing,
          Testing.testGroupSubgroups = [],
          Testing.testGroupCases = [
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "empty string",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueString ""),
                Testing.writerTestCaseOutput = "\"\""})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "simple string",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueString "hello"),
                Testing.writerTestCaseOutput = "\"hello\""})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "string with spaces",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueString "hello world"),
                Testing.writerTestCaseOutput = "\"hello world\""})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "string with double quote",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueString "say \"hi\""),
                Testing.writerTestCaseOutput = "\"say \\\"hi\\\"\""})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "string with backslash",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueString "path\\to\\file"),
                Testing.writerTestCaseOutput = "\"path\\\\to\\\\file\""})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "string with newline",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueString "line1\nline2"),
                Testing.writerTestCaseOutput = "\"line1\\nline2\""})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "string with carriage return",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueString "line1\rline2"),
                Testing.writerTestCaseOutput = "\"line1\\rline2\""})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "string with tab",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueString "col1\tcol2"),
                Testing.writerTestCaseOutput = "\"col1\\tcol2\""})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "string with mixed escapes",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueString "a\"b\\c\nd"),
                Testing.writerTestCaseOutput = "\"a\\\"b\\\\c\\nd\""})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []}]},
        Testing.TestGroup {
          Testing.testGroupName = "arrays",
          Testing.testGroupDescription = Nothing,
          Testing.testGroupSubgroups = [],
          Testing.testGroupCases = [
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "empty array",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueArray []),
                Testing.writerTestCaseOutput = "[]"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "single element",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueArray [
                  Model.ValueNumber 1.0]),
                Testing.writerTestCaseOutput = "[1]"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "multiple numbers",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueArray [
                  Model.ValueNumber 1.0,
                  (Model.ValueNumber 2.0),
                  (Model.ValueNumber 3.0)]),
                Testing.writerTestCaseOutput = "[1, 2, 3]"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "multiple strings",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueArray [
                  Model.ValueString "a",
                  (Model.ValueString "b")]),
                Testing.writerTestCaseOutput = "[\"a\", \"b\"]"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "mixed types",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueArray [
                  Model.ValueNumber 1.0,
                  (Model.ValueString "two"),
                  (Model.ValueBoolean True),
                  Model.ValueNull]),
                Testing.writerTestCaseOutput = "[1, \"two\", true, null]"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []}]},
        Testing.TestGroup {
          Testing.testGroupName = "objects",
          Testing.testGroupDescription = Nothing,
          Testing.testGroupSubgroups = [],
          Testing.testGroupCases = [
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "empty object",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueObject M.empty),
                Testing.writerTestCaseOutput = "{}"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "single key-value",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueObject (M.fromList [
                  ("name", (Model.ValueString "Alice"))])),
                Testing.writerTestCaseOutput = "{\"name\": \"Alice\"}"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "multiple keys",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueObject (M.fromList [
                  ("a", (Model.ValueNumber 1.0)),
                  ("b", (Model.ValueNumber 2.0))])),
                Testing.writerTestCaseOutput = "{\"a\": 1, \"b\": 2}"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "mixed value types",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueObject (M.fromList [
                  ("active", (Model.ValueBoolean True)),
                  ("count", (Model.ValueNumber 42.0)),
                  ("name", (Model.ValueString "test"))])),
                Testing.writerTestCaseOutput = "{\"active\": true, \"count\": 42, \"name\": \"test\"}"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []}]},
        Testing.TestGroup {
          Testing.testGroupName = "nested structures",
          Testing.testGroupDescription = Nothing,
          Testing.testGroupSubgroups = [],
          Testing.testGroupCases = [
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "nested arrays",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueArray [
                  Model.ValueArray [
                    Model.ValueNumber 1.0,
                    (Model.ValueNumber 2.0)],
                  (Model.ValueArray [
                    Model.ValueNumber 3.0,
                    (Model.ValueNumber 4.0)])]),
                Testing.writerTestCaseOutput = "[[1, 2], [3, 4]]"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "object with array",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueObject (M.fromList [
                  ("items", (Model.ValueArray [
                    Model.ValueNumber 1.0,
                    (Model.ValueNumber 2.0)]))])),
                Testing.writerTestCaseOutput = "{\"items\": [1, 2]}"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "array of objects",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueArray [
                  Model.ValueObject (M.fromList [
                    ("id", (Model.ValueNumber 1.0))]),
                  (Model.ValueObject (M.fromList [
                    ("id", (Model.ValueNumber 2.0))]))]),
                Testing.writerTestCaseOutput = "[{\"id\": 1}, {\"id\": 2}]"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []},
            Testing.TestCaseWithMetadata {
              Testing.testCaseWithMetadataName = "nested object",
              Testing.testCaseWithMetadataCase = (Testing.TestCaseJsonWriter (Testing.WriterTestCase {
                Testing.writerTestCaseInput = (Model.ValueObject (M.fromList [
                  ("user", (Model.ValueObject (M.fromList [
                    ("name", (Model.ValueString "Bob"))])))])),
                Testing.writerTestCaseOutput = "{\"user\": {\"name\": \"Bob\"}}"})),
              Testing.testCaseWithMetadataDescription = Nothing,
              Testing.testCaseWithMetadataTags = []}]}],
      Testing.testGroupCases = []}