Merge branch 'devel/master' into tizen
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Any.cpp
index f9a4348..843bc8a 100644 (file)
@@ -117,11 +117,9 @@ int UtcDaliAnyAssignmentOperators(void)
 
   DALI_TEST_EQUALS( fValue, 4.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
 
-  Any value2 = 0.f;
+  value1 = 9.f; // Test operator=( const Type& ).
 
-  value2 = 9.f; // Test operator=( const Type& ).
-
-  value2.Get( fValue );
+  value1.Get( fValue );
 
   DALI_TEST_EQUALS( fValue, 9.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
 
@@ -160,6 +158,13 @@ int UtcDaliAnyAssignmentOperators(void)
 
   value6.Get( fValue );
   DALI_TEST_EQUALS( fValue, 3.f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
+
+  // test assignment for  non-empty Any = empty Any
+  Any value7;
+  value6 = value7;
+  DALI_TEST_CHECK( value6.Empty() );
+
+
   END_TEST;
 }
 
@@ -261,6 +266,18 @@ int UtcDaliAnyGet(void)
   MyStruct* myStruct3 = myClass.GetPointer();
   const MyStruct* myStruct4 = myClass.GetPointer();
 
+  if( myStruct3 == NULL )
+  {
+    tet_result( TET_FAIL );
+    END_TEST;
+  }
+
+  if( myStruct4 == NULL )
+  {
+    tet_result( TET_FAIL );
+    END_TEST;
+  }
+
   DALI_TEST_EQUALS( myStruct1.mFloatValue, 3.25f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
   DALI_TEST_EQUALS( myStruct2.mFloatValue, 3.25f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
   DALI_TEST_EQUALS( myStruct3->mFloatValue, 3.25f, Math::MACHINE_EPSILON_1000, TEST_LOCATION );
@@ -270,6 +287,23 @@ int UtcDaliAnyGet(void)
   DALI_TEST_EQUALS( myStruct3->mIntValue, 3, TEST_LOCATION );
   DALI_TEST_EQUALS( myStruct4->mIntValue, 3, TEST_LOCATION );
 
+  // Test on empty any object
+  Dali::Any myAny;
+  float* f = myAny.GetPointer<float>();
+  DALI_TEST_CHECK( f == NULL );
+
+  // Test on getting wrong type
+  myAny = 1.f;
+  try
+  {
+    myAny.GetPointer<int>();
+    tet_result( TET_FAIL );
+  }
+  catch( Dali::DaliException& e )
+  {
+    DALI_TEST_PRINT_ASSERT( e );
+  }
+
   END_TEST;
 }