130 lines
No EOL
4.7 KiB
C++
130 lines
No EOL
4.7 KiB
C++
#include "precompiled_unittests_gameplay.h"
|
|
#include "DataProvider_Testable.h"
|
|
#include "DataProviderClient_Empty.h"
|
|
#include "../../../core/AdaptersInterfaces/System_Adapter_Empty.h"
|
|
#include "../tests/gtest.h"
|
|
|
|
namespace ITF
|
|
{
|
|
// gtest & gmock use namespace testing
|
|
using namespace testing;
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
TEST(DataProvider, test_addDataDescriptorWithRefreshDurationShouldCallRefreshDataDescriptor)
|
|
///////////////////////////////////////////////////////////////////////
|
|
{
|
|
// Setup
|
|
CREATE_CLASS_SINGLETON(SystemAdapter_Empty); // needed for data provider remove client
|
|
|
|
// Arrange
|
|
f32 dt = 0.1f;
|
|
u32 nbUpdate = 3;
|
|
DataProvider_Testable dataProvider;
|
|
DataProviderClient_Empty client;
|
|
dataProvider.addDataDescriptor(client.getTestData(), dt * (f32)nbUpdate);
|
|
|
|
// Act - assert
|
|
EXPECT_BTRUE(dataProvider.addClient(&client));
|
|
|
|
dataProvider.update(dt);
|
|
EXPECT_NOT_NULL(dataProvider.m_refreshDataDescForTest); // a refresh is done for the first time
|
|
|
|
dataProvider.m_refreshDataDescForTest = NULL;
|
|
dataProvider.update(dt);
|
|
EXPECT_NULL(dataProvider.m_refreshDataDescForTest); // On this update RefreshDataDescriptor should not be called because we don't have enough dt
|
|
|
|
for(u32 u = 0 ; u < nbUpdate ; ++u)
|
|
{
|
|
dataProvider.update(dt);
|
|
}
|
|
|
|
EXPECT_NOT_NULL(dataProvider.m_refreshDataDescForTest); // On this update RefreshDataDescriptor should be called
|
|
|
|
// TearDown
|
|
dataProvider.removeClient(&client);
|
|
DESTROY_CLASS_SINGLETON(SystemAdapter_Empty);
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
TEST(DataProvider, test_getDataDescriptorWithStringIdShouldSuccess)
|
|
///////////////////////////////////////////////////////////////////////
|
|
{
|
|
// Arrange
|
|
DataProvider_Testable dataProvider;
|
|
StringID dataName("SONGNAME");
|
|
|
|
// Act
|
|
DataProvider::DataDesc* setDatadesc = dataProvider.addDataDescriptor(dataName);
|
|
DataProvider::DataDesc* getDatadesc = dataProvider.getDataDescriptor(dataName);
|
|
EXPECT_NOT_NULL(getDatadesc);
|
|
EXPECT_EQ(setDatadesc, getDatadesc);
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
TEST(DataProvider, test_getDataDescriptorWithStringShouldSuccess)
|
|
///////////////////////////////////////////////////////////////////////
|
|
{
|
|
// Arrange
|
|
DataProvider_Testable dataProvider;
|
|
const char* dataName = "SONGNAME";
|
|
|
|
// Act
|
|
DataProvider::DataDesc* setDatadesc = dataProvider.addDataDescriptor(dataName);
|
|
DataProvider::DataDesc* getDatadesc = dataProvider.getDataDescriptor(dataName);
|
|
EXPECT_NOT_NULL(getDatadesc);
|
|
EXPECT_EQ(setDatadesc, getDatadesc);
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
TEST(DataProvider, test_getDataDescriptorWhithUnknownShouldReturnNull)
|
|
///////////////////////////////////////////////////////////////////////
|
|
{
|
|
// Arrange
|
|
DataProvider_Testable dataProvider;
|
|
StringID dataName("SONGNAME");
|
|
|
|
// Act
|
|
DataProvider::DataDesc* getDatadesc = dataProvider.getDataDescriptor(dataName);
|
|
|
|
// Assert
|
|
EXPECT_NULL(getDatadesc);
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
TEST(DataProvider, test_addClientWithNullShouldReturnFalse)
|
|
///////////////////////////////////////////////////////////////////////
|
|
{
|
|
// Arrange
|
|
DataProvider dataProvider;
|
|
|
|
// Act - assert
|
|
EXPECT_BFALSE(dataProvider.addClient(NULL));
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
TEST(DataProvider, test_addAndRemoveClientShouldSuccess)
|
|
///////////////////////////////////////////////////////////////////////
|
|
{
|
|
// Setup
|
|
CREATE_CLASS_SINGLETON(SystemAdapter_Empty); // needed for data provider remove client
|
|
|
|
// Arrange
|
|
DataProvider_Testable dataProvider;
|
|
DataProviderClient_Empty client;
|
|
dataProvider.addDataDescriptor(client.getTestData());
|
|
|
|
// Act - assert
|
|
EXPECT_BTRUE(dataProvider.addClient(&client));
|
|
ITF_VECTOR<IDataProviderClient*> clients;
|
|
dataProvider.getClients(clients);
|
|
EXPECT_NE(-1, clients.find(&client)); // Check if the client is properly added
|
|
|
|
dataProvider.removeClient(&client);
|
|
clients.clear();
|
|
dataProvider.getClients(clients);
|
|
EXPECT_EQ(-1, clients.find(&client)); // Check if the client is properly removed
|
|
|
|
// TearDown
|
|
DESTROY_CLASS_SINGLETON(SystemAdapter_Empty);
|
|
}
|
|
} |