24 #include <itkObject.h> 28 CPPUNIT_TEST_SUITE(mitkWeakPointerTestSuite);
31 MITK_TEST(ExpiredWeakPointerWithSmartPointerAssignment_Success);
32 MITK_TEST(ExpiredWeakPointerWithWeakPointerAssignment_Success);
33 MITK_TEST(ExpiredWeakPointerWithSmartPointerConstructor_Success);
34 MITK_TEST(ExpiredWeakPointerWithWeakPointerConstructor_Success);
37 CPPUNIT_TEST_SUITE_END();
42 itk::Object::Pointer m_SmartPointer;
47 m_SmartPointer = itk::Object::New();
48 m_WeakPointer = m_SmartPointer;
49 m_WeakPointer2 = m_WeakPointer;
52 void tearDown()
override 54 m_SmartPointer =
nullptr;
55 m_WeakPointer =
nullptr;
56 m_WeakPointer2 =
nullptr;
59 void EqualPointers_Success()
61 itk::Object::Pointer tmpSmartPointer(m_WeakPointer.
Lock());
62 itk::Object::Pointer tmpSmartPointer2(m_WeakPointer2.
Lock());
63 CPPUNIT_ASSERT_MESSAGE(
"Testing equal pointers", tmpSmartPointer.GetPointer() == tmpSmartPointer2.GetPointer());
66 void ReferenceCountOfPointers_Success()
68 CPPUNIT_ASSERT_MESSAGE(
"Testing reference count", 1 == m_SmartPointer->GetReferenceCount());
71 void ExpiredWeakPointerWithSmartPointerAssignment_Success()
73 m_SmartPointer =
nullptr;
74 CPPUNIT_ASSERT_MESSAGE(
"Testing expired weak pointer (smart pointer assignment)", m_WeakPointer.
IsExpired());
77 void ExpiredWeakPointerWithWeakPointerAssignment_Success()
79 m_SmartPointer =
nullptr;
80 CPPUNIT_ASSERT_MESSAGE(
"Testing expired weak pointer (weak pointer assignment)", m_WeakPointer2.
IsExpired());
83 void ExpiredWeakPointerWithSmartPointerConstructor_Success()
86 m_SmartPointer =
nullptr;
87 CPPUNIT_ASSERT_MESSAGE(
"Testing expired weak pointer (smart pointer constructor)", weakPointer3.IsExpired());
90 void ExpiredWeakPointerWithWeakPointerConstructor_Success()
93 m_WeakPointer = m_SmartPointer;
94 m_SmartPointer =
nullptr;
95 CPPUNIT_ASSERT_MESSAGE(
"Testing expired weak pointer (copy constructor)", weakPointer4.IsExpired());
98 void DeleteEventCall_Success()
100 int deleteEventCallbackCalled = 0;
102 m_WeakPointer = m_SmartPointer;
103 m_SmartPointer =
nullptr;
104 CPPUNIT_ASSERT_MESSAGE(
"Testing call of delete event callback", 1 == deleteEventCallbackCalled);
itk::SmartPointer< T > Lock() const
MITK_TEST_SUITE_REGISTRATION(mitkImageToItk)
#define MITK_TEST(TESTMETHOD)
Adds a test to the current test suite.
bool IsExpired() const noexcept
Test fixture for parameterized tests.
void SetDeleteEventCallback(const DeleteEventCallbackType &callback)