TEST (kdbrestModelsEntryTest, SetAndGetAndHasTags)
{

	kdb::Key key (kdbrest::Config::instance ().getConfig ().get<std::string> ("kdb.path.configs") + std::string ("/test/key1"),
		      KEY_END);
	kdbrest::model::Entry entry (key);
	const char * taglist[] = { "one", "two", "three", "four", "five" };
	std::vector<std::string> tags (taglist, std::end (taglist));
	entry.setTags (tags);

	std::vector<std::string> retTags = entry.getTags ();

	for (int i = 0; i < 5; i++)
	{
		ASSERT_TRUE (std::find (retTags.begin (), retTags.end (), taglist[i]) != retTags.end ());
	}

	std::string one (taglist[0]);
	std::string three (taglist[2]);
	ASSERT_TRUE (entry.hasTag (one));
	ASSERT_TRUE (entry.hasTag (three));

	std::string seven ("seven");
	std::string fou ("fou");
	std::string five_uc ("FIVE");
	ASSERT_FALSE (entry.hasTag (seven));
	ASSERT_FALSE (entry.hasTag (fou));
	ASSERT_FALSE (entry.hasTag (five_uc));
}
int main()
{
  Node lst(11);
  Node two(22), thr(33), fou(44);
  lst.add_node(&two);
  lst.add_node(&thr);
  lst.add_node(&fou);
  lst.traverse();
  lst.remove_node(44);
  lst.traverse();
  lst.remove_node(22);
  lst.traverse();
  lst.remove_node(11);
  lst.traverse();
}