Skip to content

Commit 2edbc65

Browse files
Merge pull request #1 from knoxfighter/feature/save-refactor
added test for factorio_save.go
2 parents e9dc110 + c92a491 commit 2edbc65

File tree

5 files changed

+233
-0
lines changed

5 files changed

+233
-0
lines changed

src/factorio_save_test.go

Lines changed: 233 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
1+
package main
2+
3+
import (
4+
"testing"
5+
)
6+
7+
func Test0_16(t *testing.T) {
8+
file, err := OpenArchiveFile("factorio_save_testfiles/test_0_16.zip", "level.dat")
9+
if err != nil {
10+
t.Fatalf("Error opening level.dat: %s", err)
11+
}
12+
defer file.Close()
13+
14+
var header SaveHeader
15+
err = header.ReadFrom(file)
16+
if err != nil {
17+
t.Fatalf("Error reading header: %s", err)
18+
}
19+
20+
testHeader := SaveHeader{
21+
FactorioVersion: Version{0,16,51,0},
22+
Campaign: "",
23+
Name: "freeplay",
24+
BaseMod: "base",
25+
Difficulty: 1,
26+
Finished: false,
27+
PlayerWon: false,
28+
NextLevel: "",
29+
CanContinue: false,
30+
FinishedButContinuing: false,
31+
SavingReplay: false,
32+
AllowNonAdminDebugOptions: true,
33+
LoadedFrom: Version{0,16,51},
34+
LoadedFromBuild: 36654,
35+
AllowedCommands: 1,
36+
Mods: []Mod {
37+
{
38+
Version: Version{0,1,3},
39+
Name: "Warehousing",
40+
},
41+
{
42+
Version: Version{0,16,51},
43+
Name: "base",
44+
},
45+
},
46+
}
47+
48+
header.Equals(testHeader, t)
49+
}
50+
51+
func Test0_15(t *testing.T) {
52+
file, err := OpenArchiveFile("factorio_save_testfiles/test_0_15.zip", "level.dat")
53+
if err != nil {
54+
t.Fatalf("Error opening level.dat: %s", err)
55+
}
56+
defer file.Close()
57+
58+
var header SaveHeader
59+
err = header.ReadFrom(file)
60+
if err != nil {
61+
t.Fatalf("Error reading header: %s", err)
62+
}
63+
64+
testHeader := SaveHeader{
65+
FactorioVersion: Version{0,15,40,0},
66+
Campaign: "",
67+
Name: "freeplay",
68+
BaseMod: "base",
69+
Difficulty: 1,
70+
Finished: false,
71+
PlayerWon: false,
72+
NextLevel: "",
73+
CanContinue: false,
74+
FinishedButContinuing: false,
75+
SavingReplay: false,
76+
LoadedFrom: Version{0,15,40},
77+
LoadedFromBuild: 30950,
78+
AllowedCommands: 1,
79+
Mods: []Mod {
80+
{
81+
Version: Version{0,0,13},
82+
Name: "Warehousing",
83+
},
84+
{
85+
Version: Version{0,15,40},
86+
Name: "base",
87+
},
88+
},
89+
}
90+
91+
header.Equals(testHeader, t)
92+
}
93+
94+
func Test0_14(t *testing.T) {
95+
file, err := OpenArchiveFile("factorio_save_testfiles/test_0_14.zip", "level.dat")
96+
if err != nil {
97+
t.Fatalf("Error opening level.dat: %s", err)
98+
}
99+
defer file.Close()
100+
101+
var header SaveHeader
102+
err = header.ReadFrom(file)
103+
if err != nil {
104+
t.Fatalf("Error reading header: %s", err)
105+
}
106+
107+
testHeader := SaveHeader{
108+
FactorioVersion: Version{0,14,23,0},
109+
Campaign: "",
110+
Name: "freeplay",
111+
BaseMod: "base",
112+
Difficulty: 1,
113+
Finished: false,
114+
PlayerWon: false,
115+
NextLevel: "",
116+
CanContinue: false,
117+
FinishedButContinuing: false,
118+
SavingReplay: false,
119+
LoadedFrom: Version{0,14,23},
120+
LoadedFromBuild: 25374,
121+
AllowedCommands: 1,
122+
Mods: []Mod {
123+
{
124+
Version: Version{0,0,11},
125+
Name: "Warehousing",
126+
},
127+
{
128+
Version: Version{0,14,23},
129+
Name: "base",
130+
},
131+
},
132+
}
133+
134+
header.Equals(testHeader, t)
135+
}
136+
137+
func Test0_13(t *testing.T) {
138+
file, err := OpenArchiveFile("factorio_save_testfiles/test_0_13.zip", "level.dat")
139+
if err != nil {
140+
t.Fatalf("Error opening level.dat: %s", err)
141+
}
142+
defer file.Close()
143+
144+
var header SaveHeader
145+
err = header.ReadFrom(file)
146+
if err != nil {
147+
t.Fatalf("Error reading header: %s", err)
148+
}
149+
150+
testHeader := SaveHeader{
151+
FactorioVersion: Version{0,13,20,0},
152+
Campaign: "",
153+
Name: "freeplay",
154+
BaseMod: "base",
155+
Difficulty: 1,
156+
Finished: false,
157+
PlayerWon: false,
158+
NextLevel: "",
159+
CanContinue: false,
160+
FinishedButContinuing: false,
161+
SavingReplay: false,
162+
LoadedFrom: Version{0,13,20},
163+
LoadedFromBuild: 24011,
164+
AllowedCommands: 1,
165+
Mods: []Mod {
166+
{
167+
Version: Version{1,1,0},
168+
Name: "Extra-Virtual-Signals",
169+
},
170+
{
171+
Version: Version{0,13,20},
172+
Name: "base",
173+
},
174+
},
175+
}
176+
177+
header.Equals(testHeader, t)
178+
}
179+
180+
func (h *SaveHeader) Equals(other SaveHeader, t *testing.T) {
181+
if h.FactorioVersion != other.FactorioVersion {
182+
t.Errorf("FactorioVersion not equal: %s --- %s", h.FactorioVersion, other.FactorioVersion)
183+
}
184+
if h.Campaign != other.Campaign {
185+
t.Errorf("Campaign not equal: %s --- %s", h.Campaign, other.Campaign)
186+
}
187+
if h.Name != other.Name {
188+
t.Errorf("Name not equal: %s --- %s", h.Name, other.Name)
189+
}
190+
if h.BaseMod != other.BaseMod {
191+
t.Errorf("BaseMod not equal: %s --- %s", h.BaseMod, other.BaseMod)
192+
}
193+
if h.Difficulty != other.Difficulty {
194+
t.Errorf("Difficulty not equal: %d --- %d", h.Difficulty, other.Difficulty)
195+
}
196+
if h.Finished != other.Finished {
197+
t.Errorf("Finished not equal: %t --- %t", h.Finished, other.Finished)
198+
}
199+
if h.PlayerWon != other.PlayerWon {
200+
t.Errorf("PlayerWon not equal: %t --- %t", h.PlayerWon, other.PlayerWon)
201+
}
202+
if h.NextLevel != other.NextLevel {
203+
t.Errorf("NextLevel not equal: %s --- %s", h.NextLevel, other.NextLevel)
204+
}
205+
if h.CanContinue != other.CanContinue {
206+
t.Errorf("CanContinue not equal: %t --- %t", h.CanContinue, other.CanContinue)
207+
}
208+
if h.FinishedButContinuing != other.FinishedButContinuing {
209+
t.Errorf("FinishedButContinuing not equal: %t --- %t", h.FinishedButContinuing, other.FinishedButContinuing)
210+
}
211+
if h.SavingReplay != other.SavingReplay {
212+
t.Errorf("SavingReplay not equal: %t --- %t", h.SavingReplay, other.SavingReplay)
213+
}
214+
if h.AllowNonAdminDebugOptions != other.AllowNonAdminDebugOptions {
215+
t.Errorf("AllowNonAdminDebugOptions not equal: %t --- %t", h.AllowNonAdminDebugOptions, other.AllowNonAdminDebugOptions)
216+
}
217+
if h.LoadedFrom != other.LoadedFrom {
218+
t.Errorf("LoadedFrom not equal: %s --- %s", h.LoadedFrom, other.LoadedFrom)
219+
}
220+
if h.LoadedFromBuild != other.LoadedFromBuild {
221+
t.Errorf("LoadedFromBuild not equal: %d --- %d", h.LoadedFromBuild, other.LoadedFromBuild)
222+
}
223+
if h.AllowedCommands != other.AllowedCommands {
224+
t.Errorf("AllowedCommands not equal: %d --- %d", h.AllowedCommands, other.AllowedCommands)
225+
}
226+
for k := range h.Mods {
227+
if h.Mods[k].Name != other.Mods[k].Name {
228+
t.Errorf("ModNames not equal: %s --- %s", h.Mods[k].Name, other.Mods[k].Name)
229+
} else if h.Mods[k].Version != other.Mods[k].Version {
230+
t.Errorf("ModVersions of Mod %s are not equal: %s --- %s", h.Mods[k].Name, h.Mods[k].Version, other.Mods[k].Version)
231+
}
232+
}
233+
}
1.68 MB
Binary file not shown.
1.44 MB
Binary file not shown.
1.53 MB
Binary file not shown.
1.55 MB
Binary file not shown.

0 commit comments

Comments
 (0)