package mhfpacket import ( "testing" "erupe-ce/common/byteframe" cfg "erupe-ce/config" "erupe-ce/network/clientctx" ) // TestBuildCoverage_NotImplemented_Extended exercises Build() on all remaining packet types // whose Build method returns errors.New("NOT IMPLEMENTED") and was not already covered // by TestBuildCoverage_NotImplemented. func TestBuildCoverage_NotImplemented_Extended(t *testing.T) { tests := []struct { name string pkt MHFPacket }{ {"MsgMhfAcceptReadReward", &MsgMhfAcceptReadReward{}}, {"MsgMhfAcquireDistItem", &MsgMhfAcquireDistItem{}}, {"MsgMhfAcquireFesta", &MsgMhfAcquireFesta{}}, {"MsgMhfAcquireFestaIntermediatePrize", &MsgMhfAcquireFestaIntermediatePrize{}}, {"MsgMhfAcquireFestaPersonalPrize", &MsgMhfAcquireFestaPersonalPrize{}}, {"MsgMhfAcquireGuildAdventure", &MsgMhfAcquireGuildAdventure{}}, {"MsgMhfAcquireGuildTresure", &MsgMhfAcquireGuildTresure{}}, {"MsgMhfAcquireGuildTresureSouvenir", &MsgMhfAcquireGuildTresureSouvenir{}}, {"MsgMhfAcquireItem", &MsgMhfAcquireItem{}}, {"MsgMhfAcquireMonthlyReward", &MsgMhfAcquireMonthlyReward{}}, {"MsgMhfAcquireTitle", &MsgMhfAcquireTitle{}}, {"MsgMhfAcquireTournament", &MsgMhfAcquireTournament{}}, {"MsgMhfAddAchievement", &MsgMhfAddAchievement{}}, {"MsgMhfAddGuildMissionCount", &MsgMhfAddGuildMissionCount{}}, {"MsgMhfAddGuildWeeklyBonusExceptionalUser", &MsgMhfAddGuildWeeklyBonusExceptionalUser{}}, {"MsgMhfAddRewardSongCount", &MsgMhfAddRewardSongCount{}}, {"MsgMhfAddUdPoint", &MsgMhfAddUdPoint{}}, {"MsgMhfAnswerGuildScout", &MsgMhfAnswerGuildScout{}}, {"MsgMhfApplyBbsArticle", &MsgMhfApplyBbsArticle{}}, {"MsgMhfApplyCampaign", &MsgMhfApplyCampaign{}}, {"MsgMhfApplyDistItem", &MsgMhfApplyDistItem{}}, {"MsgMhfArrangeGuildMember", &MsgMhfArrangeGuildMember{}}, {"MsgMhfCancelGuildMissionTarget", &MsgMhfCancelGuildMissionTarget{}}, {"MsgMhfCancelGuildScout", &MsgMhfCancelGuildScout{}}, {"MsgMhfCaravanMyRank", &MsgMhfCaravanMyRank{}}, {"MsgMhfCaravanMyScore", &MsgMhfCaravanMyScore{}}, {"MsgMhfCaravanRanking", &MsgMhfCaravanRanking{}}, {"MsgMhfChargeFesta", &MsgMhfChargeFesta{}}, {"MsgMhfChargeGuildAdventure", &MsgMhfChargeGuildAdventure{}}, {"MsgMhfCheckDailyCafepoint", &MsgMhfCheckDailyCafepoint{}}, {"MsgMhfContractMercenary", &MsgMhfContractMercenary{}}, {"MsgMhfCreateGuild", &MsgMhfCreateGuild{}}, {"MsgMhfCreateJoint", &MsgMhfCreateJoint{}}, {"MsgMhfCreateMercenary", &MsgMhfCreateMercenary{}}, {"MsgMhfDebugPostValue", &MsgMhfDebugPostValue{}}, {"MsgMhfDisplayedAchievement", &MsgMhfDisplayedAchievement{}}, {"MsgMhfEnterTournamentQuest", &MsgMhfEnterTournamentQuest{}}, {"MsgMhfEntryFesta", &MsgMhfEntryFesta{}}, {"MsgMhfEntryRookieGuild", &MsgMhfEntryRookieGuild{}}, {"MsgMhfEntryTournament", &MsgMhfEntryTournament{}}, {"MsgMhfEnumerateAiroulist", &MsgMhfEnumerateAiroulist{}}, {"MsgMhfEnumerateDistItem", &MsgMhfEnumerateDistItem{}}, {"MsgMhfEnumerateEvent", &MsgMhfEnumerateEvent{}}, {"MsgMhfEnumerateFestaIntermediatePrize", &MsgMhfEnumerateFestaIntermediatePrize{}}, {"MsgMhfEnumerateFestaPersonalPrize", &MsgMhfEnumerateFestaPersonalPrize{}}, {"MsgMhfEnumerateGuacot", &MsgMhfEnumerateGuacot{}}, {"MsgMhfEnumerateGuild", &MsgMhfEnumerateGuild{}}, {"MsgMhfEnumerateGuildItem", &MsgMhfEnumerateGuildItem{}}, {"MsgMhfEnumerateGuildMember", &MsgMhfEnumerateGuildMember{}}, {"MsgMhfEnumerateGuildMessageBoard", &MsgMhfEnumerateGuildMessageBoard{}}, {"MsgMhfEnumerateGuildTresure", &MsgMhfEnumerateGuildTresure{}}, {"MsgMhfEnumerateHouse", &MsgMhfEnumerateHouse{}}, {"MsgMhfEnumerateMercenaryLog", &MsgMhfEnumerateMercenaryLog{}}, {"MsgMhfEnumeratePrice", &MsgMhfEnumeratePrice{}}, {"MsgMhfEnumerateRengokuRanking", &MsgMhfEnumerateRengokuRanking{}}, {"MsgMhfEnumerateTitle", &MsgMhfEnumerateTitle{}}, {"MsgMhfEnumerateUnionItem", &MsgMhfEnumerateUnionItem{}}, {"MsgMhfExchangeKouryouPoint", &MsgMhfExchangeKouryouPoint{}}, {"MsgMhfGetAchievement", &MsgMhfGetAchievement{}}, {"MsgMhfGetAdditionalBeatReward", &MsgMhfGetAdditionalBeatReward{}}, {"MsgMhfGetBbsSnsStatus", &MsgMhfGetBbsSnsStatus{}}, {"MsgMhfGetBbsUserStatus", &MsgMhfGetBbsUserStatus{}}, {"MsgMhfGetBoostRight", &MsgMhfGetBoostRight{}}, {"MsgMhfGetBoxGachaInfo", &MsgMhfGetBoxGachaInfo{}}, {"MsgMhfGetBreakSeibatuLevelReward", &MsgMhfGetBreakSeibatuLevelReward{}}, {"MsgMhfGetCaAchievementHist", &MsgMhfGetCaAchievementHist{}}, {"MsgMhfGetCaUniqueID", &MsgMhfGetCaUniqueID{}}, {"MsgMhfGetDailyMissionMaster", &MsgMhfGetDailyMissionMaster{}}, {"MsgMhfGetDailyMissionPersonal", &MsgMhfGetDailyMissionPersonal{}}, {"MsgMhfGetDistDescription", &MsgMhfGetDistDescription{}}, {"MsgMhfGetEarthStatus", &MsgMhfGetEarthStatus{}}, {"MsgMhfGetEarthValue", &MsgMhfGetEarthValue{}}, {"MsgMhfGetEnhancedMinidata", &MsgMhfGetEnhancedMinidata{}}, {"MsgMhfGetEquipSkinHist", &MsgMhfGetEquipSkinHist{}}, {"MsgMhfGetExtraInfo", &MsgMhfGetExtraInfo{}}, {"MsgMhfGetFixedSeibatuRankingTable", &MsgMhfGetFixedSeibatuRankingTable{}}, {"MsgMhfGetFpointExchangeList", &MsgMhfGetFpointExchangeList{}}, {"MsgMhfGetGachaPlayHistory", &MsgMhfGetGachaPlayHistory{}}, {"MsgMhfGetGuildManageRight", &MsgMhfGetGuildManageRight{}}, {"MsgMhfGetGuildMissionList", &MsgMhfGetGuildMissionList{}}, {"MsgMhfGetGuildMissionRecord", &MsgMhfGetGuildMissionRecord{}}, {"MsgMhfGetGuildScoutList", &MsgMhfGetGuildScoutList{}}, {"MsgMhfGetGuildTargetMemberNum", &MsgMhfGetGuildTargetMemberNum{}}, {"MsgMhfGetGuildTresureSouvenir", &MsgMhfGetGuildTresureSouvenir{}}, {"MsgMhfGetGuildWeeklyBonusActiveCount", &MsgMhfGetGuildWeeklyBonusActiveCount{}}, {"MsgMhfGetGuildWeeklyBonusMaster", &MsgMhfGetGuildWeeklyBonusMaster{}}, {"MsgMhfGetKeepLoginBoostStatus", &MsgMhfGetKeepLoginBoostStatus{}}, {"MsgMhfGetKouryouPoint", &MsgMhfGetKouryouPoint{}}, {"MsgMhfGetLobbyCrowd", &MsgMhfGetLobbyCrowd{}}, {"MsgMhfGetPaperData", &MsgMhfGetPaperData{}}, {"MsgMhfGetRandFromTable", &MsgMhfGetRandFromTable{}}, {"MsgMhfGetRejectGuildScout", &MsgMhfGetRejectGuildScout{}}, {"MsgMhfGetRengokuBinary", &MsgMhfGetRengokuBinary{}}, {"MsgMhfGetRengokuRankingRank", &MsgMhfGetRengokuRankingRank{}}, {"MsgMhfGetRestrictionEvent", &MsgMhfGetRestrictionEvent{}}, {"MsgMhfGetRewardSong", &MsgMhfGetRewardSong{}}, {"MsgMhfGetRyoudama", &MsgMhfGetRyoudama{}}, {"MsgMhfGetSeibattle", &MsgMhfGetSeibattle{}}, {"MsgMhfGetSenyuDailyCount", &MsgMhfGetSenyuDailyCount{}}, {"MsgMhfGetStepupStatus", &MsgMhfGetStepupStatus{}}, {"MsgMhfGetTenrouirai", &MsgMhfGetTenrouirai{}}, {"MsgMhfGetTinyBin", &MsgMhfGetTinyBin{}}, {"MsgMhfGetTrendWeapon", &MsgMhfGetTrendWeapon{}}, {"MsgMhfGetUdBonusQuestInfo", &MsgMhfGetUdBonusQuestInfo{}}, {"MsgMhfGetUdDailyPresentList", &MsgMhfGetUdDailyPresentList{}}, {"MsgMhfGetUdGuildMapInfo", &MsgMhfGetUdGuildMapInfo{}}, {"MsgMhfGetUdMonsterPoint", &MsgMhfGetUdMonsterPoint{}}, {"MsgMhfGetUdMyPoint", &MsgMhfGetUdMyPoint{}}, {"MsgMhfGetUdMyRanking", &MsgMhfGetUdMyRanking{}}, {"MsgMhfGetUdNormaPresentList", &MsgMhfGetUdNormaPresentList{}}, {"MsgMhfGetUdRanking", &MsgMhfGetUdRanking{}}, {"MsgMhfGetUdRankingRewardList", &MsgMhfGetUdRankingRewardList{}}, {"MsgMhfGetUdSelectedColorInfo", &MsgMhfGetUdSelectedColorInfo{}}, {"MsgMhfGetUdShopCoin", &MsgMhfGetUdShopCoin{}}, {"MsgMhfGetUdTacticsBonusQuest", &MsgMhfGetUdTacticsBonusQuest{}}, {"MsgMhfGetUdTacticsFirstQuestBonus", &MsgMhfGetUdTacticsFirstQuestBonus{}}, {"MsgMhfGetUdTacticsFollower", &MsgMhfGetUdTacticsFollower{}}, {"MsgMhfGetUdTacticsLog", &MsgMhfGetUdTacticsLog{}}, {"MsgMhfGetUdTacticsPoint", &MsgMhfGetUdTacticsPoint{}}, {"MsgMhfGetUdTacticsRanking", &MsgMhfGetUdTacticsRanking{}}, {"MsgMhfGetUdTacticsRemainingPoint", &MsgMhfGetUdTacticsRemainingPoint{}}, {"MsgMhfGetUdTacticsRewardList", &MsgMhfGetUdTacticsRewardList{}}, {"MsgMhfGetUdTotalPointInfo", &MsgMhfGetUdTotalPointInfo{}}, {"MsgMhfGetWeeklySeibatuRankingReward", &MsgMhfGetWeeklySeibatuRankingReward{}}, {"MsgMhfInfoFesta", &MsgMhfInfoFesta{}}, {"MsgMhfInfoGuild", &MsgMhfInfoGuild{}}, {"MsgMhfInfoScenarioCounter", &MsgMhfInfoScenarioCounter{}}, {"MsgMhfInfoTournament", &MsgMhfInfoTournament{}}, {"MsgMhfKickExportForce", &MsgMhfKickExportForce{}}, {"MsgMhfListMail", &MsgMhfListMail{}}, {"MsgMhfListMember", &MsgMhfListMember{}}, {"MsgMhfLoadFavoriteQuest", &MsgMhfLoadFavoriteQuest{}}, {"MsgMhfLoadHouse", &MsgMhfLoadHouse{}}, {"MsgMhfLoadLegendDispatch", &MsgMhfLoadLegendDispatch{}}, {"MsgMhfLoadMezfesData", &MsgMhfLoadMezfesData{}}, {"MsgMhfLoadPlateMyset", &MsgMhfLoadPlateMyset{}}, {"MsgMhfLoadRengokuData", &MsgMhfLoadRengokuData{}}, {"MsgMhfLoadScenarioData", &MsgMhfLoadScenarioData{}}, {"MsgMhfLoaddata", &MsgMhfLoaddata{}}, {"MsgMhfMercenaryHuntdata", &MsgMhfMercenaryHuntdata{}}, {"MsgMhfOperateGuild", &MsgMhfOperateGuild{}}, {"MsgMhfOperateGuildMember", &MsgMhfOperateGuildMember{}}, {"MsgMhfOperateGuildTresureReport", &MsgMhfOperateGuildTresureReport{}}, {"MsgMhfOperateJoint", &MsgMhfOperateJoint{}}, {"MsgMhfOperateWarehouse", &MsgMhfOperateWarehouse{}}, {"MsgMhfOperationInvGuild", &MsgMhfOperationInvGuild{}}, {"MsgMhfOprMember", &MsgMhfOprMember{}}, {"MsgMhfOprtMail", &MsgMhfOprtMail{}}, {"MsgMhfPaymentAchievement", &MsgMhfPaymentAchievement{}}, {"MsgMhfPlayBoxGacha", &MsgMhfPlayBoxGacha{}}, {"MsgMhfPlayFreeGacha", &MsgMhfPlayFreeGacha{}}, {"MsgMhfPlayNormalGacha", &MsgMhfPlayNormalGacha{}}, {"MsgMhfPlayStepupGacha", &MsgMhfPlayStepupGacha{}}, {"MsgMhfPostBoostTime", &MsgMhfPostBoostTime{}}, {"MsgMhfPostBoostTimeLimit", &MsgMhfPostBoostTimeLimit{}}, {"MsgMhfPostBoostTimeQuestReturn", &MsgMhfPostBoostTimeQuestReturn{}}, {"MsgMhfPostCafeDurationBonusReceived", &MsgMhfPostCafeDurationBonusReceived{}}, {"MsgMhfPostGemInfo", &MsgMhfPostGemInfo{}}, {"MsgMhfPostGuildScout", &MsgMhfPostGuildScout{}}, {"MsgMhfPostRyoudama", &MsgMhfPostRyoudama{}}, {"MsgMhfPostSeibattle", &MsgMhfPostSeibattle{}}, {"MsgMhfPostTenrouirai", &MsgMhfPostTenrouirai{}}, {"MsgMhfPostTinyBin", &MsgMhfPostTinyBin{}}, {"MsgMhfPresentBox", &MsgMhfPresentBox{}}, {"MsgMhfReadBeatLevel", &MsgMhfReadBeatLevel{}}, {"MsgMhfReadBeatLevelAllRanking", &MsgMhfReadBeatLevelAllRanking{}}, {"MsgMhfReadBeatLevelMyRanking", &MsgMhfReadBeatLevelMyRanking{}}, {"MsgMhfReadGuildcard", &MsgMhfReadGuildcard{}}, {"MsgMhfReadLastWeekBeatRanking", &MsgMhfReadLastWeekBeatRanking{}}, {"MsgMhfReadMail", &MsgMhfReadMail{}}, {"MsgMhfReadMercenaryM", &MsgMhfReadMercenaryM{}}, {"MsgMhfReadMercenaryW", &MsgMhfReadMercenaryW{}}, {"MsgMhfReceiveCafeDurationBonus", &MsgMhfReceiveCafeDurationBonus{}}, {"MsgMhfReceiveGachaItem", &MsgMhfReceiveGachaItem{}}, {"MsgMhfRegisterEvent", &MsgMhfRegisterEvent{}}, {"MsgMhfRegistGuildAdventure", &MsgMhfRegistGuildAdventure{}}, {"MsgMhfRegistGuildAdventureDiva", &MsgMhfRegistGuildAdventureDiva{}}, {"MsgMhfRegistGuildCooking", &MsgMhfRegistGuildCooking{}}, {"MsgMhfRegistGuildTresure", &MsgMhfRegistGuildTresure{}}, {"MsgMhfRegistSpabiTime", &MsgMhfRegistSpabiTime{}}, {"MsgMhfReleaseEvent", &MsgMhfReleaseEvent{}}, {"MsgMhfResetAchievement", &MsgMhfResetAchievement{}}, {"MsgMhfResetBoxGachaInfo", &MsgMhfResetBoxGachaInfo{}}, {"MsgMhfResetTitle", &MsgMhfResetTitle{}}, {"MsgMhfSaveDecoMyset", &MsgMhfSaveDecoMyset{}}, {"MsgMhfSaveFavoriteQuest", &MsgMhfSaveFavoriteQuest{}}, {"MsgMhfSaveHunterNavi", &MsgMhfSaveHunterNavi{}}, {"MsgMhfSaveMercenary", &MsgMhfSaveMercenary{}}, {"MsgMhfSaveMezfesData", &MsgMhfSaveMezfesData{}}, {"MsgMhfSaveOtomoAirou", &MsgMhfSaveOtomoAirou{}}, {"MsgMhfSavePartner", &MsgMhfSavePartner{}}, {"MsgMhfSavePlateBox", &MsgMhfSavePlateBox{}}, {"MsgMhfSavePlateData", &MsgMhfSavePlateData{}}, {"MsgMhfSavePlateMyset", &MsgMhfSavePlateMyset{}}, {"MsgMhfSaveRengokuData", &MsgMhfSaveRengokuData{}}, {"MsgMhfSaveScenarioData", &MsgMhfSaveScenarioData{}}, {"MsgMhfSavedata", &MsgMhfSavedata{}}, {"MsgMhfSendMail", &MsgMhfSendMail{}}, {"MsgMhfSetCaAchievement", &MsgMhfSetCaAchievement{}}, {"MsgMhfSetCaAchievementHist", &MsgMhfSetCaAchievementHist{}}, {"MsgMhfSetDailyMissionPersonal", &MsgMhfSetDailyMissionPersonal{}}, {"MsgMhfSetEnhancedMinidata", &MsgMhfSetEnhancedMinidata{}}, {"MsgMhfSetGuildManageRight", &MsgMhfSetGuildManageRight{}}, {"MsgMhfSetGuildMissionTarget", &MsgMhfSetGuildMissionTarget{}}, {"MsgMhfSetKiju", &MsgMhfSetKiju{}}, {"MsgMhfSetRejectGuildScout", &MsgMhfSetRejectGuildScout{}}, {"MsgMhfSetRestrictionEvent", &MsgMhfSetRestrictionEvent{}}, {"MsgMhfSetUdTacticsFollower", &MsgMhfSetUdTacticsFollower{}}, {"MsgMhfSexChanger", &MsgMhfSexChanger{}}, {"MsgMhfStampcardPrize", &MsgMhfStampcardPrize{}}, {"MsgMhfStartBoostTime", &MsgMhfStartBoostTime{}}, {"MsgMhfStateCampaign", &MsgMhfStateCampaign{}}, {"MsgMhfStateFestaG", &MsgMhfStateFestaG{}}, {"MsgMhfStateFestaU", &MsgMhfStateFestaU{}}, {"MsgMhfTransferItem", &MsgMhfTransferItem{}}, {"MsgMhfTransitMessage", &MsgMhfTransitMessage{}}, {"MsgMhfUnreserveSrg", &MsgMhfUnreserveSrg{}}, {"MsgMhfUpdateBeatLevel", &MsgMhfUpdateBeatLevel{}}, {"MsgMhfUpdateCafepoint", &MsgMhfUpdateCafepoint{}}, {"MsgMhfUpdateEquipSkinHist", &MsgMhfUpdateEquipSkinHist{}}, {"MsgMhfUpdateEtcPoint", &MsgMhfUpdateEtcPoint{}}, {"MsgMhfUpdateForceGuildRank", &MsgMhfUpdateForceGuildRank{}}, {"MsgMhfUpdateGuacot", &MsgMhfUpdateGuacot{}}, {"MsgMhfUpdateGuild", &MsgMhfUpdateGuild{}}, {"MsgMhfUpdateGuildIcon", &MsgMhfUpdateGuildIcon{}}, {"MsgMhfUpdateGuildItem", &MsgMhfUpdateGuildItem{}}, {"MsgMhfUpdateGuildMessageBoard", &MsgMhfUpdateGuildMessageBoard{}}, {"MsgMhfUpdateGuildcard", &MsgMhfUpdateGuildcard{}}, {"MsgMhfUpdateHouse", &MsgMhfUpdateHouse{}}, {"MsgMhfUpdateInterior", &MsgMhfUpdateInterior{}}, {"MsgMhfUpdateMyhouseInfo", &MsgMhfUpdateMyhouseInfo{}}, {"MsgMhfUpdateUnionItem", &MsgMhfUpdateUnionItem{}}, {"MsgMhfUpdateUseTrendWeaponLog", &MsgMhfUpdateUseTrendWeaponLog{}}, {"MsgMhfUpdateWarehouse", &MsgMhfUpdateWarehouse{}}, {"MsgMhfUseGachaPoint", &MsgMhfUseGachaPoint{}}, {"MsgMhfUseKeepLoginBoost", &MsgMhfUseKeepLoginBoost{}}, {"MsgMhfUseRewardSong", &MsgMhfUseRewardSong{}}, {"MsgMhfUseUdShopCoin", &MsgMhfUseUdShopCoin{}}, {"MsgMhfVoteFesta", &MsgMhfVoteFesta{}}, // Sys packets {"MsgSysAcquireSemaphore", &MsgSysAcquireSemaphore{}}, {"MsgSysAuthData", &MsgSysAuthData{}}, {"MsgSysAuthQuery", &MsgSysAuthQuery{}}, {"MsgSysAuthTerminal", &MsgSysAuthTerminal{}}, {"MsgSysCheckSemaphore", &MsgSysCheckSemaphore{}}, {"MsgSysCloseMutex", &MsgSysCloseMutex{}}, {"MsgSysCollectBinary", &MsgSysCollectBinary{}}, {"MsgSysCreateAcquireSemaphore", &MsgSysCreateAcquireSemaphore{}}, {"MsgSysCreateMutex", &MsgSysCreateMutex{}}, {"MsgSysCreateObject", &MsgSysCreateObject{}}, {"MsgSysCreateOpenMutex", &MsgSysCreateOpenMutex{}}, {"MsgSysDeleteMutex", &MsgSysDeleteMutex{}}, {"MsgSysDeleteSemaphore", &MsgSysDeleteSemaphore{}}, {"MsgSysEnumerateStage", &MsgSysEnumerateStage{}}, {"MsgSysEnumlobby", &MsgSysEnumlobby{}}, {"MsgSysEnumuser", &MsgSysEnumuser{}}, {"MsgSysGetFile", &MsgSysGetFile{}}, {"MsgSysGetObjectBinary", &MsgSysGetObjectBinary{}}, {"MsgSysGetObjectOwner", &MsgSysGetObjectOwner{}}, {"MsgSysGetState", &MsgSysGetState{}}, {"MsgSysGetUserBinary", &MsgSysGetUserBinary{}}, {"MsgSysHideClient", &MsgSysHideClient{}}, {"MsgSysInfokyserver", &MsgSysInfokyserver{}}, {"MsgSysIssueLogkey", &MsgSysIssueLogkey{}}, {"MsgSysLoadRegister", &MsgSysLoadRegister{}}, {"MsgSysLockGlobalSema", &MsgSysLockGlobalSema{}}, {"MsgSysOpenMutex", &MsgSysOpenMutex{}}, {"MsgSysOperateRegister", &MsgSysOperateRegister{}}, {"MsgSysRecordLog", &MsgSysRecordLog{}}, {"MsgSysReleaseSemaphore", &MsgSysReleaseSemaphore{}}, {"MsgSysReserveStage", &MsgSysReserveStage{}}, {"MsgSysRightsReload", &MsgSysRightsReload{}}, {"MsgSysRotateObject", &MsgSysRotateObject{}}, {"MsgSysSerialize", &MsgSysSerialize{}}, {"MsgSysSetObjectBinary", &MsgSysSetObjectBinary{}}, {"MsgSysSetUserBinary", &MsgSysSetUserBinary{}}, {"MsgSysTerminalLog", &MsgSysTerminalLog{}}, {"MsgSysTransBinary", &MsgSysTransBinary{}}, {"MsgSysUnlockStage", &MsgSysUnlockStage{}}, // Additional Mhf packets {"MsgMhfAddUdTacticsPoint", &MsgMhfAddUdTacticsPoint{}}, {"MsgMhfAddKouryouPoint", &MsgMhfAddKouryouPoint{}}, {"MsgMhfAcquireExchangeShop", &MsgMhfAcquireExchangeShop{}}, {"MsgMhfGetEtcPoints", &MsgMhfGetEtcPoints{}}, {"MsgMhfEnumerateCampaign", &MsgMhfEnumerateCampaign{}}, } ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ} for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { bf := byteframe.NewByteFrame() err, panicked := callBuildSafe(tt.pkt, bf, ctx) if panicked { return } if err == nil { return } if err.Error() != "NOT IMPLEMENTED" { t.Errorf("Build() returned unexpected error: %v", err) } }) } } // TestParseCoverage_NotImplemented_Extended exercises Parse() on additional packet types // whose Parse method returns "NOT IMPLEMENTED" and is not yet covered. func TestParseCoverage_NotImplemented_Extended(t *testing.T) { tests := []struct { name string pkt MHFPacket }{ {"MsgMhfRegisterEvent", &MsgMhfRegisterEvent{}}, {"MsgMhfReleaseEvent", &MsgMhfReleaseEvent{}}, {"MsgMhfEnumeratePrice", &MsgMhfEnumeratePrice{}}, {"MsgMhfEnumerateTitle", &MsgMhfEnumerateTitle{}}, {"MsgMhfAcquireTitle", &MsgMhfAcquireTitle{}}, {"MsgMhfEnumerateUnionItem", &MsgMhfEnumerateUnionItem{}}, {"MsgMhfUpdateUnionItem", &MsgMhfUpdateUnionItem{}}, {"MsgMhfCreateJoint", &MsgMhfCreateJoint{}}, {"MsgMhfOperateJoint", &MsgMhfOperateJoint{}}, {"MsgMhfUpdateGuildIcon", &MsgMhfUpdateGuildIcon{}}, {"MsgMhfUpdateGuildItem", &MsgMhfUpdateGuildItem{}}, {"MsgMhfEnumerateGuildItem", &MsgMhfEnumerateGuildItem{}}, {"MsgMhfOperationInvGuild", &MsgMhfOperationInvGuild{}}, {"MsgMhfStampcardPrize", &MsgMhfStampcardPrize{}}, {"MsgMhfUpdateForceGuildRank", &MsgMhfUpdateForceGuildRank{}}, {"MsgMhfResetTitle", &MsgMhfResetTitle{}}, {"MsgMhfRegistGuildAdventureDiva", &MsgMhfRegistGuildAdventureDiva{}}, } ctx := &clientctx.ClientContext{RealClientMode: cfg.ZZ} bf := byteframe.NewByteFrame() for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err, panicked := callParseSafe(tt.pkt, bf, ctx) if panicked { return } if err == nil { return } if err.Error() != "NOT IMPLEMENTED" { t.Errorf("Parse() returned unexpected error: %v", err) } }) } }