Example #1
0
		TEST(ObjectTests, BooleanObject)
		{
			ObjectPtr object = createObject(false);
			ASSERT_EQ(Object::BOOLEAN, object->getNativeType());
			ASSERT_FALSE(object->isNil());
			ASSERT_EQ(false, object->getBoolean());
			ASSERT_EQ(0.f, object->getNumber());
			ASSERT_STREQ("false", object->getString().c_str());
			ASSERT_THROW(object->getUserdata(), ObjectConversionException);
			ASSERT_STREQ("false", object->getReadableString().c_str());

			object = createObject(true);
			ASSERT_EQ(Object::BOOLEAN, object->getNativeType());
			ASSERT_FALSE(object->isNil());
			ASSERT_EQ(true, object->getBoolean());
			ASSERT_EQ(1.f, object->getNumber());
			ASSERT_STREQ("true", object->getString().c_str());
			ASSERT_THROW(object->getUserdata(), ObjectConversionException);
			ASSERT_STREQ("true", object->getReadableString().c_str());
		}
Example #2
0
		TEST(ObjectTests, NilObject)
		{
			ObjectPtr object = createObject();
			ASSERT_EQ(Object::NIL, object->getNativeType());
			ASSERT_TRUE(object->isNil());
			ASSERT_EQ(false, object->getBoolean());
			ASSERT_EQ(0.f, object->getNumber());
			ASSERT_TRUE(object->getString().empty());
			ASSERT_EQ(0, object->getUserdata());
			ASSERT_STREQ("nil", object->getReadableString().c_str());
		}
Example #3
0
		TEST(ObjectTests, UserdataObject)
		{
			void* memory = malloc(32);

			ObjectPtr object = createObject(memory);
			ASSERT_EQ(Object::USERDATA, object->getNativeType());
			ASSERT_FALSE(object->isNil());
			ASSERT_TRUE(object->getBoolean());
			ASSERT_THROW(object->getNumber(), ObjectConversionException);
			// TODO: Check getString()
			ASSERT_EQ(memory, object->getUserdata());
			// TODO: Check getReadableString()

			free(memory);
		}
Example #4
0
		TEST(ObjectTests, StringObject)
		{
			String value = "abcdefghijklmnopqrstuvwxyz1234567890";

			RecordProperty("value", value);

			ObjectPtr object = createObject(value);
			ASSERT_EQ(Object::STRING, object->getNativeType());
			ASSERT_FALSE(object->isNil());
			ASSERT_TRUE(object->getBoolean());
			ASSERT_THROW(object->getNumber(), ObjectConversionException);
			ASSERT_EQ(value, object->getString());
			ASSERT_THROW(object->getUserdata(), ObjectConversionException);
			ASSERT_EQ(FORMAT("\"%s\"", value.c_str()), object->getReadableString());
		}
Example #5
0
		TEST(ObjectTests, NumberObject)
		{
			Number low = -1000;
			Number high = 1000;
			Number value = low + static_cast <float> (rand()) / (static_cast <float> (RAND_MAX / (high - low)));
			
			std::stringstream ss;
			ss << value;

			RecordProperty("value", ss.str());

			ObjectPtr object = createObject(value);
			ASSERT_EQ(Object::NUMBER, object->getNativeType());
			ASSERT_FALSE(object->isNil());
			ASSERT_EQ(value == 0 ? false : true, object->getBoolean());
			ASSERT_EQ(value, object->getNumber());
			ASSERT_EQ(FORMAT("%f", value), object->getString());
			ASSERT_THROW(object->getUserdata(), ObjectConversionException);
			ASSERT_EQ(FORMAT("%f", value), object->getReadableString());
		}