%% vim:ft=erlang:

%% TEST
{setup,
  fun() ->
      application:start(yamerl)
  end,
  [
    ?_assertMatch(
      [
        [[12356, 12429, 12399]]
      ],
      yamerl_constr:file("${FILENAME}",
        [{detailed_constr, false}, {schema, failsafe}])
    ),
    ?_assertThrow(
      {yamerl_exception, [
          {yamerl_parsing_error,error, "Invalid string", 1, 3, not_a_string,
            {yamerl_scalar, 1, 3,
              {yamerl_tag, 1, 3, {non_specific, "?"}},
              flow, plain, [12356, 12429, 12399]},
            []}]},
      yamerl_constr:file("${FILENAME}",
        [{detailed_constr, false}, {schema, json}])
    ),
    ?_assertMatch(
      [
        [[12356, 12429, 12399]]
      ],
      yamerl_constr:file("${FILENAME}",
        [{detailed_constr, false}, {schema, core}])
    ),
    ?_assertMatch(
      [
        {yamerl_doc,
          {yamerl_seq,yamerl_node_seq,"tag:yaml.org,2002:seq",
            [{line,1},{column,1}],
            [{yamerl_str,yamerl_node_str,"tag:yaml.org,2002:str",
                [{line,1},{column,3}],
                [12356, 12429, 12399]}],
            1}}
      ],
      yamerl_constr:file("${FILENAME}",
        [{detailed_constr, true}, {schema, failsafe}])
    ),
    ?_assertThrow(
      {yamerl_exception, [
          {yamerl_parsing_error,error, "Invalid string", 1, 3, not_a_string,
            {yamerl_scalar, 1, 3,
              {yamerl_tag, 1, 3, {non_specific, "?"}},
              flow, plain, [12356, 12429, 12399]},
            []}]},
      yamerl_constr:file("${FILENAME}",
        [{detailed_constr, true}, {schema, json}])
    ),
    ?_assertMatch(
      [
        {yamerl_doc,
          {yamerl_seq,yamerl_node_seq,"tag:yaml.org,2002:seq",
            [{line,1},{column,1}],
            [{yamerl_str,yamerl_node_str,"tag:yaml.org,2002:str",
                [{line,1},{column,3}],
                [12356, 12429, 12399]}],
            1}}
      ],
      yamerl_constr:file("${FILENAME}",
        [{detailed_constr, true}, {schema, core}])
    )
  ]
}
