mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-26 09:33:02 +01:00
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
This commit is contained in:
367
server/channelserver/handlers_core_test.go
Normal file
367
server/channelserver/handlers_core_test.go
Normal file
@@ -0,0 +1,367 @@
|
||||
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")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user