packages feed

hydra-0.13.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 = []}