mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-23 08:03:51 +01:00
Add tests for: - Discord handlers (getPlayerSlice, getCharacterList) - House handlers (boxToBytes, HouseData, Title structs) - Mail struct tests - Mercenary handlers (Partner, HunterNavi structs) - Shop/Gacha handlers (writeShopItems, ShopItem, Gacha structs) - Additional handler coverage for guild, tower, and simple handlers - Stage handler tests for binary operations and enumeration - Channel server tests for BroadcastMHF and session management
157 lines
3.2 KiB
Go
157 lines
3.2 KiB
Go
package channelserver
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"erupe-ce/config"
|
|
"erupe-ce/network/mhfpacket"
|
|
)
|
|
|
|
func TestHandleMsgMhfEnumerateRanking_Default(t *testing.T) {
|
|
server := createMockServer()
|
|
server.erupeConfig = &config.Config{
|
|
DevMode: true,
|
|
DevModeOptions: config.DevModeOptions{
|
|
TournamentEvent: 0, // Default state
|
|
},
|
|
}
|
|
session := createMockSession(1, server)
|
|
|
|
pkt := &mhfpacket.MsgMhfEnumerateRanking{
|
|
AckHandle: 12345,
|
|
}
|
|
|
|
handleMsgMhfEnumerateRanking(session, pkt)
|
|
|
|
select {
|
|
case p := <-session.sendPackets:
|
|
if len(p.data) == 0 {
|
|
t.Error("Response packet should have data")
|
|
}
|
|
default:
|
|
t.Error("No response packet queued")
|
|
}
|
|
}
|
|
|
|
func TestHandleMsgMhfEnumerateRanking_State1(t *testing.T) {
|
|
server := createMockServer()
|
|
server.erupeConfig = &config.Config{
|
|
DevMode: true,
|
|
DevModeOptions: config.DevModeOptions{
|
|
TournamentEvent: 1,
|
|
},
|
|
}
|
|
session := createMockSession(1, server)
|
|
|
|
pkt := &mhfpacket.MsgMhfEnumerateRanking{
|
|
AckHandle: 12345,
|
|
}
|
|
|
|
handleMsgMhfEnumerateRanking(session, pkt)
|
|
|
|
select {
|
|
case p := <-session.sendPackets:
|
|
if len(p.data) == 0 {
|
|
t.Error("Response packet should have data")
|
|
}
|
|
default:
|
|
t.Error("No response packet queued")
|
|
}
|
|
}
|
|
|
|
func TestHandleMsgMhfEnumerateRanking_State2(t *testing.T) {
|
|
server := createMockServer()
|
|
server.erupeConfig = &config.Config{
|
|
DevMode: true,
|
|
DevModeOptions: config.DevModeOptions{
|
|
TournamentEvent: 2,
|
|
},
|
|
}
|
|
session := createMockSession(1, server)
|
|
|
|
pkt := &mhfpacket.MsgMhfEnumerateRanking{
|
|
AckHandle: 12345,
|
|
}
|
|
|
|
handleMsgMhfEnumerateRanking(session, pkt)
|
|
|
|
select {
|
|
case p := <-session.sendPackets:
|
|
if len(p.data) == 0 {
|
|
t.Error("Response packet should have data")
|
|
}
|
|
default:
|
|
t.Error("No response packet queued")
|
|
}
|
|
}
|
|
|
|
func TestHandleMsgMhfEnumerateRanking_State3(t *testing.T) {
|
|
server := createMockServer()
|
|
server.erupeConfig = &config.Config{
|
|
DevMode: true,
|
|
DevModeOptions: config.DevModeOptions{
|
|
TournamentEvent: 3,
|
|
},
|
|
}
|
|
session := createMockSession(1, server)
|
|
|
|
pkt := &mhfpacket.MsgMhfEnumerateRanking{
|
|
AckHandle: 12345,
|
|
}
|
|
|
|
handleMsgMhfEnumerateRanking(session, pkt)
|
|
|
|
select {
|
|
case p := <-session.sendPackets:
|
|
if len(p.data) == 0 {
|
|
t.Error("Response packet should have data")
|
|
}
|
|
default:
|
|
t.Error("No response packet queued")
|
|
}
|
|
}
|
|
|
|
func TestHandleMsgMhfVoteFesta(t *testing.T) {
|
|
server := createMockServer()
|
|
session := createMockSession(1, server)
|
|
|
|
pkt := &mhfpacket.MsgMhfVoteFesta{
|
|
AckHandle: 12345,
|
|
}
|
|
|
|
handleMsgMhfVoteFesta(session, pkt)
|
|
|
|
select {
|
|
case p := <-session.sendPackets:
|
|
if len(p.data) == 0 {
|
|
t.Error("Response packet should have data")
|
|
}
|
|
default:
|
|
t.Error("No response packet queued")
|
|
}
|
|
}
|
|
|
|
func TestEmptyFestaHandlers(t *testing.T) {
|
|
server := createMockServer()
|
|
session := createMockSession(1, server)
|
|
|
|
tests := []struct {
|
|
name string
|
|
handler func(s *Session, p mhfpacket.MHFPacket)
|
|
}{
|
|
{"handleMsgMhfEntryTournament", handleMsgMhfEntryTournament},
|
|
{"handleMsgMhfAcquireTournament", handleMsgMhfAcquireTournament},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
t.Errorf("%s panicked: %v", tt.name, r)
|
|
}
|
|
}()
|
|
tt.handler(session, nil)
|
|
})
|
|
}
|
|
}
|