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>

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)
37{
38 ArenaTeamTest* team = new ArenaTeamTest();
39 team->SetType(type);
40 return team;
41}
Definition ArenaTeamFilterTest.cpp:28
void SetType(uint8 type)
Definition ArenaTeamFilterTest.cpp:30

References ArenaTeamTest::SetType().

Referenced by ArenaTeamFilterTest::SetUp().

◆ TEST_F() [1/3]

TEST_F ( ArenaTeamFilterTest  ,
AllTeamsFilter   
)
73{
75 ArenaTeamMgr::ArenaTeamContainer result = filter.Filter(arenaTeams);
76
77 EXPECT_EQ(result.size(), arenaTeams.size());
78 EXPECT_EQ(result[1], team1);
79 EXPECT_EQ(result[2], team2);
80 EXPECT_EQ(result[3], team3);
81}
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   
)
99{
101
102 // Test for "all" input
103 auto allTeamsFilter = fabric.CreateFilterByUserInput("all");
104 ArenaTeamMgr::ArenaTeamContainer allTeamsResult = allTeamsFilter->Filter(arenaTeams);
105 EXPECT_EQ(allTeamsResult.size(), arenaTeams.size()); // All teams should pass
106
107 // Test for "2,3" input
108 auto specificTypesFilter = fabric.CreateFilterByUserInput("2,3");
109 ArenaTeamMgr::ArenaTeamContainer filteredResult = specificTypesFilter->Filter(arenaTeams);
110 EXPECT_EQ(filteredResult.size(), 2); // Only 2v2 and 3v3 teams should pass
111 EXPECT_EQ(filteredResult[1], team1); // 2v2
112 EXPECT_EQ(filteredResult[2], team2); // 3v3
113}
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   
)
85{
86 std::vector<uint8> validTypes = {2, 3}; // Filtering for 2v2 and 3v3
87 ArenaTeamFilterByTypes filter(validTypes);
88
89 ArenaTeamMgr::ArenaTeamContainer result = filter.Filter(arenaTeams);
90
91 EXPECT_EQ(result.size(), 2); // Only 2v2 and 3v3 should pass
92 EXPECT_EQ(result[1], team1); // team1 is 2v2
93 EXPECT_EQ(result[2], team2); // team2 is 3v3
94 EXPECT_EQ(result.find(3), result.end()); // team3 (5v5) should be filtered out
95}
Definition ArenaTeamFilter.h:42

References ArenaTeamFilterByTypes::Filter().