+
+int UtcDaliRefObjectCopyConstructor(void)
+{
+ tet_infoline("Test for Dali::RefObject(const RefObject&)");
+
+ {
+ IntrusivePtr<TestObject> testPtr( new TestObject );
+ DALI_TEST_EQUALS( testPtr->ReferenceCount(), 1, TEST_LOCATION );
+
+ const TestObject& testObject=*testPtr.Get();
+ {
+ IntrusivePtr<TestObject> testPtr2( new TestObject(testObject) );
+ DALI_TEST_EQUALS( testPtr2->ReferenceCount(), 1, TEST_LOCATION );
+ }
+ DALI_TEST_EQUALS( testPtr->ReferenceCount(), 1, TEST_LOCATION );
+ }
+ END_TEST;
+}
+
+
+int UtcDaliRefObjectAssignmentOperator(void)
+{
+ tet_infoline("Test for Dali::RefObject::operator=(const RefObject&)");
+
+ {
+ IntrusivePtr<TestObject> testPtr( new TestObject );
+ DALI_TEST_EQUALS( testPtr->ReferenceCount(), 1, TEST_LOCATION );
+
+ const TestObject& testObject=*testPtr.Get();
+ {
+ IntrusivePtr<TestObject> testPtr2( new TestObject() );
+ testPtr->data = 33;
+ IntrusivePtr<TestObject> testPtr3 = testPtr2;
+ DALI_TEST_EQUALS( testPtr2->ReferenceCount(), 2, TEST_LOCATION );
+ DALI_TEST_EQUALS( testPtr2->data, 201, TEST_LOCATION );
+
+ TestObject& testObject2 = *testPtr2.Get();
+ testObject2 = testObject;
+
+ DALI_TEST_EQUALS( testPtr->ReferenceCount(), 1, TEST_LOCATION );
+ DALI_TEST_EQUALS( testPtr2->ReferenceCount(), 2, TEST_LOCATION );
+ }
+ DALI_TEST_EQUALS( testPtr->ReferenceCount(), 1, TEST_LOCATION );
+ }
+ END_TEST;
+}