JD2022-TU1/main/extern/UbiServices/custom/tests/fixture/paramFixture.h

56 lines
No EOL
1.4 KiB
C++

////////////////////////////////////////////////////////////////////////////////
// (c) Copyright, Ubisoft Entertainment Inc. || Created by Harbour //
////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "memoryCheckFixture.h"
#include "authenticationFixture.h"
#include "loginMockFixture.h"
#include <ubiservices/core/configs/config.h>
#include <gtest/gtest.h>
namespace US_NS {;
template <class Base, class Param>
class ParamFixture
: public Base
, public ::testing::WithParamInterface<Param>
{
protected:
inline virtual void SetUp();
Param& getParam();
const Param& getParam() const;
private:
using ::testing::WithParamInterface<Param>::GetParam;
Param m_param;
};
template <class Param>
struct LeakCheckerWithParam
{
typedef ParamFixture<LeakChecker, Param> type;
};
template <class Param>
struct LeakCheckerNoInitWithParam
{
typedef ParamFixture<LeakCheckerNoInitSkipLibCurlEalMem, Param> type;
};
template <class Param, uint32 facadesCount = 1, bool executeLogin = true>
struct AuthenticationFixtureWithParam
{
typedef ParamFixture<AuthenticationFixture<facadesCount, executeLogin>, Param> type;
};
template <class Param, bool executeLogin = true>
struct LoginMockFixtureWithParam
{
typedef ParamFixture<LoginMockFixture<executeLogin>, Param> type;
};
};
#include "paramFixture.inl"