1 2 // Copyright Ferdinand Majerech 2011-2014 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.errors; 8 9 10 version(unittest) 11 { 12 13 import std.file; 14 15 import dyaml.test.common; 16 17 18 /// Loader error unittest from file stream. 19 /// 20 /// Params: errorFilename = File name to read from. 21 void testLoaderError(string errorFilename) @safe 22 { 23 import std.array : array; 24 Node[] nodes; 25 try { nodes = Loader.fromFile(errorFilename).array; } 26 catch(YAMLException e) 27 { 28 printException(e); 29 return; 30 } 31 assert(false, "Expected an exception"); 32 } 33 34 /// Loader error unittest from string. 35 /// 36 /// Params: errorFilename = File name to read from. 37 void testLoaderErrorString(string errorFilename) @safe 38 { 39 import std.array : array; 40 try 41 { 42 auto nodes = Loader.fromFile(errorFilename).array; 43 } 44 catch(YAMLException e) 45 { 46 printException(e); 47 return; 48 } 49 assert(false, "Expected an exception"); 50 } 51 52 /// Loader error unittest from filename. 53 /// 54 /// Params: errorFilename = File name to read from. 55 void testLoaderErrorFilename(string errorFilename) @safe 56 { 57 import std.array : array; 58 try { auto nodes = Loader.fromFile(errorFilename).array; } 59 catch(YAMLException e) 60 { 61 printException(e); 62 return; 63 } 64 assert(false, "testLoaderErrorSingle(" ~ ", " ~ errorFilename ~ 65 ") Expected an exception"); 66 } 67 68 /// Loader error unittest loading a single document from a file. 69 /// 70 /// Params: errorFilename = File name to read from. 71 void testLoaderErrorSingle(string errorFilename) @safe 72 { 73 try { auto nodes = Loader.fromFile(errorFilename).load(); } 74 catch(YAMLException e) 75 { 76 printException(e); 77 return; 78 } 79 assert(false, "Expected an exception"); 80 } 81 82 @safe unittest 83 { 84 printProgress("D:YAML Errors unittest"); 85 run("testLoaderError", &testLoaderError, ["loader-error"]); 86 run("testLoaderErrorString", &testLoaderErrorString, ["loader-error"]); 87 run("testLoaderErrorFilename", &testLoaderErrorFilename, ["loader-error"]); 88 run("testLoaderErrorSingle", &testLoaderErrorSingle, ["single-loader-error"]); 89 } 90 91 } // version(unittest)