diff --git a/Modules/Annotation/test/files.cmake b/Modules/Annotation/test/files.cmake index 8b6efdd163..13204a805f 100644 --- a/Modules/Annotation/test/files.cmake +++ b/Modules/Annotation/test/files.cmake @@ -1,18 +1,19 @@ set(MODULE_TESTS mitkAnnotationTest.cpp + mitkAnnotationFactoryTest.cpp ) if(MITK_ENABLE_RENDERING_TESTING) set(MODULE_TESTS ${MODULE_TESTS} mitkManualPlacementAnnotationRendererTest.cpp mitkColorBarAnnotationTest.cpp mitkLabelAnnotation3DTest.cpp mitkLogoAnnotationTest.cpp mitkLayoutAnnotationRendererTest.cpp mitkScaleLegendAnnotationTest.cpp mitkTextAnnotation2DTest.cpp mitkTextAnnotation3DTest.cpp ) endif() diff --git a/Modules/Annotation/test/mitkAnnotationFactoryTest.cpp b/Modules/Annotation/test/mitkAnnotationFactoryTest.cpp new file mode 100644 index 0000000000..78ed2a05b4 --- /dev/null +++ b/Modules/Annotation/test/mitkAnnotationFactoryTest.cpp @@ -0,0 +1,62 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ + +#include "mitkAnnotationFactory.h" +#include "mitkTestFixture.h" +#include "mitkTestingMacros.h" +#include "mitkTextAnnotation2D.h" + +class mitkAnnotationFactoryTestSuite : public mitk::TestFixture +{ + CPPUNIT_TEST_SUITE(mitkAnnotationFactoryTestSuite); + + MITK_TEST(ReadJsonConfiguration); + MITK_TEST(ReactToPropertyChangedEvent); + + CPPUNIT_TEST_SUITE_END(); + + std::string m_AnnotationTestDataDir = R"(D:\Arbeit\Programming\mitk_m\Plugins\org.mitk.annotations\resources)"; + std::string m_ValidJsonFile = "annotations.json"; + mitk::AnnotationFactory::Pointer m_Factory; + +public: + void setUp() override + { + m_Factory = mitk::AnnotationFactory::New(); + }; + void tearDown() override{}; + + void ReadJsonConfiguration() + { + m_Factory->CreateAnnotationsFromJson(m_AnnotationTestDataDir + m_ValidJsonFile); + const auto amountOfRegisteredAnnotations = m_Factory->GetManagedAnnotationIds().size(); + const auto amountOfPendingAnnotations = m_Factory->GetAmountOfPendingAnnotations(); + CPPUNIT_ASSERT_EQUAL_MESSAGE("The amount of created annotations seems incorrect", + static_cast(22), + amountOfRegisteredAnnotations + amountOfPendingAnnotations); + }; + + void ReactToPropertyChangedEvent() + { + auto dynamicAnnotation = mitk::AnnotationFactory::DynamicAnnotation{}; + dynamicAnnotation.ptr = mitk::TextAnnotation2D::New(); + m_Factory->AddSingleAnnotation(dynamicAnnotation); + }; + + void ReactToSliceNumberChangedEvent(); +}; + +MITK_TEST_SUITE_REGISTRATION(mitkAnnotationFactory) \ No newline at end of file