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)