TEST(GTestLinkedList, TestError) { LinkedList::Ptr l = LinkedList::create(); #ifdef LIBJ_USE_EXCEPTION ASSERT_ANY_THROW(l->get(5)); #else Error::CPtr e; ASSERT_TRUE(to<Error::CPtr>(l->get(0), &e)); ASSERT_TRUE(e->instanceof(Type<Error>::id())); ASSERT_EQ(e->code(), Error::INDEX_OUT_OF_BOUNDS); #endif // LIBJ_USE_EXCEPTION }
TEST(GTestLinkedList, TestSet) { LinkedList::Ptr l = LinkedList::create(); l->add(123); l->add(456); l->set(0, 234); l->set(1, 567); int v; to<int>(l->get(0), &v); ASSERT_EQ(v, 234); to<int>(l->get(1), &v); ASSERT_EQ(v, 567); ASSERT_EQ(l->size(), 2); }
TEST(GTestLinkedList, TestAddAndGet) { LinkedList::Ptr l = LinkedList::create(); l->add(123); l->add(456); l->add(1, 789); int v; to<int>(l->get(0), &v); ASSERT_EQ(v, 123); to<int>(l->get(1), &v); ASSERT_EQ(v, 789); to<int>(l->get(2), &v); ASSERT_EQ(v, 456); }
TEST(GTestLinkedList, TestClear) { LinkedList::Ptr l = LinkedList::create(); l->add(123); l->add(456); l->clear(); #ifdef LIBJ_USE_EXCEPTION ASSERT_ANY_THROW(l->get(0)); #else Error::CPtr e; ASSERT_TRUE(to<Error::CPtr>(l->get(0), &e)); ASSERT_TRUE(e->instanceof(Type<Error>::id())); #endif // LIBJ_USE_EXCEPTION ASSERT_EQ(l->size(), 0); }
TEST(GTestLinkedList, TestRemove) { LinkedList::Ptr l = LinkedList::create(); l->add(123); l->add(456); l->remove(0); int v; to<int>(l->get(0), &v); ASSERT_EQ(v, 456); ASSERT_EQ(l->size(), 1); }
TEST(GTestLinkedList, TestRemove2) { LinkedList::Ptr l = LinkedList::create(); l->add(123); l->add(456); l->add(789); ASSERT_TRUE(l->remove(static_cast<Value>(456))); ASSERT_FALSE(l->remove(static_cast<Value>(567))); int v; to<int>(l->get(1), &v); ASSERT_EQ(v, 789); ASSERT_EQ(l->size(), 2); }