31 #include <tagcoll/coll/simple.h>
32 #include <tagcoll/stream/sink.h>
34 #include <wibble/operators.h>
40 #ifndef EPT_DEBTAGS_TESTH
41 #define EPT_DEBTAGS_TESTH
43 using namespace tagcoll;
46 using namespace ept::debtags;
47 using namespace wibble::operators;
64 int items = 0, tags = 0;
65 debtags.outputSystem(stream::countingSink(items, tags));
67 int pitems = 0, ptags = 0;
68 debtags.outputPatched(stream::countingSink(pitems, ptags));
72 assert(items <= pitems);
73 assert(tags <= ptags);
79 std::set<Tag> tags = debtags.getTagsOfItem(p);
80 assert( !tags.empty() );
83 for ( std::set< Tag >::iterator i = tags.begin(); i != tags.end(); ++ i ) {
84 std::cerr << i->id() <<
": " << i->fullname() << std::endl;
86 std::cerr <<
"---" << std::endl;
87 Tag t = voc().tagByName(
"interface::commandline" );
88 std::cerr << t.
id() <<
": " << t.
fullname() << std::endl;
91 assert_eq( tags.size(), 8u );
92 assert( voc().tagByName(
"devel::buildtools" ) <= tags );
93 assert( voc().tagByName(
"implemented-in::c++" ) <= tags );
94 assert( voc().tagByName(
"interface::commandline" ) <= tags );
95 assert( voc().tagByName(
"role::program" ) <= tags );
96 assert( voc().tagByName(
"scope::application" ) <= tags );
97 assert( voc().tagByName(
"suite::debian" ) <= tags );
98 assert( voc().tagByName(
"use::searching" ) <= tags );
99 assert( voc().tagByName(
"works-with::software:package" ) <= tags );
110 std::set<Tag> tags = debtags.getTagsOfItem(p);
111 assert(!tags.empty());
154 std::set<string> packages = debtags.getItemsHavingTags(tags);
156 assert(!packages.empty());
164 assert( p <= packages );
167 Tag tag = *tags.begin();
177 packages = debtags.getItemsHavingTags(ts);
180 assert(!packages.empty());
182 assert( p <= packages );
189 std::string patchfile = Path::debtagsUserSourceDir() +
"patch";
190 unlink(patchfile.c_str());
195 std::set<Tag> tags = debtags.getTagsOfItem(p);
196 assert(!tags.empty());
199 Tag t = voc().tagByName(
"use::gameplaying");
200 assert(! (t <= tags) );
204 change.addPatch(Patch<string, Tag>(p, wibble::singleton(t), wibble::Empty<Tag>()));
205 debtags.applyChange(change);
209 assert(tmp.size() > 0);
210 assert_eq(tmp.size(), 1u);
213 tags = debtags.getTagsOfItem(p);
214 assert(!tags.empty());
216 t = voc().tagByName(
"use::gameplaying");
223 FILE* in = fopen(patchfile.c_str(),
"r");
226 while ((c = getc(in)) != EOF)
230 assert_eq(writtenPatch,
string(
"debtags: +use::gameplaying\n"));
232 unlink(patchfile.c_str());
235 debtags.applyChange(change);
238 tmp = debtags.changes();
239 assert_eq(tmp.size(), 1u);
240 assert_eq(tmp.begin()->first, p);
241 assert_eq(tmp.begin()->second.item, p);
253 assert(empty.
begin() == empty.
end());
258 assert(patches.empty());
268 tagcoll::coll::Simple<string, Tag> coll;
270 assert_eq(coll.itemCount(), 0u);
275 assert_eq(coll.itemCount(), 0u);
280 #include <ept/debtags/debtags.tcc>
281 #include <tagcoll/coll/simple.tcc>