curl and pkg-config / unittest for tests
[dueringa_WikiWalker.git] / test / ToGraphvizWriterTests.cpp
blobb9226e093b953a17119e500025a93bf1bd73bd50
1 #include <UnitTest++.h>
3 #include <fstream>
5 #include "../src/ToGraphvizWriter.h"
7 // these test always pass, unless exceptions occur
9 SUITE(ArticleToGraphvizWriterTests)
11 TEST(WriteArticleWithMultipleLinks)
13 std::ofstream outfile("_artlinks.dot", std::ofstream::out | std::ofstream::trunc);
14 ToGraphvizWriter atj;
15 Article a("Farm");
16 a.addLink(new Article("Animal"));
17 a.addLink(new Article("Pig"));
18 a.addLink(new Article("Equality"));
19 atj.output(&a, outfile);
20 outfile.flush();
21 outfile.close();
24 TEST(WriteArticleCollectionDepthOne)
26 std::ofstream outfile("_artctree.dot", std::ofstream::out | std::ofstream::trunc);
27 ToGraphvizWriter atj;
28 ArticleCollection ac;
30 auto farm = new Article("Farm");
31 ac.add(farm);
33 auto animal = new Article("Animal");
34 farm->addLink(animal);
35 ac.add(animal);
37 auto pig = new Article("Pig");
38 farm->addLink(pig);
39 ac.add(pig);
41 auto equa = new Article("Equality");
42 farm->addLink(equa);
43 ac.add(equa);
45 atj.output(ac, outfile);
46 outfile.flush();
47 outfile.close();
50 TEST(WriteArticleCollectionDepthOne_WithInterlinks)
52 std::ofstream outfile("_artctree_interlink.dot",
53 std::ofstream::out | std::ofstream::trunc);
54 ToGraphvizWriter atj;
55 ArticleCollection ac;
57 auto farm = new Article("Farm");
58 ac.add(farm);
60 auto animal = new Article("Animal");
61 farm->addLink(animal);
62 ac.add(animal);
64 auto pig = new Article("Pig");
65 pig->setMarked(true);
66 farm->addLink(pig);
67 ac.add(pig);
69 pig->addLink(animal);
70 animal->addLink(pig);
72 auto equa = new Article("Equality");
73 farm->addLink(equa);
74 ac.add(equa);
76 atj.output(ac, outfile);
77 outfile.flush();
78 outfile.close();
81 TEST(WriteArticleCollectionDepthTwo)
83 std::ofstream outfile("_artc_deeptree.dot", std::ofstream::out | std::ofstream::trunc);
84 ToGraphvizWriter atj;
85 ArticleCollection ac;
87 auto farm = new Article("Farm");
88 ac.add(farm);
90 auto animal = new Article("Animal");
91 farm->addLink(animal);
92 ac.add(animal);
94 auto pig = new Article("Pig");
95 farm->addLink(pig);
96 ac.add(pig);
98 auto equa = new Article("Equality");
99 farm->addLink(equa);
100 ac.add(equa);
102 auto rights = new Article("Rights");
103 equa->addLink(rights);
104 ac.add(rights);
106 auto cat = new Article("Cat");
107 ac.add(cat);
108 animal->addLink(cat);
109 auto dog = new Article("Dog");
110 ac.add(dog);
111 animal->addLink(dog);
113 atj.output(ac, outfile);
114 outfile.flush();
115 outfile.close();