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)