#include "mitkMessage.h"#include "mitkTestingMacros.h"#include <iostream>Go to the source code of this file.
Classes | |
| class | mitk::mitkMessageTestTestClass |
| class | mitk::mitkMessageTestTestClass::Package |
| class | mitk::mitkMessageTestTestClass::MessageSenderClass |
| class | mitk::mitkMessageTestTestClass::MessageReceiverClass |
| class | mitk::mitkMessageTestTestClass::Law |
| class | mitk::mitkMessageTestTestClass::NewtonMachine |
| class | mitk::mitkMessageTestTestClass::Observer |
Namespaces | |
| namespace | mitk |
Qmitk. | |
Functions | |
| int | mitkMessageTest (int, char *[]) |
| int mitkMessageTest | ( | int | , |
| char * | [] | ||
| ) |
Definition at line 332 of file mitkMessageTest.cpp.
References mitk::mitkMessageTestTestClass::MessageReceiverClass::Age(), mitk::mitkMessageTestTestClass::MessageReceiverClass::Amnesia(), mitk::mitkMessageTestTestClass::MessageSenderClass::DoGivePackage(), mitk::mitkMessageTestTestClass::MessageSenderClass::DoSay(), mitk::mitkMessageTestTestClass::MessageSenderClass::DoShoutAgeAndFootSize(), mitk::mitkMessageTestTestClass::MessageSenderClass::DoShowFinger(), mitk::mitkMessageTestTestClass::MessageSenderClass::DoWalk(), mitk::mitkMessageTestTestClass::MessageSenderClass::DoWaveHand(), mitk::mitkMessageTestTestClass::MessageReceiverClass::FootSize(), mitk::mitkMessageTestTestClass::MessageReceiverClass::HandWaved(), mitk::mitkMessageTestTestClass::Observer::m_Error, mitk::mitkMessageTestTestClass::Observer::m_Law, mitk::mitkMessageTestTestClass::Observer::m_MachineStarted, mitk::mitkMessageTestTestClass::Observer::m_MachineStopped, mitk::mitkMessageTestTestClass::MessageReceiverClass::MetersWalked(), MITK_TEST_BEGIN, MITK_TEST_CONDITION, MITK_TEST_CONDITION_REQUIRED, MITK_TEST_END, mitk::mitkMessageTestTestClass::MessageReceiverClass::PackageReceived(), mitk::mitkMessageTestTestClass::MessageReceiverClass::RegisterObservers(), mitk::mitkMessageTestTestClass::NewtonMachine::StartAnalysis(), mitk::mitkMessageTestTestClass::NewtonMachine::StopAnalysis(), and mitk::mitkMessageTestTestClass::MessageReceiverClass::WordsSaid().
{
MITK_TEST_BEGIN("Message")
mitk::mitkMessageTestTestClass::MessageSenderClass sender;
mitk::mitkMessageTestTestClass::MessageReceiverClass receiver;
MITK_TEST_CONDITION_REQUIRED(true, "Testing instantiation");
receiver.RegisterObservers(sender);
MITK_TEST_CONDITION_REQUIRED(true, "Testing registration to messages");
MITK_TEST_CONDITION_REQUIRED(
(sender.DoWaveHand(), // This is called "comma operator". Don't ask, read!
receiver.HandWaved()),
"Message without parameters");
receiver.Amnesia();
MITK_TEST_CONDITION_REQUIRED(
(sender.DoShowFinger(),
receiver.HandWaved()),
"Message without parameters");
receiver.Amnesia();
MITK_TEST_CONDITION_REQUIRED(
(sender.DoSay("Blooodworsch"),
receiver.WordsSaid() == "Blooodworsch"),
"Message with std::string parameter");
receiver.Amnesia();
MITK_TEST_CONDITION_REQUIRED(
(sender.DoWalk(2.67),
(receiver.MetersWalked() - 2.67) < 0.0001 ),
"Message with double parameter");
receiver.Amnesia();
mitk::mitkMessageTestTestClass::Package package(8);
MITK_TEST_CONDITION_REQUIRED(
(sender.DoGivePackage(package),
receiver.PackageReceived() == package),
"Message with class parameter");
receiver.Amnesia();
MITK_TEST_CONDITION_REQUIRED(
(sender.DoShoutAgeAndFootSize(46, 30.5),
(receiver.Age() == 46 && (receiver.FootSize() - 30.5 < 0.0001))),
"Message with int AND float parameter");
receiver.Amnesia();
mitk::mitkMessageTestTestClass::NewtonMachine newtonMachine;
mitk::mitkMessageTestTestClass::Observer observer1(&newtonMachine);
mitk::mitkMessageTestTestClass::Observer observer2(&newtonMachine);
// This will send two events to registered observers
newtonMachine.StartAnalysis();
MITK_TEST_CONDITION(observer1.m_MachineStarted == true, "Message from Message Macro send to receiver 1");
MITK_TEST_CONDITION(observer2.m_MachineStarted == true, "Message from Message Macro send to receiver 2");
MITK_TEST_CONDITION(observer1.m_Law.GetDescription() == std::string("Unit tests are mandatory!"),
"Message1 from Message Macro send to receiver 1");
MITK_TEST_CONDITION(observer2.m_Law.GetDescription() == std::string("Unit tests are mandatory!"),
"Message1 from Message Macro send to receiver 2");
// This will send one event to registered observers
newtonMachine.StopAnalysis();
MITK_TEST_CONDITION(observer1.m_MachineStopped == true, "Message1 from Message Macro send to receiver 1");
MITK_TEST_CONDITION(observer1.m_Error == true, "Message1 parameter from Message Macro send to receiver 1");
MITK_TEST_CONDITION(observer2.m_MachineStopped == true, "Message1 from Message Macro send to receiver 2");
MITK_TEST_CONDITION(observer2.m_Error == true, "Message1 parameter from Message Macro send to receiver 2");
/* Message with return type tests are work in progess... */
//bool patentSuccessful = newtonMachine.PatentLaw(); // what with return types from multiple observers?
//MITK_TEST_CONDITION((observer1.m_PatentReviewed == true) && (patentSuccessful == false),
// "Message with return type from Message Macro send to receiver 1");
//
//MITK_TEST_CONDITION((observer2.m_PatentReviewed == true) && (patentSuccessful == false),
// "Message with return type from Message Macro send to receiver 2");
MITK_TEST_END();
}
1.7.2