diff --git a/src/test/kotlin/test/ReproduceIssueTest.kt b/src/test/kotlin/test/ReproduceIssueTest.kt index dfcd1370..b90f0e6a 100644 --- a/src/test/kotlin/test/ReproduceIssueTest.kt +++ b/src/test/kotlin/test/ReproduceIssueTest.kt @@ -3,18 +3,13 @@ package test import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.ObjectMapper import ext.JACKSON -import icu.samnyan.aqua.net.games.chu3.Chu3DataExport import icu.samnyan.aqua.net.games.mai2.Maimai2DataExport -import icu.samnyan.aqua.net.games.ongeki.OngekiDataExport -import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData -import icu.samnyan.aqua.sega.chusan.model.userdata.UserPlaylog as Chu3UserPlaylog import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserDetail import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserMap import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserPlaylog -import icu.samnyan.aqua.sega.ongeki.model.UserData as OngekiUserData -import icu.samnyan.aqua.sega.ongeki.model.UserPlaylog as OngekiUserPlaylog import icu.samnyan.aqua.sega.util.BASIC_MAPPER import icu.samnyan.aqua.sega.util.STRING_MAPPER +import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertFalse import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test @@ -28,7 +23,28 @@ class ReproduceIssueTest { ?: error("Test resource $path not found") } - private fun checkFieldNamesMatchRecursive(baselineNode: JsonNode, currentNode: JsonNode, path: String = "$") { + private fun samplePlaylog() = Mai2UserPlaylog().apply { + musicId = 11479 + level = 2 + achievement = 1000000 + isClear = true + } + + private fun sampleMap() = Mai2UserMap().apply { + mapId = 1 + distance = 100 + isClear = true + } + + private fun sampleExport() = Maimai2DataExport().apply { + userData = Mai2UserDetail().apply { userName = "TestUser" } + userPlaylogList = listOf(samplePlaylog()) + userMapList = listOf(sampleMap()) + } + + private fun checkFieldNamesAndValuesMatchRecursive(baselineNode: JsonNode, currentNode: JsonNode, path: String = "$") { + assertEquals(baselineNode.nodeType, currentNode.nodeType, "Node type mismatch at path '$path'") + if (baselineNode.isObject && currentNode.isObject) { val baselineKeys = baselineNode.fieldNames().asSequence().toSet() val currentKeys = currentNode.fieldNames().asSequence().toSet() @@ -37,57 +53,30 @@ class ReproduceIssueTest { assertTrue(missingKeys.isEmpty(), "Missing keys at path '$path': $missingKeys. Current keys present: $currentKeys") for (key in baselineKeys) { - checkFieldNamesMatchRecursive(baselineNode.get(key), currentNode.get(key), "$path.$key") + checkFieldNamesAndValuesMatchRecursive(baselineNode.get(key), currentNode.get(key), "$path.$key") } } else if (baselineNode.isArray && currentNode.isArray) { for (i in 0 until baselineNode.size()) { if (i < currentNode.size()) { - checkFieldNamesMatchRecursive(baselineNode.get(i), currentNode.get(i), "$path[$i]") + checkFieldNamesAndValuesMatchRecursive(baselineNode.get(i), currentNode.get(i), "$path[$i]") } } + } else if (baselineNode.isBoolean && currentNode.isBoolean) { + assertEquals(baselineNode.asBoolean(), currentNode.asBoolean(), "Boolean value mismatch at path '$path'") + } else if (baselineNode.isNumber && currentNode.isNumber) { + assertEquals(baselineNode.asText(), currentNode.asText(), "Number value mismatch at path '$path'") + } else if (baselineNode.isTextual && currentNode.isTextual) { + assertEquals(baselineNode.asText(), currentNode.asText(), "Textual value mismatch at path '$path'") + } else { + assertEquals(baselineNode, currentNode, "Value mismatch at path '$path'") } } @Test fun testObjectMapperWithoutKotlinModule() { - val mai2Playlog = Mai2UserPlaylog().apply { - musicId = 11479 - level = 2 - achievement = 1000000 - deluxscore = 2000 - isClear = true - isTap = true - isHold = true - isSlide = true - isTouch = true - isBreak = true - isCriticalDisp = true - isFastLateDisp = true - isAchieveNewRecord = true - isDeluxscoreNewRecord = true - isPlayTutorial = true - isEventMode = false - isFreedomMode = false - isNewFree = true - } - - val mai2Map = Mai2UserMap().apply { - mapId = 1 - distance = 100 - isLock = false - isClear = true - isComplete = true - } - - val mai2Export = Maimai2DataExport().apply { - userData = Mai2UserDetail().apply { userName = "TestUser" } - userPlaylogList = listOf(mai2Playlog) - userMapList = listOf(mai2Map) - } - // Standard Jackson 2 ObjectMapper() without KotlinModule strips 'is' getters: val plainObjectMapper = ObjectMapper() - val plainJson = plainObjectMapper.writeValueAsString(mai2Export) + val plainJson = plainObjectMapper.writeValueAsString(sampleExport()) val plainTree = plainObjectMapper.readTree(plainJson) val plainPlaylogNode = plainTree.at("/userPlaylogList/0") @@ -98,144 +87,33 @@ class ReproduceIssueTest { } @Test - fun testMai2ExportEntityFieldNamesMatchBaselineRecursively() { - val mai2Playlog = Mai2UserPlaylog().apply { - musicId = 11479 - level = 2 - achievement = 1000000 - deluxscore = 2000 - isClear = true - isTap = true - isHold = true - isSlide = true - isTouch = true - isBreak = true - isCriticalDisp = true - isFastLateDisp = true - isAchieveNewRecord = true - isDeluxscoreNewRecord = true - isPlayTutorial = true - isEventMode = false - isFreedomMode = false - isNewFree = true - } - - val mai2Map = Mai2UserMap().apply { - mapId = 1 - distance = 100 - isLock = false - isClear = true - isComplete = true - } - - val mai2Export = Maimai2DataExport().apply { - userData = Mai2UserDetail().apply { userName = "TestUser" } - userPlaylogList = listOf(mai2Playlog) - userMapList = listOf(mai2Map) - } - - val currentTree = JACKSON.readTree(JACKSON.writeValueAsString(mai2Export)) + fun testMai2ExportEntityFieldNamesAndValuesMatchBaselineRecursively() { + val currentTree = JACKSON.readTree(JACKSON.writeValueAsString(sampleExport())) val baselineTree = JACKSON.readTree(loadResourceJson("/json/mai2_export_web.json")) - checkFieldNamesMatchRecursive(baselineTree, currentTree) + checkFieldNamesAndValuesMatchRecursive(baselineTree, currentTree) } @Test - fun testChu3ExportEntityFieldNamesMatchBaselineRecursively() { - val chu3Playlog = Chu3UserPlaylog().apply { - musicId = 100 - level = 1 - score = 1000000 - isClear = true - isFullCombo = true - isAllJustice = true - } - - val chu3Export = Chu3DataExport().apply { - userData = Chu3UserData().apply { userName = "ChuUser" } - userPlaylogList = listOf(chu3Playlog) - } - - val currentTree = JACKSON.readTree(JACKSON.writeValueAsString(chu3Export)) - val baselineTree = JACKSON.readTree(loadResourceJson("/json/chu3_export_web.json")) - - checkFieldNamesMatchRecursive(baselineTree, currentTree) - } - - @Test - fun testOngekiExportEntityFieldNamesMatchBaselineRecursively() { - val ongekiPlaylog = OngekiUserPlaylog().apply { - musicId = 200 - level = 1 - techScore = 1000000 - isFullBell = true - isFullCombo = true - isAllBreak = true - } - - val ongekiExport = OngekiDataExport().apply { - userData = OngekiUserData().apply { userName = "OngekiUser" } - userPlaylogList = listOf(ongekiPlaylog) - } - - val currentTree = JACKSON.readTree(JACKSON.writeValueAsString(ongekiExport)) - val baselineTree = JACKSON.readTree(loadResourceJson("/json/ongeki_export_web.json")) - - checkFieldNamesMatchRecursive(baselineTree, currentTree) - } - - @Test - fun testGameFacingMaimai2PlaylogFieldNamesMatchBaselineRecursively() { - val mai2Playlog = Mai2UserPlaylog().apply { - musicId = 11479 - level = 2 - achievement = 1000000 - deluxscore = 2000 - isClear = true - isTap = true - isHold = true - isSlide = true - isTouch = true - isBreak = true - isCriticalDisp = true - isFastLateDisp = true - isAchieveNewRecord = true - isDeluxscoreNewRecord = true - isPlayTutorial = true - isEventMode = false - isFreedomMode = false - isNewFree = true - } + fun testGameFacingMaimai2PlaylogFieldNamesAndValuesMatchBaselineRecursively() { + val mai2Playlog = samplePlaylog() val currentBasicTree = BASIC_MAPPER.readTree(BASIC_MAPPER.writeValueAsString(mai2Playlog)) val baselineBasicTree = BASIC_MAPPER.readTree(loadResourceJson("/json/mai2_playlog_basic.json")) - checkFieldNamesMatchRecursive(baselineBasicTree, currentBasicTree, "Mai2UserPlaylog (BASIC_MAPPER)") + checkFieldNamesAndValuesMatchRecursive(baselineBasicTree, currentBasicTree, "Mai2UserPlaylog (BASIC_MAPPER)") val currentStringTree = STRING_MAPPER.readTree(STRING_MAPPER.writeValueAsString(mai2Playlog)) val baselineStringTree = STRING_MAPPER.readTree(loadResourceJson("/json/mai2_playlog_string.json")) - checkFieldNamesMatchRecursive(baselineStringTree, currentStringTree, "Mai2UserPlaylog (STRING_MAPPER)") + checkFieldNamesAndValuesMatchRecursive(baselineStringTree, currentStringTree, "Mai2UserPlaylog (STRING_MAPPER)") } @Test fun testJackson3JsonMapperWithKotlinModule() { - val mai2Playlog = Mai2UserPlaylog().apply { - musicId = 11479 - level = 2 - achievement = 1000000 - deluxscore = 2000 - isClear = true - } - - val mai2Export = Maimai2DataExport().apply { - userData = Mai2UserDetail().apply { userName = "TestUser" } - userPlaylogList = listOf(mai2Playlog) - } - val j3Mapper = JsonMapper.builder() .addModule(KotlinModule.Builder().build()) .build() - val j3Json = j3Mapper.writeValueAsString(mai2Export) + val j3Json = j3Mapper.writeValueAsString(sampleExport()) val j3Tree = j3Mapper.readTree(j3Json) val j3PlaylogNode = j3Tree.at("/userPlaylogList/0") diff --git a/src/test/resources/json/mai2_export_web.json b/src/test/resources/json/mai2_export_web.json index f7cd76de..bfbdf20f 100644 --- a/src/test/resources/json/mai2_export_web.json +++ b/src/test/resources/json/mai2_export_web.json @@ -1 +1 @@ -{"userData":{"userName":"TestUser","friendCode":"","isNetMember":1,"nameplateId":0,"iconId":0,"trophyId":0,"plateId":0,"titleId":0,"partnerId":0,"frameId":0,"selectMapId":0,"totalAwake":0,"gradeRating":0,"musicRating":0,"playerRating":0,"highestRating":0,"gradeRank":0,"classRank":0,"courseRank":0,"contentBit":0,"playCount":0,"eventWatchedDate":"","lastGameId":"","lastRomVersion":"","lastDataVersion":"","lastLoginDate":"","lastPlayDate":"","lastPlayCredit":0,"lastPlayMode":0,"lastPlaceId":0,"lastPlaceName":"","lastAllNetId":0,"lastRegionId":0,"lastRegionName":"","lastCountryCode":"","lastSelectEMoney":0,"lastSelectTicket":0,"lastSelectCourse":0,"lastCountCourse":0,"firstGameId":"","firstRomVersion":"","firstDataVersion":"","firstPlayDate":"","compatibleCmVersion":"","dailyBonusDate":"","dailyCourseBonusDate":"","lastPairLoginDate":"","lastTrialPlayDate":"","playVsCount":0,"playSyncCount":0,"winCount":0,"helpCount":0,"comboCount":0,"totalDeluxscore":0,"totalBasicDeluxscore":0,"totalAdvancedDeluxscore":0,"totalExpertDeluxscore":0,"totalMasterDeluxscore":0,"totalReMasterDeluxscore":0,"totalHiscore":0,"totalBasicHighscore":0,"totalAdvancedHighscore":0,"totalExpertHighscore":0,"totalMasterHighscore":0,"totalReMasterHighscore":0,"totalSync":0,"totalBasicSync":0,"totalAdvancedSync":0,"totalExpertSync":0,"totalMasterSync":0,"totalReMasterSync":0,"totalAchievement":0,"totalBasicAchievement":0,"totalAdvancedAchievement":0,"totalExpertAchievement":0,"totalMasterAchievement":0,"totalReMasterAchievement":0,"playerOldRating":0,"playerNewRating":0,"dateTime":0,"cmLastEmoneyBrand":2,"cmLastEmoneyCredit":69,"mapStock":0,"point":0,"totalPoint":0,"currentPlayCount":0,"renameCredit":0},"userExtend":{"selectMusicId":0,"selectDifficultyId":0,"categoryIndex":0,"musicIndex":0,"extraFlag":0,"selectScoreType":0,"extendContentBit":0,"isPhotoAgree":false,"isGotoCodeRead":false,"selectResultDetails":false,"sortCategorySetting":0,"sortMusicSetting":0,"playStatusSetting":0,"selectResultScoreViewType":0,"selectedCardList":[],"encountMapNpcList":[]},"userOption":{"optionKind":0,"noteSpeed":0,"slideSpeed":0,"touchSpeed":0,"tapDesign":0,"holdDesign":0,"slideDesign":0,"starType":0,"outlineDesign":0,"noteSize":0,"slideSize":0,"touchSize":0,"starRotate":0,"dispCenter":0,"dispChain":0,"dispRate":0,"dispBar":0,"touchEffect":0,"submonitorAnimation":0,"submonitorAchive":0,"submonitorAppeal":0,"matching":0,"trackSkip":0,"brightness":0,"mirrorMode":0,"dispJudge":0,"dispJudgePos":0,"dispJudgeTouchPos":0,"adjustTiming":0,"judgeTiming":0,"ansVolume":0,"tapHoldVolume":0,"criticalSe":0,"tapSe":0,"breakSe":0,"breakVolume":0,"exSe":0,"exVolume":0,"slideSe":0,"slideVolume":0,"touchHoldVolume":0,"damageSeVolume":0,"headPhoneVolume":0,"sortTab":0,"sortMusic":0,"outFrameType":0,"breakSlideVolume":0,"touchVolume":0},"userUdemae":{"rate":0,"maxRate":0,"classValue":0,"maxClassValue":0,"totalWinNum":0,"totalLoseNum":0,"maxWinNum":0,"maxLoseNum":0,"winNum":0,"loseNum":0,"npcTotalWinNum":0,"npcTotalLoseNum":0,"npcMaxWinNum":0,"npcMaxLoseNum":0,"npcWinNum":0,"npcLoseNum":0},"mapEncountNpcList":[],"userActList":[],"userCharacterList":[],"userChargeList":[],"userCourseList":[],"userFavoriteList":[],"userFriendSeasonRankingList":[],"userGeneralDataList":[],"userItemList":[],"userLoginBonusList":[],"userMapList":[{"mapId":1,"distance":100,"isLock":false,"isClear":true,"isComplete":true}],"userMusicDetailList":[],"userIntimateList":[],"userFavoriteMusicList":[],"userKaleidxScopeList":[],"userPlaylogList":[{"orderId":0,"playlogId":0,"version":0,"placeId":0,"placeName":"","loginDate":0,"playDate":"","userPlayDate":"","type":0,"musicId":11479,"level":2,"trackNo":0,"vsMode":0,"vsUserName":"","vsStatus":0,"vsUserRating":0,"vsUserAchievement":0,"vsUserGradeRank":0,"vsRank":0,"playerNum":0,"playedUserId1":0,"playedUserName1":"","playedMusicLevel1":0,"playedUserId2":0,"playedUserName2":"","playedMusicLevel2":0,"playedUserId3":0,"playedUserName3":"","playedMusicLevel3":0,"characterId1":0,"characterLevel1":0,"characterAwakening1":0,"characterId2":0,"characterLevel2":0,"characterAwakening2":0,"characterId3":0,"characterLevel3":0,"characterAwakening3":0,"characterId4":0,"characterLevel4":0,"characterAwakening4":0,"characterId5":0,"characterLevel5":0,"characterAwakening5":0,"achievement":1000000,"deluxscore":2000,"scoreRank":0,"maxCombo":0,"totalCombo":0,"maxSync":0,"totalSync":0,"tapCriticalPerfect":0,"tapPerfect":0,"tapGreat":0,"tapGood":0,"tapMiss":0,"holdCriticalPerfect":0,"holdPerfect":0,"holdGreat":0,"holdGood":0,"holdMiss":0,"slideCriticalPerfect":0,"slidePerfect":0,"slideGreat":0,"slideGood":0,"slideMiss":0,"touchCriticalPerfect":0,"touchPerfect":0,"touchGreat":0,"touchGood":0,"touchMiss":0,"breakCriticalPerfect":0,"breakPerfect":0,"breakGreat":0,"breakGood":0,"breakMiss":0,"isTap":true,"isHold":true,"isSlide":true,"isTouch":true,"isBreak":true,"isCriticalDisp":true,"isFastLateDisp":true,"fastCount":0,"lateCount":0,"isAchieveNewRecord":true,"isDeluxscoreNewRecord":true,"comboStatus":0,"syncStatus":0,"isClear":true,"beforeRating":0,"afterRating":0,"beforeGrade":0,"afterGrade":0,"afterGradeRank":0,"beforeDeluxRating":0,"afterDeluxRating":0,"isPlayTutorial":true,"isEventMode":false,"isFreedomMode":false,"playMode":0,"isNewFree":true,"trialPlayAchievement":0,"extNum1":0,"extNum2":0,"extNum4":0,"extBool1":false,"extBool2":false,"extBool3":false,"isFullCombo":true,"isAllPerfect":true}],"gameId":"SDEZ"} \ No newline at end of file +{"userData":{"userName":"TestUser","friendCode":"","isNetMember":1,"nameplateId":0,"iconId":0,"trophyId":0,"plateId":0,"titleId":0,"partnerId":0,"frameId":0,"selectMapId":0,"totalAwake":0,"gradeRating":0,"musicRating":0,"playerRating":0,"highestRating":0,"gradeRank":0,"classRank":0,"courseRank":0,"contentBit":0,"playCount":0,"eventWatchedDate":"","lastGameId":"","lastRomVersion":"","lastDataVersion":"","lastLoginDate":"","lastPlayDate":"","lastPlayCredit":0,"lastPlayMode":0,"lastPlaceId":0,"lastPlaceName":"","lastAllNetId":0,"lastRegionId":0,"lastRegionName":"","lastCountryCode":"","lastSelectEMoney":0,"lastSelectTicket":0,"lastSelectCourse":0,"lastCountCourse":0,"firstGameId":"","firstRomVersion":"","firstDataVersion":"","firstPlayDate":"","compatibleCmVersion":"","dailyBonusDate":"","dailyCourseBonusDate":"","lastPairLoginDate":"","lastTrialPlayDate":"","playVsCount":0,"playSyncCount":0,"winCount":0,"helpCount":0,"comboCount":0,"totalDeluxscore":0,"totalBasicDeluxscore":0,"totalAdvancedDeluxscore":0,"totalExpertDeluxscore":0,"totalMasterDeluxscore":0,"totalReMasterDeluxscore":0,"totalHiscore":0,"totalBasicHighscore":0,"totalAdvancedHighscore":0,"totalExpertHighscore":0,"totalMasterHighscore":0,"totalReMasterHighscore":0,"totalSync":0,"totalBasicSync":0,"totalAdvancedSync":0,"totalExpertSync":0,"totalMasterSync":0,"totalReMasterSync":0,"totalAchievement":0,"totalBasicAchievement":0,"totalAdvancedAchievement":0,"totalExpertAchievement":0,"totalMasterAchievement":0,"totalReMasterAchievement":0,"playerOldRating":0,"playerNewRating":0,"dateTime":0,"cmLastEmoneyBrand":2,"cmLastEmoneyCredit":69,"mapStock":0,"point":0,"totalPoint":0,"currentPlayCount":0,"renameCredit":0},"userExtend":{"selectMusicId":0,"selectDifficultyId":0,"categoryIndex":0,"musicIndex":0,"extraFlag":0,"selectScoreType":0,"extendContentBit":0,"isPhotoAgree":false,"isGotoCodeRead":false,"selectResultDetails":false,"sortCategorySetting":0,"sortMusicSetting":0,"playStatusSetting":0,"selectResultScoreViewType":0,"selectedCardList":[],"encountMapNpcList":[]},"userOption":{"optionKind":0,"noteSpeed":0,"slideSpeed":0,"touchSpeed":0,"tapDesign":0,"holdDesign":0,"slideDesign":0,"starType":0,"outlineDesign":0,"noteSize":0,"slideSize":0,"touchSize":0,"starRotate":0,"dispCenter":0,"dispChain":0,"dispRate":0,"dispBar":0,"touchEffect":0,"submonitorAnimation":0,"submonitorAchive":0,"submonitorAppeal":0,"matching":0,"trackSkip":0,"brightness":0,"mirrorMode":0,"dispJudge":0,"dispJudgePos":0,"dispJudgeTouchPos":0,"adjustTiming":0,"judgeTiming":0,"ansVolume":0,"tapHoldVolume":0,"criticalSe":0,"tapSe":0,"breakSe":0,"breakVolume":0,"exSe":0,"exVolume":0,"slideSe":0,"slideVolume":0,"touchHoldVolume":0,"damageSeVolume":0,"headPhoneVolume":0,"sortTab":0,"sortMusic":0,"outFrameType":0,"breakSlideVolume":0,"touchVolume":0},"userUdemae":{"rate":0,"maxRate":0,"classValue":0,"maxClassValue":0,"totalWinNum":0,"totalLoseNum":0,"maxWinNum":0,"maxLoseNum":0,"winNum":0,"loseNum":0,"npcTotalWinNum":0,"npcTotalLoseNum":0,"npcMaxWinNum":0,"npcMaxLoseNum":0,"npcWinNum":0,"npcLoseNum":0},"mapEncountNpcList":[],"userActList":[],"userCharacterList":[],"userChargeList":[],"userCourseList":[],"userFavoriteList":[],"userFriendSeasonRankingList":[],"userGeneralDataList":[],"userItemList":[],"userLoginBonusList":[],"userMapList":[{"mapId":1,"distance":100,"isLock":false,"isClear":true,"isComplete":false}],"userMusicDetailList":[],"userIntimateList":[],"userFavoriteMusicList":[],"userKaleidxScopeList":[],"userPlaylogList":[{"orderId":0,"playlogId":0,"version":0,"placeId":0,"placeName":"","loginDate":0,"playDate":"","userPlayDate":"","type":0,"musicId":11479,"level":2,"trackNo":0,"vsMode":0,"vsUserName":"","vsStatus":0,"vsUserRating":0,"vsUserAchievement":0,"vsUserGradeRank":0,"vsRank":0,"playerNum":0,"playedUserId1":0,"playedUserName1":"","playedMusicLevel1":0,"playedUserId2":0,"playedUserName2":"","playedMusicLevel2":0,"playedUserId3":0,"playedUserName3":"","playedMusicLevel3":0,"characterId1":0,"characterLevel1":0,"characterAwakening1":0,"characterId2":0,"characterLevel2":0,"characterAwakening2":0,"characterId3":0,"characterLevel3":0,"characterAwakening3":0,"characterId4":0,"characterLevel4":0,"characterAwakening4":0,"characterId5":0,"characterLevel5":0,"characterAwakening5":0,"achievement":1000000,"deluxscore":0,"scoreRank":0,"maxCombo":0,"totalCombo":0,"maxSync":0,"totalSync":0,"tapCriticalPerfect":0,"tapPerfect":0,"tapGreat":0,"tapGood":0,"tapMiss":0,"holdCriticalPerfect":0,"holdPerfect":0,"holdGreat":0,"holdGood":0,"holdMiss":0,"slideCriticalPerfect":0,"slidePerfect":0,"slideGreat":0,"slideGood":0,"slideMiss":0,"touchCriticalPerfect":0,"touchPerfect":0,"touchGreat":0,"touchGood":0,"touchMiss":0,"breakCriticalPerfect":0,"breakPerfect":0,"breakGreat":0,"breakGood":0,"breakMiss":0,"isTap":false,"isHold":false,"isSlide":false,"isTouch":false,"isBreak":false,"isCriticalDisp":false,"isFastLateDisp":false,"fastCount":0,"lateCount":0,"isAchieveNewRecord":false,"isDeluxscoreNewRecord":false,"comboStatus":0,"syncStatus":0,"isClear":true,"beforeRating":0,"afterRating":0,"beforeGrade":0,"afterGrade":0,"afterGradeRank":0,"beforeDeluxRating":0,"afterDeluxRating":0,"isPlayTutorial":false,"isEventMode":false,"isFreedomMode":false,"playMode":0,"isNewFree":false,"trialPlayAchievement":0,"extNum1":0,"extNum2":0,"extNum4":0,"extBool1":false,"extBool2":false,"extBool3":false,"isFullCombo":true,"isAllPerfect":true}],"gameId":"SDEZ"} \ No newline at end of file diff --git a/src/test/resources/json/mai2_playlog_basic.json b/src/test/resources/json/mai2_playlog_basic.json index f44f5351..7a8cebe1 100644 --- a/src/test/resources/json/mai2_playlog_basic.json +++ b/src/test/resources/json/mai2_playlog_basic.json @@ -1 +1 @@ -{"orderId":0,"playlogId":0,"version":0,"placeId":0,"placeName":"","loginDate":0,"playDate":"","userPlayDate":"","type":0,"musicId":11479,"level":2,"trackNo":0,"vsMode":0,"vsUserName":"","vsStatus":0,"vsUserRating":0,"vsUserAchievement":0,"vsUserGradeRank":0,"vsRank":0,"playerNum":0,"playedUserId1":0,"playedUserName1":"","playedMusicLevel1":0,"playedUserId2":0,"playedUserName2":"","playedMusicLevel2":0,"playedUserId3":0,"playedUserName3":"","playedMusicLevel3":0,"characterId1":0,"characterLevel1":0,"characterAwakening1":0,"characterId2":0,"characterLevel2":0,"characterAwakening2":0,"characterId3":0,"characterLevel3":0,"characterAwakening3":0,"characterId4":0,"characterLevel4":0,"characterAwakening4":0,"characterId5":0,"characterLevel5":0,"characterAwakening5":0,"achievement":1000000,"deluxscore":2000,"scoreRank":0,"maxCombo":0,"totalCombo":0,"maxSync":0,"totalSync":0,"tapCriticalPerfect":0,"tapPerfect":0,"tapGreat":0,"tapGood":0,"tapMiss":0,"holdCriticalPerfect":0,"holdPerfect":0,"holdGreat":0,"holdGood":0,"holdMiss":0,"slideCriticalPerfect":0,"slidePerfect":0,"slideGreat":0,"slideGood":0,"slideMiss":0,"touchCriticalPerfect":0,"touchPerfect":0,"touchGreat":0,"touchGood":0,"touchMiss":0,"breakCriticalPerfect":0,"breakPerfect":0,"breakGreat":0,"breakGood":0,"breakMiss":0,"isTap":true,"isHold":true,"isSlide":true,"isTouch":true,"isBreak":true,"isCriticalDisp":true,"isFastLateDisp":true,"fastCount":0,"lateCount":0,"isAchieveNewRecord":true,"isDeluxscoreNewRecord":true,"comboStatus":0,"syncStatus":0,"isClear":true,"beforeRating":0,"afterRating":0,"beforeGrade":0,"afterGrade":0,"afterGradeRank":0,"beforeDeluxRating":0,"afterDeluxRating":0,"isPlayTutorial":true,"isEventMode":false,"isFreedomMode":false,"playMode":0,"isNewFree":true,"trialPlayAchievement":0,"extNum1":0,"extNum2":0,"extNum4":0,"extBool1":false,"extBool2":false,"extBool3":false,"isFullCombo":true,"isAllPerfect":true} \ No newline at end of file +{"orderId":0,"playlogId":0,"version":0,"placeId":0,"placeName":"","loginDate":0,"playDate":"","userPlayDate":"","type":0,"musicId":11479,"level":2,"trackNo":0,"vsMode":0,"vsUserName":"","vsStatus":0,"vsUserRating":0,"vsUserAchievement":0,"vsUserGradeRank":0,"vsRank":0,"playerNum":0,"playedUserId1":0,"playedUserName1":"","playedMusicLevel1":0,"playedUserId2":0,"playedUserName2":"","playedMusicLevel2":0,"playedUserId3":0,"playedUserName3":"","playedMusicLevel3":0,"characterId1":0,"characterLevel1":0,"characterAwakening1":0,"characterId2":0,"characterLevel2":0,"characterAwakening2":0,"characterId3":0,"characterLevel3":0,"characterAwakening3":0,"characterId4":0,"characterLevel4":0,"characterAwakening4":0,"characterId5":0,"characterLevel5":0,"characterAwakening5":0,"achievement":1000000,"deluxscore":0,"scoreRank":0,"maxCombo":0,"totalCombo":0,"maxSync":0,"totalSync":0,"tapCriticalPerfect":0,"tapPerfect":0,"tapGreat":0,"tapGood":0,"tapMiss":0,"holdCriticalPerfect":0,"holdPerfect":0,"holdGreat":0,"holdGood":0,"holdMiss":0,"slideCriticalPerfect":0,"slidePerfect":0,"slideGreat":0,"slideGood":0,"slideMiss":0,"touchCriticalPerfect":0,"touchPerfect":0,"touchGreat":0,"touchGood":0,"touchMiss":0,"breakCriticalPerfect":0,"breakPerfect":0,"breakGreat":0,"breakGood":0,"breakMiss":0,"isTap":false,"isHold":false,"isSlide":false,"isTouch":false,"isBreak":false,"isCriticalDisp":false,"isFastLateDisp":false,"fastCount":0,"lateCount":0,"isAchieveNewRecord":false,"isDeluxscoreNewRecord":false,"comboStatus":0,"syncStatus":0,"isClear":true,"beforeRating":0,"afterRating":0,"beforeGrade":0,"afterGrade":0,"afterGradeRank":0,"beforeDeluxRating":0,"afterDeluxRating":0,"isPlayTutorial":false,"isEventMode":false,"isFreedomMode":false,"playMode":0,"isNewFree":false,"trialPlayAchievement":0,"extNum1":0,"extNum2":0,"extNum4":0,"extBool1":false,"extBool2":false,"extBool3":false,"isFullCombo":true,"isAllPerfect":true} \ No newline at end of file diff --git a/src/test/resources/json/mai2_playlog_jackson.json b/src/test/resources/json/mai2_playlog_jackson.json index f44f5351..7a8cebe1 100644 --- a/src/test/resources/json/mai2_playlog_jackson.json +++ b/src/test/resources/json/mai2_playlog_jackson.json @@ -1 +1 @@ -{"orderId":0,"playlogId":0,"version":0,"placeId":0,"placeName":"","loginDate":0,"playDate":"","userPlayDate":"","type":0,"musicId":11479,"level":2,"trackNo":0,"vsMode":0,"vsUserName":"","vsStatus":0,"vsUserRating":0,"vsUserAchievement":0,"vsUserGradeRank":0,"vsRank":0,"playerNum":0,"playedUserId1":0,"playedUserName1":"","playedMusicLevel1":0,"playedUserId2":0,"playedUserName2":"","playedMusicLevel2":0,"playedUserId3":0,"playedUserName3":"","playedMusicLevel3":0,"characterId1":0,"characterLevel1":0,"characterAwakening1":0,"characterId2":0,"characterLevel2":0,"characterAwakening2":0,"characterId3":0,"characterLevel3":0,"characterAwakening3":0,"characterId4":0,"characterLevel4":0,"characterAwakening4":0,"characterId5":0,"characterLevel5":0,"characterAwakening5":0,"achievement":1000000,"deluxscore":2000,"scoreRank":0,"maxCombo":0,"totalCombo":0,"maxSync":0,"totalSync":0,"tapCriticalPerfect":0,"tapPerfect":0,"tapGreat":0,"tapGood":0,"tapMiss":0,"holdCriticalPerfect":0,"holdPerfect":0,"holdGreat":0,"holdGood":0,"holdMiss":0,"slideCriticalPerfect":0,"slidePerfect":0,"slideGreat":0,"slideGood":0,"slideMiss":0,"touchCriticalPerfect":0,"touchPerfect":0,"touchGreat":0,"touchGood":0,"touchMiss":0,"breakCriticalPerfect":0,"breakPerfect":0,"breakGreat":0,"breakGood":0,"breakMiss":0,"isTap":true,"isHold":true,"isSlide":true,"isTouch":true,"isBreak":true,"isCriticalDisp":true,"isFastLateDisp":true,"fastCount":0,"lateCount":0,"isAchieveNewRecord":true,"isDeluxscoreNewRecord":true,"comboStatus":0,"syncStatus":0,"isClear":true,"beforeRating":0,"afterRating":0,"beforeGrade":0,"afterGrade":0,"afterGradeRank":0,"beforeDeluxRating":0,"afterDeluxRating":0,"isPlayTutorial":true,"isEventMode":false,"isFreedomMode":false,"playMode":0,"isNewFree":true,"trialPlayAchievement":0,"extNum1":0,"extNum2":0,"extNum4":0,"extBool1":false,"extBool2":false,"extBool3":false,"isFullCombo":true,"isAllPerfect":true} \ No newline at end of file +{"orderId":0,"playlogId":0,"version":0,"placeId":0,"placeName":"","loginDate":0,"playDate":"","userPlayDate":"","type":0,"musicId":11479,"level":2,"trackNo":0,"vsMode":0,"vsUserName":"","vsStatus":0,"vsUserRating":0,"vsUserAchievement":0,"vsUserGradeRank":0,"vsRank":0,"playerNum":0,"playedUserId1":0,"playedUserName1":"","playedMusicLevel1":0,"playedUserId2":0,"playedUserName2":"","playedMusicLevel2":0,"playedUserId3":0,"playedUserName3":"","playedMusicLevel3":0,"characterId1":0,"characterLevel1":0,"characterAwakening1":0,"characterId2":0,"characterLevel2":0,"characterAwakening2":0,"characterId3":0,"characterLevel3":0,"characterAwakening3":0,"characterId4":0,"characterLevel4":0,"characterAwakening4":0,"characterId5":0,"characterLevel5":0,"characterAwakening5":0,"achievement":1000000,"deluxscore":0,"scoreRank":0,"maxCombo":0,"totalCombo":0,"maxSync":0,"totalSync":0,"tapCriticalPerfect":0,"tapPerfect":0,"tapGreat":0,"tapGood":0,"tapMiss":0,"holdCriticalPerfect":0,"holdPerfect":0,"holdGreat":0,"holdGood":0,"holdMiss":0,"slideCriticalPerfect":0,"slidePerfect":0,"slideGreat":0,"slideGood":0,"slideMiss":0,"touchCriticalPerfect":0,"touchPerfect":0,"touchGreat":0,"touchGood":0,"touchMiss":0,"breakCriticalPerfect":0,"breakPerfect":0,"breakGreat":0,"breakGood":0,"breakMiss":0,"isTap":false,"isHold":false,"isSlide":false,"isTouch":false,"isBreak":false,"isCriticalDisp":false,"isFastLateDisp":false,"fastCount":0,"lateCount":0,"isAchieveNewRecord":false,"isDeluxscoreNewRecord":false,"comboStatus":0,"syncStatus":0,"isClear":true,"beforeRating":0,"afterRating":0,"beforeGrade":0,"afterGrade":0,"afterGradeRank":0,"beforeDeluxRating":0,"afterDeluxRating":0,"isPlayTutorial":false,"isEventMode":false,"isFreedomMode":false,"playMode":0,"isNewFree":false,"trialPlayAchievement":0,"extNum1":0,"extNum2":0,"extNum4":0,"extBool1":false,"extBool2":false,"extBool3":false,"isFullCombo":true,"isAllPerfect":true} \ No newline at end of file diff --git a/src/test/resources/json/mai2_playlog_string.json b/src/test/resources/json/mai2_playlog_string.json index a9382bfd..0b69acf2 100644 --- a/src/test/resources/json/mai2_playlog_string.json +++ b/src/test/resources/json/mai2_playlog_string.json @@ -1 +1 @@ -{"orderId":"0","playlogId":"0","version":"0","placeId":"0","placeName":"","loginDate":"0","playDate":"","userPlayDate":"","type":"0","musicId":"11479","level":"2","trackNo":"0","vsMode":"0","vsUserName":"","vsStatus":"0","vsUserRating":"0","vsUserAchievement":"0","vsUserGradeRank":"0","vsRank":"0","playerNum":"0","playedUserId1":"0","playedUserName1":"","playedMusicLevel1":"0","playedUserId2":"0","playedUserName2":"","playedMusicLevel2":"0","playedUserId3":"0","playedUserName3":"","playedMusicLevel3":"0","characterId1":"0","characterLevel1":"0","characterAwakening1":"0","characterId2":"0","characterLevel2":"0","characterAwakening2":"0","characterId3":"0","characterLevel3":"0","characterAwakening3":"0","characterId4":"0","characterLevel4":"0","characterAwakening4":"0","characterId5":"0","characterLevel5":"0","characterAwakening5":"0","achievement":"1000000","deluxscore":"2000","scoreRank":"0","maxCombo":"0","totalCombo":"0","maxSync":"0","totalSync":"0","tapCriticalPerfect":"0","tapPerfect":"0","tapGreat":"0","tapGood":"0","tapMiss":"0","holdCriticalPerfect":"0","holdPerfect":"0","holdGreat":"0","holdGood":"0","holdMiss":"0","slideCriticalPerfect":"0","slidePerfect":"0","slideGreat":"0","slideGood":"0","slideMiss":"0","touchCriticalPerfect":"0","touchPerfect":"0","touchGreat":"0","touchGood":"0","touchMiss":"0","breakCriticalPerfect":"0","breakPerfect":"0","breakGreat":"0","breakGood":"0","breakMiss":"0","isTap":"true","isHold":"true","isSlide":"true","isTouch":"true","isBreak":"true","isCriticalDisp":"true","isFastLateDisp":"true","fastCount":"0","lateCount":"0","isAchieveNewRecord":"true","isDeluxscoreNewRecord":"true","comboStatus":"0","syncStatus":"0","isClear":"true","beforeRating":"0","afterRating":"0","beforeGrade":"0","afterGrade":"0","afterGradeRank":"0","beforeDeluxRating":"0","afterDeluxRating":"0","isPlayTutorial":"true","isEventMode":"false","isFreedomMode":"false","playMode":"0","isNewFree":"true","trialPlayAchievement":"0","extNum1":"0","extNum2":"0","extNum4":"0","extBool1":"false","extBool2":"false","extBool3":"false","isFullCombo":"true","isAllPerfect":"true"} \ No newline at end of file +{"orderId":"0","playlogId":"0","version":"0","placeId":"0","placeName":"","loginDate":"0","playDate":"","userPlayDate":"","type":"0","musicId":"11479","level":"2","trackNo":"0","vsMode":"0","vsUserName":"","vsStatus":"0","vsUserRating":"0","vsUserAchievement":"0","vsUserGradeRank":"0","vsRank":"0","playerNum":"0","playedUserId1":"0","playedUserName1":"","playedMusicLevel1":"0","playedUserId2":"0","playedUserName2":"","playedMusicLevel2":"0","playedUserId3":"0","playedUserName3":"","playedMusicLevel3":"0","characterId1":"0","characterLevel1":"0","characterAwakening1":"0","characterId2":"0","characterLevel2":"0","characterAwakening2":"0","characterId3":"0","characterLevel3":"0","characterAwakening3":"0","characterId4":"0","characterLevel4":"0","characterAwakening4":"0","characterId5":"0","characterLevel5":"0","characterAwakening5":"0","achievement":"1000000","deluxscore":"0","scoreRank":"0","maxCombo":"0","totalCombo":"0","maxSync":"0","totalSync":"0","tapCriticalPerfect":"0","tapPerfect":"0","tapGreat":"0","tapGood":"0","tapMiss":"0","holdCriticalPerfect":"0","holdPerfect":"0","holdGreat":"0","holdGood":"0","holdMiss":"0","slideCriticalPerfect":"0","slidePerfect":"0","slideGreat":"0","slideGood":"0","slideMiss":"0","touchCriticalPerfect":"0","touchPerfect":"0","touchGreat":"0","touchGood":"0","touchMiss":"0","breakCriticalPerfect":"0","breakPerfect":"0","breakGreat":"0","breakGood":"0","breakMiss":"0","isTap":"false","isHold":"false","isSlide":"false","isTouch":"false","isBreak":"false","isCriticalDisp":"false","isFastLateDisp":"false","fastCount":"0","lateCount":"0","isAchieveNewRecord":"false","isDeluxscoreNewRecord":"false","comboStatus":"0","syncStatus":"0","isClear":"true","beforeRating":"0","afterRating":"0","beforeGrade":"0","afterGrade":"0","afterGradeRank":"0","beforeDeluxRating":"0","afterDeluxRating":"0","isPlayTutorial":"false","isEventMode":"false","isFreedomMode":"false","playMode":"0","isNewFree":"false","trialPlayAchievement":"0","extNum1":"0","extNum2":"0","extNum4":"0","extBool1":"false","extBool2":"false","extBool3":"false","isFullCombo":"true","isAllPerfect":"true"} \ No newline at end of file