-
Campbell, Stuart authoredCampbell, Stuart authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
FunctionParserTest.h 2.51 KiB
#ifndef TEST_IMPLICIT_FUNCTION_PARSERS_H_
#define TEST_IMPLICIT_FUNCTION_PARSERS_H_
// Abstract testing base class for function parsers.
#include <boost/scoped_ptr.hpp>
#include "MantidMDAlgorithms/MDParameterParserDeclarations.h"
#include "MantidMDAlgorithms/Vector3DParameterParser.h"
#include "MantidMDAlgorithms/InvalidParameterParser.h"
#include "MantidMDAlgorithms/PlaneFunctionBuilder.h"
#include "MantidAPI/ImplicitFunctionParser.h"
#include "MantidAPI/ImplicitFunctionParameterParser.h"
#include <cxxtest/TestSuite.h>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
class FunctionParserTest {
protected:
// Mock function parser class.
class MockFunctionParser : public Mantid::API::ImplicitFunctionParser {
public:
MockFunctionParser(
Mantid::API::ImplicitFunctionParameterParser *paramParser)
: Mantid::API::ImplicitFunctionParser(paramParser) {
;
}
MOCK_METHOD1(createFunctionBuilder,
Mantid::API::ImplicitFunctionBuilder *(
Poco::XML::Element *functionElement));
MOCK_METHOD1(setSuccessorParser,
void(Mantid::API::ImplicitFunctionParser *parameterElement));
MOCK_METHOD1(
setParameterParser,
void(Mantid::API::ImplicitFunctionParameterParser *parameterElement));
};
// Mock parameter parser class.
class MockParameterParser
: public Mantid::API::ImplicitFunctionParameterParser {
public:
MOCK_METHOD1(createParameter, Mantid::API::ImplicitFunctionParameter *(
Poco::XML::Element *parameterElement));
MOCK_METHOD1(
setSuccessorParser,
void(Mantid::API::ImplicitFunctionParameterParser *parameterParser));
};
// helper method to construct real parameter parser chain.
Mantid::API::ImplicitFunctionParameterParser *constructRootParameterParser() {
using namespace Mantid::MDAlgorithms;
using namespace Mantid::API;
ImplicitFunctionParameterParser *originParser = new OriginParameterParser;
ImplicitFunctionParameterParser *upParser = new UpParameterParser;
ImplicitFunctionParameterParser *normalParser = new NormalParameterParser;
ImplicitFunctionParameterParser *invalidParser = new InvalidParameterParser;
ImplicitFunctionParameterParser *widthParser = new WidthParameterParser;
widthParser->setSuccessorParser(invalidParser);
upParser->setSuccessorParser(widthParser);
originParser->setSuccessorParser(upParser);
normalParser->setSuccessorParser(originParser);
return normalParser;
}
};
#endif