1 
2 //          Copyright Ferdinand Majerech 2011.
3 // Distributed under the Boost Software License, Version 1.0.
4 //    (See accompanying file LICENSE_1_0.txt or copy at
5 //          http://www.boost.org/LICENSE_1_0.txt)
6 
7 module dyaml.test.resolver;
8 
9 
10 version(unittest)
11 {
12 
13 import std.file;
14 import std..string;
15 
16 import dyaml.test.common;
17 
18 
19 /**
20  * Implicit tag resolution unittest.
21  *
22  * Params:  dataFilename   = File with unittest data.
23  *          detectFilename = Dummy filename used to specify which data filenames to use.
24  */
25 void testImplicitResolver(string dataFilename, string detectFilename) @safe
26 {
27     string correctTag;
28     Node node;
29 
30     scope(failure)
31     {
32         if(true)
33         {
34             writeln("Correct tag: ", correctTag);
35             writeln("Node: ", node.debugString);
36         }
37     }
38 
39     correctTag = readText(detectFilename).strip();
40 
41     node = Loader.fromFile(dataFilename).load();
42     assert(node.nodeID == NodeID.sequence);
43     foreach(ref Node scalar; node)
44     {
45         assert(scalar.nodeID == NodeID.scalar);
46         assert(scalar.tag == correctTag);
47     }
48 }
49 
50 
51 @safe unittest
52 {
53     printProgress("D:YAML Resolver unittest");
54     run("testImplicitResolver", &testImplicitResolver, ["data", "detect"]);
55 }
56 
57 } // version(unittest)