Files
backend-server/server/services/datacollector/arenaAttack_test.go
Josef Fröhle 40d569158f remove dumps and trash
add some new files and services

add hwtools that shows the current and last GWs - not yet included the user stats (if any available)
2020-07-07 19:00:49 +02:00

1465 lines
21 KiB
Go

package datacollector
import (
"hwcollector/server/models"
"reflect"
"testing"
)
const jsonBodyDoArenaAttack = `{"date":1593175179.185618,"request":{"headers":{
"Content-Type": "application/json; charset=UTF-8",
"X-Auth-Application-Id": "1701433570146040",
"X-Auth-Network-Ident": "facebook",
"X-Auth-Player-Id": "3285658",
"X-Auth-Session-Id": "0qcj7bx08np71q",
"X-Auth-Session-Key": "",
"X-Auth-Signature": "014c024600e111ab7581dec17d37b552",
"X-Auth-Token": "ps-ZNjbc7pO-1593171928-71.115.23.126-c02f30ec7ba4d9ddabb4aab4968e682b",
"X-Auth-User-Id": "10203638126149578",
"X-Env-Library-Version": "1",
"X-Request-Id": "694",
"X-Requested-With": "XMLHttpRequest",
"X-Server-Time": "0"
},"call":{
"args": {
"heroes": [
46,
48,
47,
41,
24
],
"pet": 6000,
"userId": 4253074
},
"ident": "body",
"name": "arenaAttack"
},"ident":"body"},"response":{
"ident": "body",
"result": {
"quests": [
{
"id": 10004,
"progress": 7,
"reward": {
"consumable": {
"56": "1"
},
"gold": 6400
},
"state": 3
},
{
"id": 21357,
"progress": 5,
"reward": {
"gold": 1000
},
"state": 3
},
{
"id": 21358,
"progress": 5,
"reward": {
"gold": 2000
},
"state": 2
},
{
"id": 21359,
"progress": 5,
"reward": {
"coin": {
"1": "10"
},
"gold": 3000
},
"state": 1
},
{
"id": 21360,
"progress": 5,
"reward": {
"coin": {
"1": "15"
},
"gold": 4000
},
"state": 1
},
{
"id": 21361,
"progress": 5,
"reward": {
"coin": {
"1": "20"
},
"gold": 5000
},
"state": 1
},
{
"id": 21362,
"progress": 5,
"reward": {
"coin": {
"1": "30"
},
"gold": 6000
},
"state": 1
},
{
"id": 21363,
"progress": 5,
"reward": {
"gold": 1000
},
"state": 1
},
{
"id": 21364,
"progress": 5,
"reward": {
"gold": 2000
},
"state": 1
},
{
"id": 21365,
"progress": 5,
"reward": {
"coin": {
"1": "30"
},
"gold": 3000
},
"state": 1
},
{
"id": 21366,
"progress": 5,
"reward": {
"coin": {
"1": "40"
},
"gold": 4000
},
"state": 1
},
{
"id": 21367,
"progress": 5,
"reward": {
"coin": {
"1": "50"
},
"gold": 5000
},
"state": 1
},
{
"id": 21368,
"progress": 5,
"reward": {
"coin": {
"1": "60"
},
"gold": 6000
},
"state": 1
},
{
"id": 21369,
"progress": 5,
"reward": {
"coin": {
"1": "70"
},
"gold": 7000
},
"state": 1
},
{
"id": 21370,
"progress": 5,
"reward": {
"coin": {
"1": "100"
},
"gold": 10000
},
"state": 1
},
{
"id": 21371,
"progress": 5,
"reward": {
"coin": {
"1": "150"
},
"gold": 15000
},
"state": 1
},
{
"id": 76026,
"progress": 7,
"reward": {
"coin": {
"1": "30"
},
"gold": 20000
},
"state": 3
},
{
"id": 76027,
"progress": 7,
"reward": {
"coin": {
"1": "50"
},
"gold": 35000
},
"state": 3
},
{
"id": 76028,
"progress": 7,
"reward": {
"coin": {
"1": "65"
},
"gold": 50000
},
"state": 3
},
{
"id": 76029,
"progress": 7,
"reward": {
"coin": {
"1": "90"
},
"gold": 75000
},
"state": 1
},
{
"id": 76030,
"progress": 7,
"reward": {
"coin": {
"1": "115"
},
"gold": 100000
},
"state": 1
},
{
"id": 76031,
"progress": 7,
"reward": {
"coin": {
"1": "150"
},
"gold": 150000
},
"state": 1
}
],
"response": {
"battles": [
{
"attackers": {
"24": {
"agility": 2666,
"armor": 24181,
"artifacts": [
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
}
],
"color": 16,
"currentSkin": 75,
"favorPetId": 6005,
"favorPower": 4335,
"hp": 138047,
"id": 24,
"intelligence": 2141,
"level": 130,
"lifesteal": 55,
"magicPower": 3901.5,
"magicResist": 16775,
"perks": [
4,
8,
2
],
"petId": 6005,
"physicalAttack": 25584.05,
"power": 112925,
"runes": [
43750,
43750,
43750,
43750,
43750
],
"scale": 1,
"skills": {
"120": 130,
"121": 130,
"122": 130,
"123": 130,
"6027": 106
},
"skin": 75,
"skins": {
"145": 42,
"24": 10,
"75": 60
},
"slots": {
"0": 0,
"1": 0,
"3": 0,
"4": 0,
"5": 0
},
"star": 6,
"strength": 10858,
"titanCoinsSpent": {
"consumable": {
"24": 65150
}
},
"titanGiftLevel": 30,
"type": "hero",
"xp": 3625195
},
"41": {
"agility": 10640,
"armor": 8670,
"armorPenetration": 38564.6,
"artifacts": [
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
}
],
"color": 16,
"currentSkin": 118,
"favorPetId": 6000,
"favorPower": 6894,
"hp": 106276,
"id": 41,
"intelligence": 2152,
"level": 130,
"magicResist": 1291,
"perks": [
10,
2
],
"petId": 6000,
"physicalAttack": 23488.22,
"power": 110873,
"runes": [
43750,
43750,
43750,
43750,
43750
],
"scale": 1,
"skills": {
"205": 130,
"206": 130,
"207": 130,
"208": 130,
"6002": 130
},
"skin": 118,
"skins": {
"118": 60,
"90": 11
},
"slots": {
"0": 0,
"3": 0,
"4": 0,
"5": 0
},
"star": 6,
"strength": 2725,
"titanCoinsSpent": {
"consumable": {
"24": 65150
}
},
"titanGiftLevel": 30,
"type": "hero",
"xp": 3625195
},
"46": {
"agility": 1702,
"armor": 18469.8,
"artifacts": [
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
}
],
"color": 16,
"currentSkin": 159,
"favorPetId": 6001,
"favorPower": 2702,
"hp": 270000,
"id": 46,
"intelligence": 10786,
"level": 130,
"magicPower": 32055,
"magicResist": 10037,
"perks": [
5,
9,
1
],
"petId": 6001,
"physicalAttack": 50,
"power": 108046,
"runes": [
43750,
43750,
43750,
43750,
43750
],
"scale": 1,
"skills": {
"230": 130,
"231": 130,
"232": 130,
"233": 130
},
"skin": 159,
"skins": {
"101": 57,
"159": 54
},
"slots": {
"0": 0,
"1": 0,
"3": 0,
"4": 0,
"5": 0
},
"star": 6,
"strength": 4173,
"titanCoinsSpent": {
"consumable": {
"24": 65150
}
},
"titanGiftLevel": 30,
"type": "hero",
"xp": 3625195
},
"47": {
"agility": 2457,
"armor": 14755,
"armorPenetration": 19718,
"artifacts": [
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
}
],
"color": 16,
"currentSkin": 160,
"favorPetId": 6003,
"favorPower": 1528,
"hp": 95346,
"id": 47,
"intelligence": 2327,
"level": 130,
"magicPower": 1375.2,
"magicResist": 1375.2,
"perks": [
5,
8,
2
],
"petId": 6003,
"physicalAttack": 18986,
"power": 105099,
"runes": [
43750,
43750,
34180,
43750,
43750
],
"scale": 1,
"skills": {
"235": 130,
"236": 130,
"237": 130,
"238": 130
},
"skin": 160,
"skins": {
"102": 60,
"160": 52
},
"slots": {
"0": 0,
"2": 0,
"4": 0,
"5": 0
},
"star": 6,
"strength": 13060,
"titanCoinsSpent": {
"consumable": {
"24": 65150
}
},
"titanGiftLevel": 30,
"type": "hero",
"xp": 3625195
},
"48": {
"agility": 12839,
"armor": 1535,
"armorPenetration": 4850,
"artifacts": [
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
}
],
"color": 18,
"currentSkin": 0,
"favorPetId": 0,
"favorPower": 0,
"hp": 196722,
"id": 48,
"intelligence": 2888,
"level": 130,
"magicResist": 9536,
"perks": [
5,
2
],
"petId": 0,
"physicalAttack": 18183,
"physicalCritChance": 6898,
"power": 114222,
"runes": [
43750,
43750,
43750,
43750,
43750
],
"scale": 1,
"skills": {
"240": 130,
"241": 130,
"242": 130,
"243": 130
},
"skin": 0,
"skins": {
"103": 60
},
"slots": {
"0": 0,
"1": 0,
"2": 0,
"3": 0,
"5": 0
},
"star": 6,
"strength": 3169,
"titanCoinsSpent": {
"consumable": {
"24": 65150
}
},
"titanGiftLevel": 30,
"type": "hero",
"xp": 3625195
},
"6000": {
"armorPenetration": 29920,
"color": 9,
"id": 6000,
"intelligence": 6894,
"level": 130,
"name": null,
"perks": null,
"power": 119534,
"skills": {
"6000": 130,
"6001": 130
},
"slots": {
"0": 25,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1
},
"star": 5,
"strength": 8454,
"type": "pet",
"xp": 450551
}
},
"defenders": [
{
"1": {
"agility": 2361,
"armor": 912,
"artifacts": [
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
}
],
"color": 16,
"currentSkin": 133,
"dodge": 7080.8099999999995,
"favorPetId": 6004,
"favorPower": 3803,
"hp": 183879,
"id": 31,
"intelligence": 12284,
"level": 130,
"magicPower": 22361,
"magicResist": 7350,
"perks": [
5,
9,
2
],
"petId": 6004,
"physicalAttack": 3500.7,
"power": 107644,
"runes": [
26400,
26400,
20490,
26400,
26400
],
"scale": 1,
"skills": {
"155": 130,
"156": 130,
"157": 130,
"158": 130,
"6022": 111
},
"skin": 133,
"skins": {
"133": 35,
"44": 60,
"94": 45
},
"slots": {
"0": 0,
"1": 0,
"4": 0,
"5": 0
},
"star": 6,
"strength": 2496,
"titanCoinsSpent": {
"consumable": {
"24": 65150
}
},
"titanGiftLevel": 30,
"type": "hero",
"xp": 3625195
},
"2": {
"agility": 11271,
"armor": 895,
"armorPenetration": 6732.9,
"artifacts": [
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
}
],
"color": 16,
"currentSkin": 103,
"favorPetId": 6000,
"favorPower": 3781,
"hp": 133186,
"id": 48,
"intelligence": 2496,
"level": 130,
"magicResist": 6840,
"perks": [
5,
2
],
"petId": 6000,
"physicalAttack": 23571.03,
"physicalCritChance": 5972,
"power": 108445,
"runes": [
43750,
29870,
29870,
43750,
26400
],
"scale": 1,
"skills": {
"240": 130,
"241": 130,
"242": 130,
"243": 130,
"6002": 111
},
"skin": 103,
"skins": {
"103": 60,
"165": 60
},
"slots": {
"4": 0,
"5": 0
},
"star": 6,
"strength": 2777,
"titanCoinsSpent": {
"consumable": {
"24": 65150
}
},
"titanGiftLevel": 30,
"type": "hero",
"xp": 3625195
},
"3": {
"agility": 10761,
"armor": 5788,
"artifacts": [
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
}
],
"color": 16,
"currentSkin": 129,
"dodge": 5839,
"favorPetId": 0,
"favorPower": 0,
"hp": 136500,
"id": 40,
"intelligence": 2385,
"level": 130,
"magicResist": 6471,
"perks": [
5,
9,
1
],
"petId": 0,
"physicalAttack": 19343,
"power": 99561,
"runes": [
20490,
20490,
20490,
20490,
20490
],
"scale": 1,
"skills": {
"200": 130,
"201": 130,
"202": 130,
"203": 130
},
"skin": 129,
"skins": {
"129": 33,
"168": 32,
"53": 55,
"89": 55
},
"slots": {
"3": 0,
"5": 0
},
"star": 6,
"strength": 2556,
"titanCoinsSpent": {
"consumable": {
"24": 65150
}
},
"titanGiftLevel": 30,
"type": "hero",
"xp": 3625195
},
"4": {
"agility": 12395,
"armor": 7590,
"armorPenetration": 33155,
"artifacts": [
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
}
],
"color": 17,
"currentSkin": 127,
"favorPetId": 6005,
"favorPower": 7290,
"hp": 106637,
"id": 3,
"intelligence": 2164,
"level": 130,
"magicPower": 6561,
"magicResist": 1679,
"perks": [
6,
1
],
"petId": 6005,
"physicalAttack": 32681.7,
"power": 122768,
"runes": [
43750,
43750,
43750,
43750,
43750
],
"scale": 1,
"skills": {
"260": 130,
"261": 130,
"262": 130,
"263": 130,
"6027": 130
},
"skin": 127,
"skins": {
"127": 60,
"3": 60,
"60": 60
},
"slots": [],
"star": 6,
"strength": 2686,
"titanCoinsSpent": {
"consumable": {
"24": 65150
}
},
"titanGiftLevel": 30,
"type": "hero",
"xp": 3625195
},
"5": {
"agility": 2409,
"armor": 20217.8,
"armorPenetration": 18144,
"artifacts": [
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
},
{
"level": 100,
"star": 6
}
],
"color": 16,
"currentSkin": 160,
"favorPetId": 6001,
"favorPower": 7732,
"hp": 153714,
"id": 47,
"intelligence": 2279,
"level": 130,
"perks": [
5,
8,
2
],
"petId": 6001,
"physicalAttack": 15378,
"power": 107232,
"runes": [
33360,
33340,
29940,
29870,
36810
],
"scale": 1,
"skills": {
"235": 130,
"236": 130,
"237": 130,
"238": 130,
"6007": 130
},
"skin": 160,
"skins": {
"102": 60,
"160": 36
},
"slots": {
"0": 0,
"4": 0
},
"star": 6,
"strength": 12702,
"titanCoinsSpent": {
"consumable": {
"24": 65150
}
},
"titanGiftLevel": 30,
"type": "hero",
"xp": 3625195
},
"6": {
"color": 10,
"id": 6001,
"intelligence": 7732,
"level": 130,
"magicPenetration": 37401,
"name": null,
"perks": null,
"power": 135529,
"skills": {
"6005": 130,
"6006": 130
},
"slots": {
"0": 1,
"1": 1,
"2": 1,
"4": 1,
"5": 1
},
"star": 4,
"strength": 9164,
"type": "pet",
"xp": 450551
}
}
],
"effects": [],
"endTime": 1593175178,
"id": "1593175179159052991",
"progress": [],
"result": {
"serverVersion": 177,
"stars": 0,
"win": false
},
"reward": [],
"seed": 4000772437,
"startTime": 1593175178,
"type": "arena",
"typeId": "4253074",
"userId": "3285658"
}
],
"enemies": [
{
"heroes": [
{
"color": 18,
"id": 46,
"level": 130,
"star": 6
},
{
"color": 18,
"id": 7,
"level": 130,
"star": 6
},
{
"color": 18,
"id": 43,
"level": 130,
"star": 6
},
{
"color": 18,
"id": 47,
"level": 130,
"star": 6
},
{
"color": 18,
"id": 2,
"level": 130,
"star": 6
},
{
"color": 10,
"id": 6001,
"level": 130,
"star": 4,
"type": "pet"
}
],
"place": "1",
"power": "770692",
"user": {
"allowPm": "all",
"avatarId": "385",
"clanIcon": {
"flagColor1": 19,
"flagColor2": 19,
"flagShape": 7,
"iconColor": 3,
"iconShape": 14
},
"clanId": "18879",
"clanRole": "4",
"clanTitle": "HispaClan",
"frameId": 17,
"id": "3083199",
"isChatModerator": false,
"lastLoginTime": "1593173050",
"leagueId": 3,
"level": "130",
"name": "Fabio",
"serverId": "34"
},
"userId": "3083199"
},
{
"heroes": [
{
"color": 16,
"id": 31,
"level": 130,
"star": 6
},
{
"color": 16,
"id": 48,
"level": 130,
"star": 6
},
{
"color": 16,
"id": 40,
"level": 130,
"star": 6
},
{
"color": 17,
"id": 3,
"level": 130,
"star": 6
},
{
"color": 16,
"id": 47,
"level": 130,
"star": 6
},
{
"color": 10,
"id": 6001,
"level": 130,
"star": 4,
"type": "pet"
}
],
"place": "3",
"power": "662104",
"user": {
"allowPm": "all",
"avatarId": "257",
"clanIcon": {
"flagColor1": 0,
"flagColor2": 8,
"flagShape": 14,
"iconColor": 0,
"iconShape": 1
},
"clanId": "26767",
"clanRole": "2",
"clanTitle": "Valhalla",
"frameId": 12,
"id": "4253074",
"isChatModerator": false,
"lastLoginTime": "1593151387",
"leagueId": null,
"level": "130",
"name": "Mi Newt ",
"serverId": "34"
},
"userId": "4253074"
},
{
"heroes": [
{
"color": 18,
"id": 31,
"level": 130,
"star": 6
},
{
"color": 18,
"id": 48,
"level": 130,
"star": 6
},
{
"color": 18,
"id": 43,
"level": 130,
"star": 6
},
{
"color": 18,
"id": 3,
"level": 130,
"star": 6
},
{
"color": 18,
"id": 47,
"level": 130,
"star": 6
},
{
"color": 10,
"id": 6003,
"level": 130,
"star": 6,
"type": "pet"
}
],
"place": "4",
"power": "856709",
"user": {
"allowPm": "all",
"avatarId": "189",
"clanIcon": {
"flagColor1": 9,
"flagColor2": 19,
"flagShape": 5,
"iconColor": 7,
"iconShape": 4
},
"clanId": "19159",
"clanRole": "4",
"clanTitle": "Blackclaw",
"frameId": 7,
"id": "3221561",
"isChatModerator": false,
"lastLoginTime": "1593128772",
"leagueId": 3,
"level": "130",
"name": "Stig",
"serverId": "34"
},
"userId": "3221561"
}
],
"reward": null,
"state": {
"arenaHeroes": [
{
"color": 16,
"id": 46,
"level": 130,
"star": 6
},
{
"color": 18,
"id": 48,
"level": 130,
"star": 6
},
{
"color": 16,
"id": 47,
"level": 130,
"star": 6
},
{
"color": 16,
"id": 41,
"level": 130,
"star": 6
},
{
"color": 16,
"id": 24,
"level": 130,
"star": 6
},
{
"color": 9,
"id": 6000,
"level": 130,
"star": 5,
"type": "pet"
}
],
"arenaPlace": "5",
"arenaPower": "670699",
"battles": 1103,
"grandCoin": 910.0798333333333,
"grandCoinTime": 1593175178,
"grandHeroes": [
[
{
"color": 16,
"id": 24,
"level": 130,
"star": 6
},
{
"color": 16,
"id": 41,
"level": 130,
"star": 6
},
{
"color": 16,
"id": 47,
"level": 130,
"star": 6
},
{
"color": 18,
"id": 48,
"level": 130,
"star": 6
},
{
"color": 16,
"id": 46,
"level": 130,
"star": 6
},
{
"color": 9,
"id": 6000,
"level": 130,
"star": 5,
"type": "pet"
}
],
[
{
"color": 12,
"id": 49,
"level": 130,
"star": 6
},
{
"color": 15,
"id": 26,
"level": 130,
"star": 6
},
{
"color": 14,
"id": 43,
"level": 130,
"star": 6
},
{
"color": 15,
"id": 40,
"level": 130,
"star": 6
},
{
"color": 15,
"id": 10,
"level": 130,
"star": 6
},
{
"color": 7,
"id": 6002,
"level": 119,
"star": 6,
"type": "pet"
}
],
[
{
"color": 12,
"id": 2,
"level": 130,
"star": 6
},
{
"color": 16,
"id": 12,
"level": 130,
"star": 6
},
{
"color": 14,
"id": 37,
"level": 130,
"star": 6
},
{
"color": 13,
"id": 35,
"level": 130,
"star": 6
},
{
"color": 12,
"id": 4,
"level": 130,
"star": 6
},
{
"color": 7,
"id": 6005,
"level": 106,
"star": 4,
"type": "pet"
}
]
],
"grandPlace": "35",
"grandPower": "1581957",
"rewardFlag": 1,
"rewardTime": 1593216000,
"userId": "3285658",
"wins": 544
},
"win": false
}
}
}}`
func TestDoArenaAttack_GetUserDetails(t *testing.T) {
var users []*models.User
aat := new(DoArenaAttack)
aat.SetJSON(jsonBodyDoArenaAttack)
tests := []struct {
name string
x *DoArenaAttack
want []*models.User
wantErr bool
}{
{"ArenaAttackJsonBody", aat, users, false},
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := tt.x.GetUserDetails()
if (err != nil) != tt.wantErr {
t.Errorf("DoArenaAttack.GetUserDetails() error = %v, wantErr %v", err, tt.wantErr)
return
}
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("DoArenaAttack.GetUserDetails() = %v, want %v", got, tt.want)
}
})
}
}