Files
Erupe/server/channelserver/handlers_tower_test.go
Houmgaor d0837e779c refactor(channelserver): consolidate tests into matching source test files
Move ~300 test functions from 21 catch-all files (handlers_core_test.go,
handlers_coverage*_test.go, *_coverage_test.go) into the *_test.go file
matching each handler's source file. This makes tests discoverable by
convention: tests for handlers_guild.go live in handlers_guild_test.go.

New files: handlers_guild_mission_test.go, sys_time_test.go.
No test logic changed — pure file reorganization.
2026-02-26 23:41:44 +01:00

296 lines
7.3 KiB
Go

package channelserver
import (
"testing"
"erupe-ce/network/mhfpacket"
)
func TestHandleMsgMhfGetTenrouirai_Type1(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgMhfGetTenrouirai{
AckHandle: 12345,
Unk0: 1,
}
handleMsgMhfGetTenrouirai(session, pkt)
// Verify response packet was queued
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 TestHandleMsgMhfGetTenrouirai_Default(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgMhfGetTenrouirai{
AckHandle: 12345,
Unk0: 0,
DataType: 0,
}
handleMsgMhfGetTenrouirai(session, pkt)
// Verify response packet was queued
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 TestHandleMsgMhfPostTowerInfo(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgMhfPostTowerInfo{
AckHandle: 12345,
}
handleMsgMhfPostTowerInfo(session, pkt)
// Verify response packet was queued
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 TestHandleMsgMhfPostTenrouirai(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgMhfPostTenrouirai{
AckHandle: 12345,
}
handleMsgMhfPostTenrouirai(session, pkt)
// Verify response packet was queued
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 TestHandleMsgMhfGetBreakSeibatuLevelReward(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgMhfGetBreakSeibatuLevelReward{
AckHandle: 12345,
}
handleMsgMhfGetBreakSeibatuLevelReward(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 TestHandleMsgMhfGetWeeklySeibatuRankingReward(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgMhfGetWeeklySeibatuRankingReward{
AckHandle: 12345,
}
handleMsgMhfGetWeeklySeibatuRankingReward(session, pkt)
// Verify response packet was queued
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 TestHandleMsgMhfPresentBox(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgMhfPresentBox{
AckHandle: 12345,
}
handleMsgMhfPresentBox(session, pkt)
// Verify response packet was queued
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 TestHandleMsgMhfGetTenrouirai_Type2_Rewards(t *testing.T) {
srv := createMockServer()
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfGetTenrouirai{AckHandle: 1, DataType: 2}
handleMsgMhfGetTenrouirai(s, pkt)
<-s.sendPackets
}
func TestHandleMsgMhfGetTenrouirai_Type4_Progress(t *testing.T) {
srv := createMockServer()
srv.towerRepo = &mockTowerRepo{}
ensureTowerService(srv)
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfGetTenrouirai{AckHandle: 1, DataType: 4, GuildID: 1}
handleMsgMhfGetTenrouirai(s, pkt)
<-s.sendPackets
}
func TestHandleMsgMhfGetTenrouirai_Type5_Scores(t *testing.T) {
srv := createMockServer()
srv.towerRepo = &mockTowerRepo{}
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfGetTenrouirai{AckHandle: 1, DataType: 5, GuildID: 1, MissionIndex: 0}
handleMsgMhfGetTenrouirai(s, pkt)
<-s.sendPackets
}
func TestHandleMsgMhfGetTenrouirai_Type6_RP(t *testing.T) {
srv := createMockServer()
srv.towerRepo = &mockTowerRepo{}
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfGetTenrouirai{AckHandle: 1, DataType: 6, GuildID: 1}
handleMsgMhfGetTenrouirai(s, pkt)
<-s.sendPackets
}
func TestHandleMsgMhfPostTowerInfo_SkillUpdate(t *testing.T) {
srv := createMockServer()
srv.towerRepo = &mockTowerRepo{}
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfPostTowerInfo{AckHandle: 1, InfoType: 2, Skill: 3, Cost: -10}
handleMsgMhfPostTowerInfo(s, pkt)
<-s.sendPackets
}
func TestHandleMsgMhfPostTowerInfo_ProgressUpdate(t *testing.T) {
srv := createMockServer()
srv.towerRepo = &mockTowerRepo{}
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfPostTowerInfo{AckHandle: 1, InfoType: 1, TR: 5, TRP: 100, Cost: -20, Block1: 1}
handleMsgMhfPostTowerInfo(s, pkt)
<-s.sendPackets
}
func TestHandleMsgMhfPostTowerInfo_ProgressType7(t *testing.T) {
srv := createMockServer()
srv.towerRepo = &mockTowerRepo{}
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfPostTowerInfo{AckHandle: 1, InfoType: 7, TR: 10, TRP: 200}
handleMsgMhfPostTowerInfo(s, pkt)
<-s.sendPackets
}
func TestHandleMsgMhfPostTowerInfo_QuestToolsDebug(t *testing.T) {
srv := createMockServer()
srv.towerRepo = &mockTowerRepo{}
srv.erupeConfig.DebugOptions.QuestTools = true
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfPostTowerInfo{AckHandle: 1, InfoType: 2, Skill: 1}
handleMsgMhfPostTowerInfo(s, pkt)
<-s.sendPackets
}
func TestHandleMsgMhfPostTenrouirai_Op1(t *testing.T) {
srv := createMockServer()
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfPostTenrouirai{AckHandle: 1, Op: 1}
handleMsgMhfPostTenrouirai(s, pkt)
<-s.sendPackets
}
func TestHandleMsgMhfPostTenrouirai_QuestToolsDebug(t *testing.T) {
srv := createMockServer()
srv.erupeConfig.DebugOptions.QuestTools = true
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfPostTenrouirai{AckHandle: 1, Op: 1, Floors: 10, Slays: 5}
handleMsgMhfPostTenrouirai(s, pkt)
<-s.sendPackets
}
// Tests consolidated from handlers_coverage3_test.go
func TestNonTrivialHandlers_TowerGo(t *testing.T) {
server := createMockServer()
tests := []struct {
name string
fn func(s *Session)
}{
{"handleMsgMhfGetTenrouirai_Type1_C3", func(s *Session) {
handleMsgMhfGetTenrouirai(s, &mhfpacket.MsgMhfGetTenrouirai{AckHandle: 1, Unk0: 1})
}},
{"handleMsgMhfGetTenrouirai_Unknown_C3", func(s *Session) {
handleMsgMhfGetTenrouirai(s, &mhfpacket.MsgMhfGetTenrouirai{AckHandle: 1, Unk0: 0, DataType: 0})
}},
{"handleMsgMhfGetWeeklySeibatuRankingReward_C3", func(s *Session) {
handleMsgMhfGetWeeklySeibatuRankingReward(s, &mhfpacket.MsgMhfGetWeeklySeibatuRankingReward{AckHandle: 1})
}},
{"handleMsgMhfPresentBox_C3", func(s *Session) {
handleMsgMhfPresentBox(s, &mhfpacket.MsgMhfPresentBox{AckHandle: 1})
}},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
session := createMockSession(1, server)
tt.fn(session)
select {
case p := <-session.sendPackets:
if len(p.data) == 0 {
t.Errorf("%s: response should have data", tt.name)
}
default:
t.Errorf("%s: no response queued", tt.name)
}
})
}
}