-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplatser_test.go
More file actions
161 lines (130 loc) · 3.82 KB
/
Copy pathplatser_test.go
File metadata and controls
161 lines (130 loc) · 3.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
//-*- coding: utf-8 -*-
package main
import (
"database/sql"
"strconv"
"testing"
)
func platserInit(t *testing.T, filnamn string) *sql.DB {
// Förberedelser
if JetDBSupport {
t.Log("Jet Supported.")
var filename = "got" + filnamn + ".mdb"
SkapaTomMDB(t, filename)
db = openJetDB(filename, false)
} else {
t.Log("Jet NOT Supported.")
var filename = "got" + filnamn + ".db"
SkapaTomDB(filename)
db = openSqlite(filename)
}
if db == nil {
t.Fatal("Ingen databas.")
}
return db
}
func TestPlatserTomDB1(t *testing.T) {
db = platserInit(t, "pl1")
// Denna testen
antal := antalPlatser(db)
if antal != 0 {
t.Error("Antal platser != 0.")
} else {
t.Log("Antal platser ok.")
}
closeDB()
}
func TestPlatserDB1(t *testing.T) {
db = platserInit(t, "pl2")
// Denna testen
_ = skapaPlats(db, "Platsnamnet", "12345-7", false, "")
antal := antalPlatser(db)
if antal != 1 {
t.Error("Antal platser != 1.")
} else {
t.Log("Antal platser ok.")
}
closeDB()
}
func TestPlatserDB2(t *testing.T) {
db = platserInit(t, "pl3")
// Denna testen
_ = skapaPlats(db, "Platsnamn1", "12345-7", false, "")
_ = skapaPlats(db, "Platsnamn2", "", false, "")
_ = skapaPlats(db, "Platsnamn3", "", false, "")
_ = skapaPlats(db, "Platsnamn4", "12345-7", true, "")
antal := antalPlatser(db)
if antal != 4 {
t.Error("Antal platser != 4.")
} else {
t.Log("Antal platser ok.")
}
closeDB()
}
func TestPlatserDB3(t *testing.T) {
db = platserInit(t, "pl4")
// Denna testen
namn := "Tom € Räksmörgås"
gironummer := "12345-7"
kontokort := false
_ = skapaPlats(db, namn, gironummer, kontokort, "")
plats := hämtaPlats(db, 1)
if plats.Namn != namn {
t.Error("Platsnamn '" + namn + "' != '" + plats.Namn + "'.")
} else {
t.Log("Test namn ok.")
}
if plats.Gironummer != gironummer {
t.Error("Plats gironummer '" + gironummer + "' != '" + plats.Gironummer + "'.")
} else {
t.Log("Test gironummer ok.")
}
if plats.Typ != kontokort {
t.Error("Plats kontokort '" + strconv.FormatBool(kontokort) + "' != '" + strconv.FormatBool(plats.Typ) + "'.")
} else {
t.Log("Test kontokort ok.")
}
namn = "Tom2 € Räksmörgås"
gironummer = " "
kontokort = false
_ = skapaPlats(db, namn, gironummer, kontokort, "")
plats = hämtaPlats(db, 2)
if plats.Namn != namn {
t.Error("Platsnamn '" + namn + "' != '" + plats.Namn + "'.")
} else {
t.Log("Test namn ok.")
}
if plats.Gironummer != gironummer {
t.Error("Plats gironummer '" + gironummer + "' != '" + plats.Gironummer + "'.")
} else {
t.Log("Test gironummer ok.")
}
if plats.Typ != kontokort {
t.Error("Plats kontokort '" + strconv.FormatBool(kontokort) + "' != '" + strconv.FormatBool(plats.Typ) + "'.")
} else {
t.Log("Test kontokort ok.")
}
closeDB()
}
func TestPlatserDB4(t *testing.T) {
db = platserInit(t, "pl5")
// Denna testen
namn := "Tom € Räksmörgås"
gironummer := "12345-7"
kontokort := false
_ = skapaPlats(db, namn, gironummer, kontokort, "")
// TODO: skapaPlats(namn, gironummer, kontokort, "") // This should fail and report error due to duplicated name
antal := antalPlatser(db)
if antal != 1 {
t.Error("Antal platser != 1.")
} else {
t.Log("Antal platser ok.")
}
closeDB()
}
// TODO: skapaplats borde validera gironummer.
// 123-4 felaktigt
// 123-0 ok
// Ett bankgironummer består av 7 eller 8 siffror och den sista siffran i numret är en kontrollsiffra som beräknas enligt Luhn-algoritmen, dvs enligt samma princip som beräkning av kontrollsiffran till svenska personnummer och organisationsnummer (som vi tagit upp i tidigare blogginlägg). Ett plusgironummer består av 2 till 8 siffror och även här består den sista siffran av en kontrollsiffra som beräknas enligt Luhn-algoritmen.
// TODO: Plats klassad som "Kontokortsföretag" ska ha Konto definierat
// TODO: Flaggan Kontokortsföretag ska inte påverka kolumnen Typ