DragonNest/GameCommon/UnitTest/SkillTreeSystem_unittest.cpp

299 lines
11 KiB
C++
Raw Permalink Normal View History

#include "stdafx.h"
#include "DNUserSession.h"
#include "DnSkillTreeSystem.h"
#if !defined( _FINAL_BUILD ) && !defined (__COVERITY__)
extern TVillageConfig g_Config;
class SkillTreeSystem_unittest:public testing::Test
{
public:
static CDnSkillTreeSystem* s_pSkillTreeSystem;
protected:
virtual void SetUp()
{
}
virtual void TearDown()
{
}
static void SetUpTestCase( void )
{
s_pSkillTreeSystem = new CDnSkillTreeSystem;
s_pSkillTreeSystem->InitializeTable();
}
static void TearDownTestCase( void )
{
delete s_pSkillTreeSystem;
}
};
CDnSkillTreeSystem* SkillTreeSystem_unittest::s_pSkillTreeSystem = NULL;
// NOTE: <20><><EFBFBD>Ŀ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ųƮ<C5B3><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD> <20><><EFBFBD><EFBFBD><EEB0AC> <20><> <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٲ<EFBFBD><D9B2>ݴϴ<DDB4>~
// <20>߸<EFBFBD><DFB8><EFBFBD> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID <20><> <20><> <20><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_INVALID_SKILLBOOK_ITEMID )
{
//vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
//CDnSkillTreeSystem::S_TRY_UNLOCK CurrentSkillInfo( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_TRY_UNLOCK CurrentSkillInfo;
CDnSkillTreeSystem::S_OUTPUT Output;
CurrentSkillInfo.iCurrentCharLevel = 99;
CurrentSkillInfo.iTryUnlockSkillID = 3;
CurrentSkillInfo.iSkillBookItemID = 100;
CurrentSkillInfo.iJobID = 1;
//// <20><><EFBFBD><EFBFBD> <20>θ<EFBFBD><CEB8><EFBFBD>ų 2<><32> <20>߰<EFBFBD>.
//vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
//vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryUnLockSkill( CurrentSkillInfo, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_INVALID_SKILLBOOK_ITEMID );
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ų <20><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ.
TEST_F( SkillTreeSystem_unittest, UNLOCK_SKILL )
{
//vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
//CDnSkillTreeSystem::S_TRY_UNLOCK CurrentSkillInfo( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_TRY_UNLOCK CurrentSkillInfo;
CDnSkillTreeSystem::S_OUTPUT Output;
CurrentSkillInfo.iCurrentCharLevel = 99;
CurrentSkillInfo.iTryUnlockSkillID = 3;
CurrentSkillInfo.iSkillBookItemID = 300;
CurrentSkillInfo.iJobID = 1;
//// <20><><EFBFBD><EFBFBD> <20>θ<EFBFBD><CEB8><EFBFBD>ų 2<><32> <20>߰<EFBFBD>.
//vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
//vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryUnLockSkill( CurrentSkillInfo, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_SUCCESS );
}
// <20><><EFBFBD><EFBFBD> <20><>ų(<28>߸<EFBFBD><DFB8><EFBFBD> <20><>ų ID) <20><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ.
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߸<EFBFBD><DFB8><EFBFBD> <20><><EFBFBD><20>ش<EFBFBD><D8B4><EFBFBD>.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_INVALID_SKILLID )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 999;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <20><><EFBFBD><EFBFBD> <20>θ<EFBFBD><CEB8><EFBFBD>ų 2<><32> <20>߰<EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_CANT_FIND_SKILLNODE );
}
// <20>ʿ<EFBFBD><CABF><EFBFBD> <20>θ<EFBFBD> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_DONT_HAVE_PARENTSKILL )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 3;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <20><><EFBFBD><EFBFBD> <20>θ<EFBFBD><CEB8><EFBFBD>ų 1<><31><EFBFBD><EFBFBD> <20>߰<EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_DONT_HAVE_PARENT_SKILL );
}
// <20>ʿ<EFBFBD><CABF><EFBFBD> <20>θ<EFBFBD> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD> Ǯ<><C7AE><EFBFBD><EFBFBD> <20>ʾ<EFBFBD><CABE><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_UNLOCKED_PARENTSKILL )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 3;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <20><><EFBFBD><EFBFBD> <20>θ<EFBFBD><CEB8><EFBFBD>ų 2<><32> <20>߰<EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, true ) ); // <20><><EFBFBD>ɸ<EFBFBD> <20><><EFBFBD>·<EFBFBD> <20>Ѱ<EFBFBD><D1B0>ش<EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_LOCKED_PARENTSKILL );
}
// <20>θ<EFBFBD> <20><>ų<EFBFBD><C5B3> <20>ֵ<EFBFBD> <20>θ<EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڶ<EFBFBD> <20><> ȹ<><C8B9> <20>׽<EFBFBD>Ʈ.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_NOT_ENOUGH_PARENTSKILL_LEVEL )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 3;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <20><><EFBFBD><EFBFBD> <20>θ<EFBFBD><CEB8><EFBFBD>ų 2<><32> <20>߰<EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 1, false ) ); // <20>θ<EFBFBD><CEB8><EFBFBD>ų <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڶ<EFBFBD>.
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_NOT_ENOUGH_PARENT_SKILL_LEVEL );
}
// ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڶ<EFBFBD> <20><> ȹ<><C8B9> <20>׽<EFBFBD>Ʈ.
TEST_F( SkillTreeSystem_unittest, TRY_ACQUIRE_NOT_ENOUGH_CHAR_LEVEL )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 1;
TryAcquire.iTryAcquireSkillID = 3;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <20><><EFBFBD><EFBFBD> <20>θ<EFBFBD><CEB8><EFBFBD>ų 2<><32> <20>߰<EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_NOT_ENOUGH_CHAR_LEVEL );
}
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>ų <20><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ.
TEST_F( SkillTreeSystem_unittest, TRY_UNLOCK )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 3;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
// <20><><EFBFBD><EFBFBD> <20>θ<EFBFBD><CEB8><EFBFBD>ų 2<><32> <20>߰<EFBFBD>.
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 1, 3, false ) );
vlPossessedSkillInfo.push_back( CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO( 2, 2, false ) );
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_SUCCESS );
}
// <20>θ<EFBFBD> <20><>ų<EFBFBD><C5B3> <20><><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ
TEST_F( SkillTreeSystem_unittest, TRY_DONT_HAVE_PARENT_SKILL_UNLOCK )
{
vector<CDnSkillTreeSystem::S_POSSESSED_SKILL_INFO> vlPossessedSkillInfo;
CDnSkillTreeSystem::S_TRY_ACQUIRE TryAcquire( vlPossessedSkillInfo );
CDnSkillTreeSystem::S_OUTPUT Output;
TryAcquire.iCurrentCharLevel = 99;
TryAcquire.iTryAcquireSkillID = 4;
TryAcquire.iHasSkillPoint = 100;
TryAcquire.iJobID = 1;
SkillTreeSystem_unittest::s_pSkillTreeSystem->TryAcquireSkill( TryAcquire, &Output );
EXPECT_EQ( Output.eErrorCode, CDnSkillTreeSystem::E_NONE );
EXPECT_EQ( Output.eResult, CDnSkillTreeSystem::R_SUCCESS );
}
// <20><>ų Ʈ<><C6AE> <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20><><EFBFBD>ǵ<EFBFBD> <20><><EFBFBD><EFBFBD> Ʈ<><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ǵ<EFBFBD><C7B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD> <20>׽<EFBFBD>Ʈ.
TEST_F( SkillTreeSystem_unittest, RENDER_TREE )
{
int iJobID = 1;
int iNodeCount = SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeCount( iJobID );
EXPECT_EQ( iNodeCount, 4 );
int iSlotCount = SkillTreeSystem_unittest::s_pSkillTreeSystem->GetSlotCount( iJobID );
EXPECT_EQ( iSlotCount, 32 );
// <20>߸<EFBFBD><DFB8><EFBFBD> <20><> <20><><EFBFBD>̵<EFBFBD> <20>Ѱ<EFBFBD><D1B0><EFBFBD><EFBFBD><EFBFBD> <20><>,
CDnSkillTreeSystem::S_NODE_RENDER_INFO NodeRenderInfo;
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 0, 2, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 0 );
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<><C8AE>.
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 0, iJobID, &NodeRenderInfo );
EXPECT_NE( NodeRenderInfo.iSkillID, 0 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 0 );
EXPECT_EQ( NodeRenderInfo.vlChildSlotIndexInJob.front(), 4 );
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 1, iJobID, &NodeRenderInfo );
EXPECT_NE( NodeRenderInfo.iSkillID, 0 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 1 );
EXPECT_EQ( NodeRenderInfo.vlChildSlotIndexInJob.front(), 4 );
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 2, iJobID, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 0 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 0 );
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 3, iJobID, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 0 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 0 );
// 2<><32><EFBFBD><EFBFBD> <20>θ<EFBFBD><CEB8><EFBFBD> <20>ִ<EFBFBD> <20><>ų.
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 4, iJobID, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 3 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 4 );
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 5, iJobID, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 0 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 0 );
SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 6, iJobID, &NodeRenderInfo );
EXPECT_EQ( NodeRenderInfo.iSkillID, 4 );
EXPECT_EQ( NodeRenderInfo.iSlotIndex, 6 );
//SkillTreeSystem_unittest::s_pSkillTreeSystem->GetNodeRenderInfo( 7, iJobID, &NodeRenderInfo );
//EXPECT_NE( NodeRenderInfo.iSkillID, 0 );
//EXPECT_EQ( NodeRenderInfo.iSlotIndex, 7 );
}
TEST_F( SkillTreeSystem_unittest, FIND_SKILL_BY_SKILLBOOK )
{
int iSkillID = SkillTreeSystem_unittest::s_pSkillTreeSystem->FindSkillBySkillBook( 300 );
EXPECT_EQ( iSkillID, 3 );
}
// <20><>ų <20><><EFBFBD><EFBFBD> <20>׽<EFBFBD>Ʈ. SP <20><><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD>Ǹ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DB<44><42> <20><><EFBFBD><EFBFBD> <20><>.
// <20><><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD> <20><>ų <20><><EFBFBD>µ<EFBFBD>.
TEST_F( SkillTreeSystem_unittest, RESET )
{
}
#endif // #if !defined( _FINAL_BUILD )