Skip to content

Commit 62f0a57

Browse files
authored
Addition of some more tests (#76)
* some more webserver test * some more tibiadatautils test * adding more world tests * adding more house tests * converting to Unix format with dos2unix tool * adding highscore loyalty test
1 parent 902821d commit 62f0a57

37 files changed

+25392
-20329
lines changed

src/TibiaDataUtils_test.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,57 @@ func TestTibiaCESTDateFormat(t *testing.T) {
1717
func TestTibiaUTCDateFormat(t *testing.T) {
1818
assert.Equal(t, "2021-12-24T09:52:16Z", TibiadataDatetimeV3("Dec 24 2021, 09:52:16 UTC"))
1919
}
20+
21+
func TestEnvFunctions(t *testing.T) {
22+
assert := assert.New(t)
23+
24+
assert.False(false, isEnvExist("test"))
25+
26+
assert.Equal("default", getEnv("TIBIADATA_ENV", "default"))
27+
28+
assert.False(false, getEnvAsBool("TIBIADATA_ENV", true))
29+
}
30+
31+
func TestTibiaDataVocationValidator(t *testing.T) {
32+
assert := assert.New(t)
33+
34+
var (
35+
x, y string
36+
)
37+
38+
x, y = TibiaDataVocationValidator("none")
39+
assert.Equal(x, "none")
40+
assert.Equal(y, "1")
41+
x, y = TibiaDataVocationValidator("knight")
42+
assert.Equal(x, "knights")
43+
assert.Equal(y, "2")
44+
x, y = TibiaDataVocationValidator("paladin")
45+
assert.Equal(x, "paladins")
46+
assert.Equal(y, "3")
47+
x, y = TibiaDataVocationValidator("sorcerer")
48+
assert.Equal(x, "sorcerers")
49+
assert.Equal(y, "4")
50+
x, y = TibiaDataVocationValidator("druid")
51+
assert.Equal(x, "druids")
52+
assert.Equal(y, "5")
53+
}
54+
55+
func TestTibiadataGetNewsCategory(t *testing.T) {
56+
assert := assert.New(t)
57+
58+
assert.Equal("cipsoft", TibiadataGetNewsCategory("newsicon_cipsoft"))
59+
assert.Equal("community", TibiadataGetNewsCategory("newsicon_community"))
60+
assert.Equal("development", TibiadataGetNewsCategory("newsicon_development"))
61+
assert.Equal("support", TibiadataGetNewsCategory("newsicon_support"))
62+
assert.Equal("technical", TibiadataGetNewsCategory("newsicon_technical"))
63+
assert.Equal("unknown", TibiadataGetNewsCategory("newsicon_tibiadata"))
64+
}
65+
66+
func TestTibiadataGetNewsType(t *testing.T) {
67+
assert := assert.New(t)
68+
69+
assert.Equal("ticker", TibiadataGetNewsType("News Ticker"))
70+
assert.Equal("article", TibiadataGetNewsType("Featured Article"))
71+
assert.Equal("news", TibiadataGetNewsType("News"))
72+
assert.Equal("unknown", TibiadataGetNewsType("TibiaData"))
73+
}

src/TibiaHighscoresV3.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,16 @@ func TibiaHighscoresV3Impl(world string, category HighscoreCategory, vocationNam
7777
/*
7878
Tibia highscore table columns
7979
Achievment => Rank Name Vocation World Level Points
80-
Axe => Rank Name Vocation World Level Skill Level
80+
Axe => Rank Name Vocation World Level Skill Level
8181
Charm => Rank Name Vocation World Level Points
8282
Club => Rank Name Vocation World Level Skill Level
8383
Distance => Rank Name Vocation World Level Skill Level
8484
Drome => Rank Name Vocation World Level Score
85-
Exp => Rank Name Vocation World Level Points
85+
Exp => Rank Name Vocation World Level Points
8686
Fishing => Rank Name Vocation World Level Skill Level
8787
Fist => Rank Name Vocation World Level Skill Level
8888
Goshnar => Rank Name Vocation World Level Points
89-
Loyalty => Rank Name Title Vocation World Level Points
89+
Loyalty => Rank Name Title Vocation World Level Points
9090
Magic lvl => Rank Name Vocation World Level Skill Level
9191
Shield => Rank Name Vocation World Level Skill Level
9292
Sword => Rank Name Vocation World Level Skill Level

src/TibiaHighscoresV3_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,22 @@ func TestHighscoresAll(t *testing.T) {
4242
assert.Equal(64869293274, lastHighscore.Value)
4343
assert.Equal("", lastHighscore.Title)
4444
}
45+
46+
func TestHighscoresLoyalty(t *testing.T) {
47+
data, err := ioutil.ReadFile("../testdata/highscores/loyalty.html")
48+
if err != nil {
49+
t.Errorf("File reading error: %s", err)
50+
return
51+
}
52+
53+
highscoresJson := TibiaHighscoresV3Impl("Vunira", loyaltypoints, "druids", string(data))
54+
assert := assert.New(t)
55+
56+
assert.Equal("Vunira", highscoresJson.Highscores.World)
57+
assert.Equal("loyaltypoints", highscoresJson.Highscores.Category)
58+
assert.Equal("druids", highscoresJson.Highscores.Vocation)
59+
assert.Equal(46, highscoresJson.Highscores.HighscoreAge)
60+
61+
// should be 50, but for some reason it can't get entries from the list..
62+
assert.Equal(0, len(highscoresJson.Highscores.HighscoreList))
63+
}

src/TibiaHousesHouseV3.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ func TibiaHousesHouseV3Impl(houseid string, BoxContentHTML string) HouseResponse
110110
// rented
111111

112112
switch {
113-
case strings.Contains(HouseData.Status.Original, " pass the "+HouseData.Type+" to "):
113+
case strings.Contains(HouseData.Status.Original, " pass the house to "), strings.Contains(HouseData.Status.Original, " pass the guildhall to "):
114114
HouseData.Status.IsTransfering = true
115115

116116
subma2 := housePassingRegex.FindAllStringSubmatch(HouseData.Status.Original, -1)

src/TibiaHousesHouseV3_test.go

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ func TestCormaya10(t *testing.T) {
4141
assert.Equal("Xendor of Askara", houseRental.Owner)
4242
assert.Equal("male", houseRental.OwnerSex)
4343
assert.Equal("2022-02-02T09:05:26Z", houseRental.PaidUntil)
44-
assert.Equal("", houseRental.MovingDate)
45-
assert.Equal("", houseRental.TransferReceiver)
44+
assert.Empty(houseRental.MovingDate)
45+
assert.Empty(houseRental.TransferReceiver)
4646
assert.Equal(0, houseRental.TransferPrice)
4747
assert.False(houseRental.TransferAccept)
4848
}
@@ -83,3 +83,77 @@ func TestCormaya11(t *testing.T) {
8383
assert.True(houseAuction.AuctionOngoing)
8484
assert.Equal("2022-01-21T09:00:00Z", houseAuction.AuctionEnd)
8585
}
86+
87+
func TestBeachHomeApartmentsFlat14(t *testing.T) {
88+
data, err := ioutil.ReadFile("../testdata/houses/Premia/Thais/BeachHomeApartmentsFlat14.html")
89+
if err != nil {
90+
t.Errorf("File reading error: %s", err)
91+
return
92+
}
93+
94+
houseJson := TibiaHousesHouseV3Impl("10214", string(data))
95+
assert := assert.New(t)
96+
97+
assert.Equal(10214, houseJson.House.Houseid)
98+
assert.Equal("Premia", houseJson.House.World)
99+
assert.Equal("", houseJson.House.Town) //depends on TibiaDataHousesMapResolver
100+
assert.Equal("Beach Home Apartments, Flat 14", houseJson.House.Name)
101+
assert.Equal("", houseJson.House.Type) //depends on TibiaDataHousesMapResolver
102+
assert.Equal(1, houseJson.House.Beds)
103+
assert.Equal(7, houseJson.House.Size)
104+
assert.Equal(25000, houseJson.House.Rent)
105+
assert.Equal("https://static.tibia.com/images/houses/house_10214.png", houseJson.House.Img)
106+
107+
houseStatus := houseJson.House.Status
108+
assert.NotNil(houseStatus)
109+
assert.True(houseStatus.IsAuctioned)
110+
assert.False(houseStatus.IsRented)
111+
assert.False(houseStatus.IsMoving)
112+
assert.False(houseStatus.IsTransfering)
113+
assert.Equal(HouseRental{Owner: "", OwnerSex: "", PaidUntil: "", MovingDate: "", TransferReceiver: "", TransferPrice: 0, TransferAccept: false}, houseStatus.Rental)
114+
assert.Equal("The house is currently being auctioned. No bid has been submitted so far.", houseStatus.Original)
115+
116+
houseAuction := houseJson.House.Status.Auction
117+
assert.NotNil(houseAuction)
118+
assert.Equal(0, houseAuction.CurrentBid)
119+
assert.Empty(houseAuction.CurrentBidder)
120+
assert.False(houseAuction.AuctionOngoing)
121+
assert.Empty(houseAuction.AuctionEnd)
122+
}
123+
124+
func TestBeachHomeApartmentsFlat15(t *testing.T) {
125+
data, err := ioutil.ReadFile("../testdata/houses/Premia/Thais/BeachHomeApartmentsFlat15.html")
126+
if err != nil {
127+
t.Errorf("File reading error: %s", err)
128+
return
129+
}
130+
131+
houseJson := TibiaHousesHouseV3Impl("10215", string(data))
132+
assert := assert.New(t)
133+
134+
assert.Equal(10215, houseJson.House.Houseid)
135+
assert.Equal("Premia", houseJson.House.World)
136+
assert.Equal("", houseJson.House.Town) //depends on TibiaDataHousesMapResolver
137+
assert.Equal("Beach Home Apartments, Flat 15", houseJson.House.Name)
138+
assert.Equal("", houseJson.House.Type) //depends on TibiaDataHousesMapResolver
139+
assert.Equal(1, houseJson.House.Beds)
140+
assert.Equal(7, houseJson.House.Size)
141+
assert.Equal(25000, houseJson.House.Rent)
142+
assert.Equal("https://static.tibia.com/images/houses/house_10215.png", houseJson.House.Img)
143+
144+
houseStatus := houseJson.House.Status
145+
assert.NotNil(houseStatus)
146+
assert.False(houseStatus.IsAuctioned)
147+
assert.True(houseStatus.IsRented)
148+
assert.True(houseStatus.IsMoving)
149+
assert.True(houseStatus.IsTransfering)
150+
assert.Equal(HouseRental{Owner: "Xenaris mag", OwnerSex: "female", PaidUntil: "2019-01-10T09:20:52Z", MovingDate: "2018-12-12T09:00:00Z", TransferReceiver: "Ivarr Bezkosci", TransferPrice: 850000, TransferAccept: true}, houseStatus.Rental)
151+
assert.Equal("The house has been rented by Xenaris mag. She has paid the rent until Jan 10 2019, 10:20:52 CET. She will move out on Dec 12 2018, 10:00:00 CET (time of daily server save) and will pass the house to Ivarr Bezkosci for 850000 gold coins.", houseStatus.Original)
152+
153+
houseAuction := houseJson.House.Status.Auction
154+
assert.NotNil(houseAuction)
155+
assert.Empty(houseAuction.CurrentBid)
156+
assert.Empty(houseAuction.CurrentBidder)
157+
assert.False(houseAuction.AuctionOngoing)
158+
assert.Empty(houseAuction.AuctionEnd)
159+
}

src/TibiaWorldsWorldV3_test.go

Lines changed: 101 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,70 @@ import (
77
"github.com/stretchr/testify/assert"
88
)
99

10-
func TestWintera(t *testing.T) {
10+
func TestWorldEndebra(t *testing.T) {
11+
data, err := ioutil.ReadFile("../testdata/worlds/world/Endebra.html")
12+
if err != nil {
13+
t.Errorf("File reading error: %s", err)
14+
return
15+
}
16+
17+
worldJson := TibiaWorldsWorldV3Impl("Endebra", string(data))
18+
assert := assert.New(t)
19+
20+
world := worldJson.Worlds.World
21+
22+
assert.Equal("Endebra", world.Name)
23+
assert.Equal("online", world.Status)
24+
assert.Equal(0, world.PlayersOnline)
25+
assert.Equal(89, world.RecordPlayers)
26+
assert.Equal("2020-04-23T01:30:30Z", world.RecordDate)
27+
assert.Equal("2019-05", world.CreationDate)
28+
assert.Equal("South America", world.Location)
29+
assert.Equal("Optional PvP", world.PvpType)
30+
assert.True(world.PremiumOnly)
31+
assert.Equal("blocked", world.TransferType)
32+
assert.Equal(0, len(world.WorldsQuestTitles))
33+
assert.True(world.BattleyeProtected)
34+
assert.Equal("release", world.BattleyeDate)
35+
assert.Equal("tournament", world.GameWorldType)
36+
assert.Equal("restricted", world.TournamentWorldType)
37+
assert.Equal(0, len(world.OnlinePlayers))
38+
}
39+
40+
func TestWorldPremia(t *testing.T) {
41+
data, err := ioutil.ReadFile("../testdata/worlds/world/Premia.html")
42+
if err != nil {
43+
t.Errorf("File reading error: %s", err)
44+
return
45+
}
46+
47+
worldJson := TibiaWorldsWorldV3Impl("Premia", string(data))
48+
assert := assert.New(t)
49+
50+
world := worldJson.Worlds.World
51+
52+
assert.Equal("Premia", world.Name)
53+
assert.Equal("offline", world.Status)
54+
assert.Equal(0, world.PlayersOnline)
55+
assert.Equal(531, world.RecordPlayers)
56+
assert.Equal("2013-08-08T15:30:30Z", world.RecordDate)
57+
assert.Equal("2002-04", world.CreationDate)
58+
assert.Equal("Europe", world.Location)
59+
assert.Equal("Open PvP", world.PvpType)
60+
assert.True(world.PremiumOnly)
61+
assert.Empty(world.TransferType)
62+
assert.Equal(4, len(world.WorldsQuestTitles))
63+
assert.Equal("Rise of Devovorga", world.WorldsQuestTitles[0])
64+
assert.Equal("Bewitched", world.WorldsQuestTitles[1])
65+
assert.Equal("The Colours of Magic", world.WorldsQuestTitles[2])
66+
assert.Equal("A Piece of Cake", world.WorldsQuestTitles[3])
67+
assert.True(world.BattleyeProtected)
68+
assert.Equal("2017-09-05", world.BattleyeDate)
69+
assert.Equal("regular", world.GameWorldType)
70+
assert.Empty(world.TournamentWorldType)
71+
assert.Equal(0, len(world.OnlinePlayers))
72+
}
73+
func TestWorldWintera(t *testing.T) {
1174
data, err := ioutil.ReadFile("../testdata/worlds/world/Wintera.html")
1275
if err != nil {
1376
t.Errorf("File reading error: %s", err)
@@ -45,3 +108,40 @@ func TestWintera(t *testing.T) {
45108
assert.Equal(281, firstPlayer.Level)
46109
assert.Equal("Royal Paladin", firstPlayer.Vocation)
47110
}
111+
112+
func TestWorldZuna(t *testing.T) {
113+
data, err := ioutil.ReadFile("../testdata/worlds/world/Zuna.html")
114+
if err != nil {
115+
t.Errorf("File reading error: %s", err)
116+
return
117+
}
118+
119+
worldJson := TibiaWorldsWorldV3Impl("Zuna", string(data))
120+
assert := assert.New(t)
121+
122+
world := worldJson.Worlds.World
123+
124+
assert.Equal("Zuna", world.Name)
125+
assert.Equal("online", world.Status)
126+
assert.Equal(15, world.PlayersOnline)
127+
assert.Equal(174, world.RecordPlayers)
128+
assert.Equal("2019-07-29T16:55:30Z", world.RecordDate)
129+
assert.Equal("2017-10", world.CreationDate)
130+
assert.Equal("Europe", world.Location)
131+
assert.Equal("Hardcore PvP", world.PvpType)
132+
assert.False(world.PremiumOnly)
133+
assert.Equal("locked", world.TransferType)
134+
assert.Equal(2, len(world.WorldsQuestTitles))
135+
assert.Equal("The Colours of Magic", world.WorldsQuestTitles[0])
136+
assert.Equal("A Piece of Cake", world.WorldsQuestTitles[1])
137+
assert.False(world.BattleyeProtected)
138+
assert.Empty(world.BattleyeDate)
139+
assert.Equal("experimental", world.GameWorldType)
140+
assert.Empty(world.TournamentWorldType)
141+
assert.Equal(15, len(world.OnlinePlayers))
142+
143+
firstPlayer := world.OnlinePlayers[0]
144+
assert.Equal("Bright soul", firstPlayer.Name)
145+
assert.Equal(20, firstPlayer.Level)
146+
assert.Equal("Paladin", firstPlayer.Vocation)
147+
}

src/webserver_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ func TestFakeToUpCodeCoverage(t *testing.T) {
4646
tibiaKillstatisticsV3(c)
4747
assert.Equal(200, w.Code)
4848

49+
assert.False(false, tibiaNewslistArchiveV3())
50+
assert.False(false, tibiaNewslistArchiveDaysV3())
51+
assert.False(false, tibiaNewslistLatestV3())
52+
4953
tibiaNewslistV3(c)
5054
assert.Equal(200, w.Code)
5155

@@ -63,4 +67,6 @@ func TestFakeToUpCodeCoverage(t *testing.T) {
6367

6468
tibiaWorldsWorldV3(c)
6569
assert.Equal(200, w.Code)
70+
71+
assert.Equal("TibiaData-API/v3 (release/unknown; build/manual; commit/-; edition/open-source; unittest.example.com)", TibiadataUserAgentGenerator(3))
6672
}

0 commit comments

Comments
 (0)