AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
ArenaTeamFilterTest.cpp File Reference
#include "Define.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "ArenaTeamFilter.h"
#include "ArenaTeamMgr.h"
#include "ArenaTeam.h"
#include <memory>
#include "WorldMock.h"

Go to the source code of this file.

Classes

class  ArenaTeamTest
 
class  ArenaTeamFilterTest
 

Functions

ArenaTeamArenaTeamWithType (uint8 type)
 
 TEST_F (ArenaTeamFilterTest, AllTeamsFilter)
 
 TEST_F (ArenaTeamFilterTest, FilterBySpecificTypes)
 
 TEST_F (ArenaTeamFilterTest, FabricCreatesFilterByInput)
 

Function Documentation

◆ ArenaTeamWithType()

ArenaTeam * ArenaTeamWithType ( uint8  type)
38{
39 ArenaTeamTest* team = new ArenaTeamTest();
40 team->SetType(type);
41 return team;
42}
Definition ArenaTeamFilterTest.cpp:29
void SetType(uint8 type)
Definition ArenaTeamFilterTest.cpp:31

References ArenaTeamTest::SetType().

Referenced by ArenaTeamFilterTest::SetUp().

◆ TEST_F() [1/3]

TEST_F ( ArenaTeamFilterTest  ,
AllTeamsFilter   
)
85{
87 ArenaTeamMgr::ArenaTeamContainer result = filter.Filter(arenaTeams);
88
89 EXPECT_EQ(result.size(), arenaTeams.size());
90 EXPECT_EQ(result[1], team1);
91 EXPECT_EQ(result[2], team2);
92 EXPECT_EQ(result[3], team3);
93}
Definition ArenaTeamFilter.h:71
ArenaTeamMgr::ArenaTeamContainer Filter(ArenaTeamMgr::ArenaTeamContainer teams) override
Definition ArenaTeamFilter.h:73
std::unordered_map< uint32, ArenaTeam * > ArenaTeamContainer
Definition ArenaTeamMgr.h:34

References ArenaTeamFilterAllTeams::Filter().

◆ TEST_F() [2/3]

TEST_F ( ArenaTeamFilterTest  ,
FabricCreatesFilterByInput   
)
111{
113
114 // Test for "all" input
115 auto allTeamsFilter = fabric.CreateFilterByUserInput("all");
116 ArenaTeamMgr::ArenaTeamContainer allTeamsResult = allTeamsFilter->Filter(arenaTeams);
117 EXPECT_EQ(allTeamsResult.size(), arenaTeams.size()); // All teams should pass
118
119 // Test for "2,3" input
120 auto specificTypesFilter = fabric.CreateFilterByUserInput("2,3");
121 ArenaTeamMgr::ArenaTeamContainer filteredResult = specificTypesFilter->Filter(arenaTeams);
122 EXPECT_EQ(filteredResult.size(), 2); // Only 2v2 and 3v3 teams should pass
123 EXPECT_EQ(filteredResult[1], team1); // 2v2
124 EXPECT_EQ(filteredResult[2], team2); // 3v3
125}
Definition ArenaTeamFilter.h:80
std::unique_ptr< ArenaTeamFilter > CreateFilterByUserInput(std::string userInput)
Definition ArenaTeamFilter.h:82

References ArenaTeamFilterFactoryByUserInput::CreateFilterByUserInput().

◆ TEST_F() [3/3]

TEST_F ( ArenaTeamFilterTest  ,
FilterBySpecificTypes   
)
97{
98 std::vector<uint8> validTypes = {2, 3}; // Filtering for 2v2 and 3v3
99 ArenaTeamFilterByTypes filter(validTypes);
100
101 ArenaTeamMgr::ArenaTeamContainer result = filter.Filter(arenaTeams);
102
103 EXPECT_EQ(result.size(), 2); // Only 2v2 and 3v3 should pass
104 EXPECT_EQ(result[1], team1); // team1 is 2v2
105 EXPECT_EQ(result[2], team2); // team2 is 3v3
106 EXPECT_EQ(result.find(3), result.end()); // team3 (5v5) should be filtered out
107}
Definition ArenaTeamFilter.h:42

References ArenaTeamFilterByTypes::Filter().