summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorljfa-ag <ljfa-ag@web.de>2015-07-12 18:11:32 +0200
committerljfa-ag <ljfa-ag@web.de>2015-07-12 18:11:32 +0200
commita6e071d35535c6097458d12ca268bd73c582dcfc (patch)
tree100253511e5e38502b0d6ea10b7bfa0fa0f2bddd
parentbd1ae77694bf3257f02f2d16ce58481115fe14db (diff)
downloadProject-Tick-a6e071d35535c6097458d12ca268bd73c582dcfc.tar.gz
Project-Tick-a6e071d35535c6097458d12ca268bd73c582dcfc.zip
Add tests for tag_list
-rw-r--r--test/nbttest.cpp47
1 files changed, 46 insertions, 1 deletions
diff --git a/test/nbttest.cpp b/test/nbttest.cpp
index f24b25f5f6..da4ff89876 100644
--- a/test/nbttest.cpp
+++ b/test/nbttest.cpp
@@ -151,7 +151,8 @@ void test_tag_compound()
ASSERT((comp == tag_compound{
{"abc", tag_long(-28)},
{"def", tag_byte(4)},
- {"ghi", tag_string("world")}}));
+ {"ghi", tag_string("world")}
+ }));
std::clog << "test_tag_compound passed" << std::endl;
}
@@ -211,6 +212,49 @@ void test_value()
std::clog << "test_value passed" << std::endl;
}
+void test_tag_list()
+{
+ tag_list list;
+ ASSERT(list.el_type() == tag_type::Null);
+ EXPECT_EXCEPTION(list.push_back(value()), std::bad_cast);
+
+ list.emplace_back<tag_string>("foo");
+ ASSERT(list.el_type() == tag_type::String);
+ list.push_back(value(tag_string("bar")));
+ EXPECT_EXCEPTION(list.push_back(value(tag_int(42))), std::bad_cast);
+ EXPECT_EXCEPTION(list.emplace_back<tag_compound>(), std::bad_cast);
+
+ //ASSERT(list == tag_list{"foo", "bar"});
+ ASSERT(list[0] == tag_string("foo"));
+ ASSERT(std::string(list.at(1)) == "bar");
+
+ ASSERT(list.size() == 2);
+ EXPECT_EXCEPTION(list.at(2), std::out_of_range);
+ EXPECT_EXCEPTION(list.at(-1), std::out_of_range);
+
+ list.set(1, value(tag_string("baz")));
+ ASSERT(std::string(list[1]) == "baz");
+
+ const char* values[] = {"foo", "baz"};
+ unsigned i = 0;
+ for(const value& val: list)
+ {
+ ASSERT(i < list.size());
+ ASSERT(std::string(val) == values[i]);
+ ++i;
+ }
+
+ list.pop_back();
+ //ASSERT(list == tag_list{"foo"});
+
+ list.clear();
+ ASSERT(list.size() == 0);
+ EXPECT_EXCEPTION(list.push_back(value(tag_short(25))), std::bad_cast);
+ EXPECT_EXCEPTION(list.push_back(value()), std::bad_cast);
+
+ std::clog << "test_tag_list passed" << std::endl;
+}
+
int main()
{
test_get_type();
@@ -218,4 +262,5 @@ int main()
test_tag_string();
test_tag_compound();
test_value();
+ test_tag_list();
}