MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitkToFCameraMITKPlayerDeviceFactoryTest.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#include <mitkTestingMacros.h>
14#include <mitkTestFixture.h>
17
18//MicroServices
19#include <usModuleContext.h>
20#include <usGetModuleContext.h>
21#include <usServiceReference.h>
22
23class mitkToFCameraMITKPlayerDeviceFactoryTestSuite : public mitk::TestFixture
24{
25
31 CPPUNIT_TEST_SUITE_END();
32
33private:
34
35 mitk::ToFCameraMITKPlayerDeviceFactory* m_DummyPlayerDeviceFactory;
36
37public:
38
39 void setUp() override
40 {
41 us::ModuleContext* context = us::GetModuleContext();
42 //get the service which is generated in the mitkToFHardwareModuleActivator
43 //filter for the player factory, because other factories could be registered
44 std::string filter = "(ToFFactoryName=MITK Player Factory)";
45 us::ServiceReference<mitk::IToFDeviceFactory> serviceRef = context->GetServiceReferences<mitk::IToFDeviceFactory>(filter).front();
46 m_DummyPlayerDeviceFactory = dynamic_cast<mitk::ToFCameraMITKPlayerDeviceFactory*>( context->GetService<mitk::IToFDeviceFactory>(serviceRef) );
47 }
48
50 {
51 mitk::ToFCameraDevice::Pointer playerDevice = m_DummyPlayerDeviceFactory->ConnectToFDevice();
52 CPPUNIT_ASSERT_MESSAGE("Check that a device was generated.", playerDevice.IsNotNull());
53 CPPUNIT_ASSERT_MESSAGE("Check that the device name is for a player.", m_DummyPlayerDeviceFactory->GetCurrentDeviceName().find("MITK Player") == 0);
54 m_DummyPlayerDeviceFactory->DisconnectToFDevice( playerDevice );
55 //only the default device should be left
56 CPPUNIT_ASSERT( m_DummyPlayerDeviceFactory->GetNumberOfDevices() == 1 );
57 }
58
60 {
61 //connect two devices, because there is already one default device connected.
62 mitk::ToFCameraDevice::Pointer device2 = m_DummyPlayerDeviceFactory->ConnectToFDevice();
63 mitk::ToFCameraDevice::Pointer device3 = m_DummyPlayerDeviceFactory->ConnectToFDevice();
64 //two newly connected + one default = 3
65 CPPUNIT_ASSERT( m_DummyPlayerDeviceFactory->GetNumberOfDevices() == 3 );
66
67 m_DummyPlayerDeviceFactory->DisconnectToFDevice( device2 );
68 m_DummyPlayerDeviceFactory->DisconnectToFDevice( device3 );
69 //only the default device should be left
70 CPPUNIT_ASSERT( m_DummyPlayerDeviceFactory->GetNumberOfDevices() == 1 );
71 }
72
74 {
75 CPPUNIT_ASSERT( m_DummyPlayerDeviceFactory->GetCurrentDeviceName() == "MITK Player" );
76 }
77
79 {
80 //connect two devices, because there is already one default device connected.
81 mitk::ToFCameraDevice::Pointer device2 = m_DummyPlayerDeviceFactory->ConnectToFDevice();
82 mitk::ToFCameraDevice::Pointer device3 = m_DummyPlayerDeviceFactory->ConnectToFDevice();
83 //two newly connected + one default = 3
84 CPPUNIT_ASSERT( m_DummyPlayerDeviceFactory->GetCurrentDeviceName() == "MITK Player 3" );
85
86 m_DummyPlayerDeviceFactory->DisconnectToFDevice( device2 );
87 m_DummyPlayerDeviceFactory->DisconnectToFDevice( device3 );
88 CPPUNIT_ASSERT( m_DummyPlayerDeviceFactory->GetCurrentDeviceName() == "MITK Player" );
89 }
90};
91
92MITK_TEST_SUITE_REGISTRATION(mitkToFCameraMITKPlayerDeviceFactory)
ToFPlayerDeviceFactory is an implementation of the factory pattern to generate ToFPlayer devices....
ToFCameraDevice::Pointer ConnectToFDevice()
ConnectToFDevice Use this method to connect a device.
std::string GetCurrentDeviceName() override
GetCurrentDeviceName Get the human readable name of the current device. A factory can produce many de...
void DisconnectToFDevice(const ToFCameraDevice::Pointer &device)
DisconnectToFDevice Use this method to disconnect a device.
size_t GetNumberOfDevices()
GetNumberOfDevices Get the number of devices produced by this factory. This function will return the ...
This is the base of class for all ToFDeviceFactories.