Sha256: 213891e4029e88cc08d62f9f842e59151a8089aec46599c895028e1c564eeda8

Contents?: true

Size: 1.56 KB

Versions: 21

Compression:

Stored size: 1.56 KB

Contents

#include "unittest.hpp"
#include "rice/Builtin_Object.hpp"
#include "rice/Class.hpp"

using namespace Rice;

TESTSUITE(Builtin_Object);

SETUP(Builtin_Object)
{
  ruby_init();
}

TESTCASE(construct_with_object)
{
  Class c(rb_cObject);
  Object o(c.call("new"));
  Builtin_Object<RObject, T_OBJECT> b(o);
  ASSERT_EQUAL(o.value(), b.value());
  ASSERT_EQUAL(T_OBJECT, rb_type(b.value()));
  ASSERT_EQUAL(rb_cObject, b.class_of().value());
  ASSERT_EQUAL(rb_cObject, CLASS_OF(b.value()));
}

TESTCASE(copy_construct)
{
  Class c(rb_cObject);
  Object o(c.call("new"));
  Builtin_Object<RObject, T_OBJECT> b(o);
  Builtin_Object<RObject, T_OBJECT> b2(b);
  ASSERT_EQUAL(o.value(), b2.value());
  ASSERT_EQUAL(T_OBJECT, rb_type(b2.value()));
  ASSERT_EQUAL(rb_cObject, b2.class_of().value());
  ASSERT_EQUAL(rb_cObject, CLASS_OF(b2.value()));
}

TESTCASE(dereference)
{
  Class c(rb_cObject);
  Object o(c.call("new"));
  Builtin_Object<RObject, T_OBJECT> b(o);
  ASSERT_EQUAL(ROBJECT(o.value()), &*b);
}

TESTCASE(arrow)
{
  Class c(rb_cObject);
  Object o(c.call("new"));
  Builtin_Object<RObject, T_OBJECT> b(o);
  ASSERT_EQUAL(rb_cObject, b->basic.klass);
}

TESTCASE(get)
{
  Class c(rb_cObject);
  Object o(c.call("new"));
  Builtin_Object<RObject, T_OBJECT> b(o);
  ASSERT_EQUAL(ROBJECT(o.value()), b.get());
}

TESTCASE(swap)
{
  Class c(rb_cObject);
  Object o1(c.call("new"));
  Builtin_Object<RObject, T_OBJECT> b1(o1);
  Object o2(c.call("new"));
  Builtin_Object<RObject, T_OBJECT> b2(o2);
  b1.swap(b2);
  ASSERT_EQUAL(b1.value(), o2.value());
  ASSERT_EQUAL(b2.value(), o1.value());
}

Version data entries

21 entries across 21 versions & 5 rubygems

Version Path
rice-1.1.0 test/test_Builtin_Object.cpp