18#include "mitkCommon.h"
19#include "mitkTestingMacros.h"
21#include "mitkBaseData.h"
22#include "mitkDataNode.h"
23#include "mitkSurface.h"
24#include "mitkStandaloneDataStorage.h"
25#include "mitkDataStorage.h"
27#include "mitkIGTConfig.h"
28#include <mitkIOUtil.h>
38static void TestInstantiation()
41 mitk::NavigationToolWriter::Pointer myWriter = mitk::NavigationToolWriter::New();
42 MITK_TEST_CONDITION_REQUIRED(myWriter.IsNotNull(),
"Testing instantiation")
45static void TestWrite()
50 std::string toolFileName(MITK_IGT_DATA_DIR);
51 toolFileName.append(
"/ClaronTool");
52 mitk::NavigationTool::Pointer myNavigationTool = mitk::NavigationTool::New();
53 myNavigationTool->SetCalibrationFile(toolFileName);
55 mitk::DataNode::Pointer myNode = mitk::DataNode::New();
56 myNode->SetName(
"ClaronTool");
58 std::string surfaceFileName(MITK_IGT_DATA_DIR);
59 surfaceFileName.append(
"/ClaronTool.stl");
60 m_testSurface = mitk::IOUtil::Load<mitk::Surface>( surfaceFileName );
63 myNavigationTool->SetDataNode(myNode);
64 myNavigationTool->SetIdentifier(
"ClaronTool#1");
65 myNavigationTool->SetSerialNumber(
"0815");
70 mitk::NavigationToolWriter::Pointer myWriter = mitk::NavigationToolWriter::New();
71 std::string filename = mitk::IOUtil::GetTempPath() +
"TestTool.tool";
73 MITK_TEST_OUTPUT(<<
"---- Testing navigation tool writer with first test tool (claron tool) ----");
74 bool test = myWriter->DoWrite(filename,myNavigationTool);
75 MITK_TEST_CONDITION_REQUIRED(test,
"OK");
80 mitk::NavigationToolReader::Pointer myReader = mitk::NavigationToolReader::New();
81 std::string filename = mitk::IOUtil::GetTempPath() +
"TestTool.tool";
82 mitk::NavigationTool::Pointer readTool = myReader->DoRead(filename);
83 MITK_TEST_OUTPUT(<<
"---- Testing navigation tool reader with first test tool (claron tool) ----");
86 MITK_TEST_CONDITION_REQUIRED(
dynamic_cast<mitk::Surface*
>(readTool->GetDataNode()->GetData())->GetSizeOfPolyDataSeries()==
m_testSurface->GetSizeOfPolyDataSeries(),
"Test if surface was restored correctly ...");
92 MITK_TEST_CONDITION_REQUIRED(readTool->GetSerialNumber()==
"0815",
"Testing Serial Number");
94 std::ifstream TestFile(readTool->GetCalibrationFile().c_str());
95 MITK_TEST_CONDITION_REQUIRED(TestFile,
"Testing If Calibration File Exists");
99static void TestWrite2()
103 mitk::NavigationTool::Pointer myNavigationTool = mitk::NavigationTool::New();
105 mitk::DataNode::Pointer myNode = mitk::DataNode::New();
106 myNode->SetName(
"AuroraTool");
108 std::string surfaceFileName(MITK_IGT_DATA_DIR);
109 surfaceFileName.append(
"/EMTool.stl");
110 m_testSurface = mitk::IOUtil::Load<mitk::Surface>( surfaceFileName );
113 myNavigationTool->SetDataNode(myNode);
114 myNavigationTool->SetIdentifier(
"AuroraTool#1");
115 myNavigationTool->SetSerialNumber(
"0816");
120 mitk::NavigationToolWriter::Pointer myWriter = mitk::NavigationToolWriter::New();
121 std::string filename = mitk::IOUtil::GetTempPath() +
"TestTool2.tool";
123 MITK_TEST_OUTPUT(<<
"---- Testing navigation tool writer with second tool (aurora tool) ----");
124 bool test = myWriter->DoWrite(filename,myNavigationTool);
125 MITK_TEST_CONDITION_REQUIRED(test,
"OK");
128static void TestRead2()
130 mitk::NavigationToolReader::Pointer myReader = mitk::NavigationToolReader::New();
131 std::string filename = mitk::IOUtil::GetTempPath() +
"TestTool2.tool";
132 mitk::NavigationTool::Pointer readTool = myReader->DoRead(filename);
133 MITK_TEST_OUTPUT(<<
"---- Testing navigation tool reader with second tool (aurora tool) ----");
136 MITK_TEST_CONDITION_REQUIRED(
dynamic_cast<mitk::Surface*
>(readTool->GetDataNode()->GetData())->GetSizeOfPolyDataSeries()==
m_testSurface->GetSizeOfPolyDataSeries(),
"Test if surface was restored correctly ...");
143 MITK_TEST_CONDITION_REQUIRED(readTool->GetSerialNumber()==
"0816",
"Testing Serial Number");
145 MITK_TEST_CONDITION_REQUIRED(readTool->GetCalibrationFile()==
"none",
"Testing Calibration File");
151 std::string tempFile1 = mitk::IOUtil::GetTempPath() +
"TestTool.tool";
152 std::remove(tempFile1.c_str());
153 std::string tempFile2 = mitk::IOUtil::GetTempPath() +
"TestTool2.tool";
154 std::remove(tempFile2.c_str());
157static void TestReadInvalidData()
159 mitk::NavigationToolReader::Pointer myReader = mitk::NavigationToolReader::New();
160 mitk::NavigationTool::Pointer readTool = myReader->DoRead(
"invalidTool");
162 MITK_TEST_CONDITION_REQUIRED(readTool.IsNull(),
"Testing return value if filename is invalid");
163 MITK_TEST_CONDITION_REQUIRED(myReader->GetErrorMessage() ==
"Cannot open 'invalidTool' for reading",
"Testing error message in this case");
166static void TestWriteInvalidFilename()
169 mitk::NavigationTool::Pointer myNavigationTool = mitk::NavigationTool::New();
170 mitk::DataNode::Pointer myNode = mitk::DataNode::New();
171 myNode->SetName(
"AuroraTool");
172 std::string surfaceFileName(MITK_IGT_DATA_DIR);
173 surfaceFileName.append(
"/EMTool.stl");
174 m_testSurface = mitk::IOUtil::Load<mitk::Surface>( surfaceFileName );
176 myNavigationTool->SetDataNode(myNode);
177 myNavigationTool->SetIdentifier(
"AuroraTool#1");
178 myNavigationTool->SetSerialNumber(
"0816");
183 mitk::NavigationToolWriter::Pointer myWriter = mitk::NavigationToolWriter::New();
184 std::string filename =
"NH:/sfdsfsdsf.&%%%";
186 MITK_TEST_OUTPUT(<<
"---- Testing write invalid file ----");
187 bool test = myWriter->DoWrite(filename,myNavigationTool);
188 MITK_TEST_CONDITION_REQUIRED(!test,
"testing write");
189 MITK_TEST_CONDITION_REQUIRED(myWriter->GetErrorMessage() ==
"Could not open a zip file for writing: 'NH:/sfdsfsdsf.&%%%'",
"testing error message");
192static void TestWriteInvalidData()
194 mitk::NavigationTool::Pointer myNavigationTool;
198 mitk::NavigationToolWriter::Pointer myWriter = mitk::NavigationToolWriter::New();
199 std::string filename =
"NH:/sfdsfsdsf.&%%%";
201 MITK_TEST_OUTPUT(<<
"---- Testing write invalid tool ----");
202 bool test = myWriter->DoWrite(filename,myNavigationTool);
203 MITK_TEST_CONDITION_REQUIRED(!test,
"testing write");
204 MITK_TEST_CONDITION_REQUIRED(myWriter->GetErrorMessage() ==
"Cannot write a navigation tool containing invalid tool data, aborting!",
"testing error message");
212 MITK_TEST_BEGIN(
"NavigationToolWriter")
219 TestReadInvalidData();
220 TestWriteInvalidData();
221 TestWriteInvalidFilename();