MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitkNavigationToolStorageSerializerTest.cpp
Go to the documentation of this file.
1/*============================================================================
2
3The Medical Imaging Interaction Toolkit (MITK)
4
5Copyright (c) German Cancer Research Center (DKFZ)
6All rights reserved.
7
8Use of this source code is governed by a 3-clause BSD license that can be
9found in the LICENSE file.
10
11============================================================================*/
12
13//testing headers
14#include <mitkTestingMacros.h>
15#include <mitkTestFixture.h>
16#include <mitkIOUtil.h>
17#include <mitkIGTException.h>
19
20//headers of IGT classes releated to the tested class
22
23#include <Poco/Path.h>
24
25class mitkNavigationToolStorageSerializerTestSuite : public mitk::TestFixture
26{
34 CPPUNIT_TEST_SUITE_END();
35
36private:
38 std::string m_FileName1;
39 mitk::NavigationToolStorageSerializer::Pointer m_Serializer;
40
41public:
42
44 void setUp() override
45 {
46 try {
47 m_FileName1 = mitk::IOUtil::CreateTemporaryFile("NavigationToolStorageSerializerTestTmp_XXXXXX.IGTToolStorage",mitk::IOUtil::GetProgramPath());
48 std::ofstream file;
49 file.open(m_FileName1.c_str());
50 if (!file.good()) {MITK_ERROR <<"Could not create a valid file during setUp() method.";}
51 file.close();
52 }
53 catch (std::exception& e) {
54 MITK_ERROR << "File access Exception: " << e.what();
55 MITK_ERROR <<"Could not create filename during setUp() method.";
56 }
57 m_Serializer = mitk::NavigationToolStorageSerializer::New();
58 }
59
60 void tearDown() override
61 {
62 m_Serializer = nullptr;
63 try
64 {
65 std::remove(m_FileName1.c_str());
66 }
67 catch(...)
68 {
69 MITK_ERROR << "Warning: Error occured while deleting test file!";
70 }
71 }
72
74 {
75 // let's create objects of our classes
76 mitk::NavigationToolStorageSerializer::Pointer testSerializer = mitk::NavigationToolStorageSerializer::New();
77 CPPUNIT_ASSERT_MESSAGE("Testing instantiation of NavigationToolStorageSerializer",testSerializer.IsNotNull());
78 }
79
81 {
82 //create Tool Storage
83 mitk::NavigationToolStorage::Pointer myStorage = mitk::NavigationToolStorageTestHelper::CreateTestData_SimpleStorage();
84
85 //test serialization
86 CPPUNIT_ASSERT_NO_THROW_MESSAGE("Testing serialization of simple tool storage", m_Serializer->Serialize(m_FileName1, myStorage));
87 }
88
90 {
91 //create navigation tool storage
92 mitk::NavigationToolStorage::Pointer myStorage = mitk::NavigationToolStorageTestHelper::CreateTestData_ComplexStorage(GetTestDataFilePath("ClaronTool"),GetTestDataFilePath("IGT-Data/ClaronTool.stl"),GetTestDataFilePath("IGT-Data/EMTool.stl"));
93
94 //test serialization
95 CPPUNIT_ASSERT_NO_THROW_MESSAGE("Testing serialization of complex tool storage", m_Serializer->Serialize(m_FileName1, myStorage));
96 }
97
99 {
100 //create Tool Storage
101 mitk::NavigationToolStorage::Pointer myStorage = mitk::NavigationToolStorageTestHelper::CreateTestData_SimpleStorage();
102
103 //create invalid filename
104 #ifdef WIN32
105 std::string filename = "C:\342INVALIDFILE<>.storage"; //invalid filename for windows
106 #else
107 std::string filename = "/dsfdsf:$�$342INVALIDFILE.storage"; //invalid filename for linux
108 #endif
109
110 //test serialization (should throw exception)
111 CPPUNIT_ASSERT_THROW_MESSAGE("Test serialization with simple storage and invalid filename, an exception is expected.",m_Serializer->Serialize(filename,myStorage),mitk::IGTException);
112 }
113
115 {
116 //create Tool Storage
117 mitk::NavigationToolStorage::Pointer myStorage = mitk::NavigationToolStorage::New();
118
119 //test serialization
120 CPPUNIT_ASSERT_NO_THROW_MESSAGE("Testing serialization of simple tool storage", m_Serializer->Serialize(m_FileName1, myStorage));
121 }
122
124 {
125 mitk::NavigationToolStorage::Pointer myStorage = mitk::NavigationToolStorage::New();
126
127 //create an invalid filename
128 std::string filename = std::string( MITK_TEST_OUTPUT_DIR )+Poco::Path::separator()+"";
129
130 //now try to serialize an check if an exception is thrown
131 CPPUNIT_ASSERT_THROW_MESSAGE("Test serialization with empty storage and invalid filename, an exception is expected.",m_Serializer->Serialize(filename,myStorage),mitk::IGTException);
132 }
133};
134MITK_TEST_SUITE_REGISTRATION(mitkNavigationToolStorageSerializer)
void setUp() override
Setup Always call this method before each Test-case to ensure correct and new intialization of the us...
An object of this class represents an exception of the MITK-IGT module.
MITKIGT_EXPORT mitk::NavigationToolStorage::Pointer CreateTestData_ComplexStorage(std::string toolFilePath, std::string toolSurfacePath1, std::string toolSurfacePath2)
MITKIGT_EXPORT mitk::NavigationToolStorage::Pointer CreateTestData_SimpleStorage()