Files
Erupe/server/channelserver/handlers_core_test.go
Houmgaor 2d8f1d3b41 test: expand channelserver coverage from 16% to 20%
Add comprehensive tests for handler functions and utilities:
- Achievement system (GetAchData, curves, mappings)
- Language system (getLangStrings)
- Core handlers (empty handlers, simple responses)
- Cafe/boost handlers
- Diva defense handlers
- Reward, caravan, tactics handlers
- Festa/ranking handlers
- Cast binary constants
2026-02-02 15:15:47 +01:00

368 lines
7.4 KiB
Go

package channelserver
import (
"testing"
"erupe-ce/network/mhfpacket"
)
// Test empty handlers don't panic
func TestHandleMsgHead(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgHead panicked: %v", r)
}
}()
handleMsgHead(session, nil)
}
func TestHandleMsgSysExtendThreshold(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgSysExtendThreshold panicked: %v", r)
}
}()
handleMsgSysExtendThreshold(session, nil)
}
func TestHandleMsgSysEnd(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgSysEnd panicked: %v", r)
}
}()
handleMsgSysEnd(session, nil)
}
func TestHandleMsgSysNop(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgSysNop panicked: %v", r)
}
}()
handleMsgSysNop(session, nil)
}
func TestHandleMsgSysAck(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgSysAck panicked: %v", r)
}
}()
handleMsgSysAck(session, nil)
}
func TestHandleMsgCaExchangeItem(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgCaExchangeItem panicked: %v", r)
}
}()
handleMsgCaExchangeItem(session, nil)
}
func TestHandleMsgMhfServerCommand(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgMhfServerCommand panicked: %v", r)
}
}()
handleMsgMhfServerCommand(session, nil)
}
func TestHandleMsgMhfSetLoginwindow(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgMhfSetLoginwindow panicked: %v", r)
}
}()
handleMsgMhfSetLoginwindow(session, nil)
}
func TestHandleMsgSysTransBinary(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgSysTransBinary panicked: %v", r)
}
}()
handleMsgSysTransBinary(session, nil)
}
func TestHandleMsgSysCollectBinary(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgSysCollectBinary panicked: %v", r)
}
}()
handleMsgSysCollectBinary(session, nil)
}
func TestHandleMsgSysGetState(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgSysGetState panicked: %v", r)
}
}()
handleMsgSysGetState(session, nil)
}
func TestHandleMsgSysSerialize(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgSysSerialize panicked: %v", r)
}
}()
handleMsgSysSerialize(session, nil)
}
func TestHandleMsgSysEnumlobby(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgSysEnumlobby panicked: %v", r)
}
}()
handleMsgSysEnumlobby(session, nil)
}
func TestHandleMsgSysEnumuser(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgSysEnumuser panicked: %v", r)
}
}()
handleMsgSysEnumuser(session, nil)
}
func TestHandleMsgSysInfokyserver(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgSysInfokyserver panicked: %v", r)
}
}()
handleMsgSysInfokyserver(session, nil)
}
func TestHandleMsgMhfGetCaUniqueID(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgMhfGetCaUniqueID panicked: %v", r)
}
}()
handleMsgMhfGetCaUniqueID(session, nil)
}
func TestHandleMsgMhfEnumerateItem(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgMhfEnumerateItem panicked: %v", r)
}
}()
handleMsgMhfEnumerateItem(session, nil)
}
func TestHandleMsgMhfAcquireItem(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgMhfAcquireItem panicked: %v", r)
}
}()
handleMsgMhfAcquireItem(session, nil)
}
func TestHandleMsgMhfGetExtraInfo(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
defer func() {
if r := recover(); r != nil {
t.Errorf("handleMsgMhfGetExtraInfo panicked: %v", r)
}
}()
handleMsgMhfGetExtraInfo(session, nil)
}
// Test handlers that return simple responses
func TestHandleMsgMhfTransferItem(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgMhfTransferItem{
AckHandle: 12345,
}
handleMsgMhfTransferItem(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 TestHandleMsgMhfEnumeratePrice(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgMhfEnumeratePrice{
AckHandle: 12345,
}
handleMsgMhfEnumeratePrice(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 TestHandleMsgMhfEnumerateOrder(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgMhfEnumerateOrder{
AckHandle: 12345,
}
handleMsgMhfEnumerateOrder(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")
}
}
// Test terminal log handler
func TestHandleMsgSysTerminalLog(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgSysTerminalLog{
AckHandle: 12345,
LogID: 100,
Entries: []*mhfpacket.TerminalLogEntry{},
}
handleMsgSysTerminalLog(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 TestHandleMsgSysTerminalLog_WithEntries(t *testing.T) {
server := createMockServer()
session := createMockSession(1, server)
pkt := &mhfpacket.MsgSysTerminalLog{
AckHandle: 12345,
LogID: 100,
Entries: []*mhfpacket.TerminalLogEntry{
{Type1: 1, Type2: 2, Data: []int16{1, 2, 3}},
{Type1: 3, Type2: 4, Data: []int16{4, 5, 6}},
},
}
handleMsgSysTerminalLog(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")
}
}