Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "mitkNavigationToolStorage.h"
00019 #include "mitkNavigationTool.h"
00020 #include "mitkCommon.h"
00021 #include "mitkTestingMacros.h"
00022
00023 class mitkNavigationToolStorageTestClass
00024 {
00025 public:
00026
00027 static void TestInstantiation()
00028 {
00029
00030 mitk::NavigationToolStorage::Pointer myStorage = mitk::NavigationToolStorage::New();
00031 MITK_TEST_CONDITION_REQUIRED(myStorage.IsNotNull(),"Testing instantiation")
00032 }
00033
00034 static void TestAddAndDelete()
00035 {
00036 mitk::NavigationToolStorage::Pointer myStorage = mitk::NavigationToolStorage::New();
00037
00038
00039 mitk::NavigationTool::Pointer myTool1 = mitk::NavigationTool::New();
00040 myTool1->SetIdentifier("001");
00041 MITK_TEST_CONDITION_REQUIRED(myStorage->AddTool(myTool1),"Testing: Add 1st tool.");
00042 MITK_TEST_CONDITION_REQUIRED(myStorage->GetToolCount()==1,"Testing: Is first tool in storage?");
00043
00044
00045 mitk::NavigationTool::Pointer myTool2 = mitk::NavigationTool::New();
00046 myTool2->SetIdentifier("002");
00047 MITK_TEST_CONDITION_REQUIRED(myStorage->AddTool(myTool2),"Testing: Add 2nd tool.");
00048 MITK_TEST_CONDITION_REQUIRED(myStorage->GetToolCount()==2,"Testing: Is second tool in storage?");
00049
00050
00051 mitk::NavigationTool::Pointer myTool3 = mitk::NavigationTool::New();
00052 myTool3->SetIdentifier("002");
00053 MITK_TEST_CONDITION_REQUIRED(!myStorage->AddTool(myTool3),"Testing: Add 3rd tool, which is not valid.");
00054 MITK_TEST_CONDITION_REQUIRED(myStorage->GetToolCount()==2,"Testing: 3rd tool should NOT be in the storage!");
00055
00056
00057 myStorage->DeleteTool(1);
00058 MITK_TEST_CONDITION_REQUIRED(myStorage->GetToolCount()==1,"Testing: Delete 2nd tool.");
00059
00060
00061 myStorage->DeleteTool(0);
00062 MITK_TEST_CONDITION_REQUIRED(myStorage->GetToolCount()==0,"Testing: Delete 1st tool.");
00063
00064
00065 MITK_TEST_CONDITION_REQUIRED(!myStorage->DeleteTool(412),"Testing: Delete non-existing tool. No error should occur!");
00066 }
00067
00068 static void TestAddAndDelete100Tools()
00069 {
00070 mitk::NavigationToolStorage::Pointer myStorage = mitk::NavigationToolStorage::New();
00071 for(int i=0; i<100; i++)
00072 {
00073 mitk::NavigationTool::Pointer myTool = mitk::NavigationTool::New();
00074 std::stringstream str;
00075 str << i;
00076 myTool->SetIdentifier(str.str());
00077 myStorage->AddTool(myTool);
00078 }
00079 MITK_TEST_CONDITION_REQUIRED(myStorage->GetToolCount()==100,"Testing: Adding 100 tools.");
00080 for(int i=99; i>-1; i--)
00081 {
00082 myStorage->DeleteTool(i);
00083 }
00084 MITK_TEST_CONDITION_REQUIRED(myStorage->GetToolCount()==0,"Testing: Delete 100 tools.");
00085 }
00086
00087 static void TestGetTool()
00088 {
00089
00090 mitk::NavigationToolStorage::Pointer myStorage = mitk::NavigationToolStorage::New();
00091
00092
00093
00094 mitk::NavigationTool::Pointer myTool1 = mitk::NavigationTool::New();
00095 myTool1->SetSerialNumber("0815");
00096 myTool1->SetIdentifier("001");
00097 myStorage->AddTool(myTool1);
00098
00099
00100 mitk::NavigationTool::Pointer myTool2 = mitk::NavigationTool::New();
00101 myTool2->SetSerialNumber("0816");
00102 myTool2->SetIdentifier("002");
00103 myStorage->AddTool(myTool2);
00104
00105
00106 mitk::NavigationTool::Pointer myToolGet = myStorage->GetTool(0);
00107 MITK_TEST_CONDITION_REQUIRED(myToolGet==myTool1,"Testing GetTool() by number.");
00108 myToolGet = myStorage->GetTool("001");
00109 MITK_TEST_CONDITION_REQUIRED(myToolGet==myTool1,"Testing GetTool() by identifier.");
00110 }
00111 };
00112
00114 int mitkNavigationToolStorageTest(int , char* [])
00115 {
00116 MITK_TEST_BEGIN("NavigationToolStorage")
00117
00118 mitkNavigationToolStorageTestClass::TestInstantiation();
00119 mitkNavigationToolStorageTestClass::TestAddAndDelete();
00120 mitkNavigationToolStorageTestClass::TestAddAndDelete100Tools();
00121 mitkNavigationToolStorageTestClass::TestGetTool();
00122
00123 MITK_TEST_END()
00124 }
00125
00126