forked from Sifr-Labs-2020-Interns/IOE-electricity-cost
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain_test.go
127 lines (95 loc) · 6.21 KB
/
main_test.go
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
package main
import (
"testing"
"github.com/Sifr-Labs-2020-Interns/IOE-electricity-cost/connection"
_ "github.com/go-sql-driver/mysql"
)
func init() {
// Connecting to the test database
conn = connection.ConnectToDB("IOE", "", "ioe", "3306")
// Adding an admin into the DB
query, err := conn.Prepare("INSERT INTO admins (`ADMIN_NAME`,`EMAIL_ID`, `USERNAME`, `PASSWORD`, `ADMIN_KEY`) VALUES (?,?,?,?,?)")
if err != nil {
panic(err.Error())
}
query.Exec("Jack Black", "jb12@gmail.com", "jbl", "jackbl", "ETU3rSTYCnqM51lsgiZMXI5Y4B4sDNxBodsnaImKBgesNcbpf09JbwnFKurCL5zObqihGyDJEJrLXZxPXjvYM1Pe1psqbh4jpHADxjSZYZ8Pey2loQDByDBzdtYyDp8skkD7c3M5tVwWGSzu05zoJxOA8scQtwbgryFhErrGHKTAvUQ3hbRgnOEaj191mP4A7swVOQKqorU8OBTrlmj6W49IPzd0Cp85ZJKtXb4H1HVzR9v39wLFzBeaRGjOQ0EKIGdy3iiKzzLZeIKzy58PjgK2UF8aDw3YaRU9TJILy4q93xNBQJA9xh59HZ3mqJGUfyEUOC15sqEimxPflwrurewHBrc0GO1AjBYwYw4fLOmzgXUXrPBjCsxpTtHkDXzIdf9FqSG4q5BqmdqsDVU5FGcllHvKmhb9Gm2U9DHRniNJ9bLwLMNX1DpIQxBrgrT1Bnzrn1o80fDOqZwSc8KjRWzQpqxxbchlEQCqH8fz12KABRSPzs0k")
// Adding a user into the DB
query, err = conn.Prepare("INSERT INTO users (`NAME`,`EMAIL_ID`, `USERNAME`, `PASSWORD`,`USER_KEY`) VALUES(?,?,?,?,?)")
if err != nil {
panic(err.Error())
}
query.Exec("Chris George", "chrisg@gmail.com", "chrisg1", "MyNameIsChris", "ETU3rSTYCnqM51lsgiZMXI5Y4B4sDNxBodsnaImKBgesNcbpf09JbwnFKurCL5zObqihGyDJEJrLXZxPXjvYM1Pe1psqbh4jpHADxjSZYZ8Pey2loQDByDBzdtYyDp8skkD7c3M5tVwWGSzu05zoJxOA8scQtwbgryFhErrGHKTAvUQ3hbRgnOEaj191mP4A7swVOQKqorU8OBTrlmj6W49IPzd0Cp85ZJKtXb4H1HVzR9v39wLFzBeaRGjOQ0EKIGdy3iiKzzLZeIKzy58PjgK2UF8aDw3YaRU9TJILy4q93xNBQJA9xh59HZ3mqJGUfyEUOC15sqEimxPflwrurewHBrc0GO1AjBYwYw4fLOmzgXUXrPBjCsxpTtHkDXzIdf9FqSG4q5BqmdqsDVU5FGcllHvKmhb9Gm2U9DHRniNJ9bLwLMNX1DpIQxBrgrT1Bnzrn1o80fDOqZwSc8KjRWzQpqxxbchlEQCqH8fz12KABRSPzs0k")
}
func TestConvertToJSON(t *testing.T) {
tables := []struct {
mappedMsg map[string]string
jsonMsg string
}{
{map[string]string{"Message": "Hello World"}, `{"Message":"Hello World"}`},
{map[string]string{"Name": "Tony", "Age": "30"}, `{"Age":"30","Name":"Tony"}`},
}
for _, table := range tables {
if result := convertToJSON(table.mappedMsg); result != table.jsonMsg {
t.Errorf("result was incorrect, got: %s, want: %s.", result, table.jsonMsg)
}
}
}
func TestIsValidKey(t *testing.T) {
key := "ETU3rSTYCnqM51lsgiZMXI5Y4B4sDNxBodsnaImKBgesNcbpf09JbwnFKurCL5zObqihGyDJEJrLXZxPXjvYM1Pe1psqbh4jpHADxjSZYZ8Pey2loQDByDBzdtYyDp8skkD7c3M5tVwWGSzu05zoJxOA8scQtwbgryFhErrGHKTAvUQ3hbRgnOEaj191mP4A7swVOQKqorU8OBTrlmj6W49IPzd0Cp85ZJKtXb4H1HVzR9v39wLFzBeaRGjOQ0EKIGdy3iiKzzLZeIKzy58PjgK2UF8aDw3YaRU9TJILy4q93xNBQJA9xh59HZ3mqJGUfyEUOC15sqEimxPflwrurewHBrc0GO1AjBYwYw4fLOmzgXUXrPBjCsxpTtHkDXzIdf9FqSG4q5BqmdqsDVU5FGcllHvKmhb9Gm2U9DHRniNJ9bLwLMNX1DpIQxBrgrT1Bnzrn1o80fDOqZwSc8KjRWzQpqxxbchlEQCqH8fz12KABRSPzs0k"
if result := isValidKey(key); result == false {
t.Errorf("result was incorrect, got %t want %t", result, true)
}
}
func TestGetRandomString(t *testing.T) {
key := getRandomString(500)
if result := isValidKey(key); result == false {
t.Errorf("result was incorrect, got %t want %t", result, true)
}
}
func TestIsValidAdmin(t *testing.T) {
adminKey := "ETU3rSTYCnqM51lsgiZMXI5Y4B4sDNxBodsnaImKBgesNcbpf09JbwnFKurCL5zObqihGyDJEJrLXZxPXjvYM1Pe1psqbh4jpHADxjSZYZ8Pey2loQDByDBzdtYyDp8skkD7c3M5tVwWGSzu05zoJxOA8scQtwbgryFhErrGHKTAvUQ3hbRgnOEaj191mP4A7swVOQKqorU8OBTrlmj6W49IPzd0Cp85ZJKtXb4H1HVzR9v39wLFzBeaRGjOQ0EKIGdy3iiKzzLZeIKzy58PjgK2UF8aDw3YaRU9TJILy4q93xNBQJA9xh59HZ3mqJGUfyEUOC15sqEimxPflwrurewHBrc0GO1AjBYwYw4fLOmzgXUXrPBjCsxpTtHkDXzIdf9FqSG4q5BqmdqsDVU5FGcllHvKmhb9Gm2U9DHRniNJ9bLwLMNX1DpIQxBrgrT1Bnzrn1o80fDOqZwSc8KjRWzQpqxxbchlEQCqH8fz12KABRSPzs0k"
result := isValid(adminKey, "select count(admin_key) as admin from admins where admin_key=?")
if result == false {
t.Errorf("result was incorrect. The given admin key was not found in the database. isValid returned: %t, want: %t", result, true)
}
}
func TestIsValidUser(t *testing.T) {
result := isValid("chrisg1", "select count(username) as users from users where username=?")
if result == false {
t.Errorf("Result was incorrect. The given username was not found in the database. isValid returned: %t, want: %t", result, true)
}
}
func TestAddUser(t *testing.T) {
var newUser NewUser
newUser.AdminKey = "ETU3rSTYCnqM51lsgiZMXI5Y4B4sDNxBodsnaImKBgesNcbpf09JbwnFKurCL5zObqihGyDJEJrLXZxPXjvYM1Pe1psqbh4jpHADxjSZYZ8Pey2loQDByDBzdtYyDp8skkD7c3M5tVwWGSzu05zoJxOA8scQtwbgryFhErrGHKTAvUQ3hbRgnOEaj191mP4A7swVOQKqorU8OBTrlmj6W49IPzd0Cp85ZJKtXb4H1HVzR9v39wLFzBeaRGjOQ0EKIGdy3iiKzzLZeIKzy58PjgK2UF8aDw3YaRU9TJILy4q93xNBQJA9xh59HZ3mqJGUfyEUOC15sqEimxPflwrurewHBrc0GO1AjBYwYw4fLOmzgXUXrPBjCsxpTtHkDXzIdf9FqSG4q5BqmdqsDVU5FGcllHvKmhb9Gm2U9DHRniNJ9bLwLMNX1DpIQxBrgrT1Bnzrn1o80fDOqZwSc8KjRWzQpqxxbchlEQCqH8fz12KABRSPzs0k"
newUser.EmailID = "bb10@yahoo.com"
newUser.Name = "Bruce Banner"
newUser.Username = "hulk"
newUser.Password = "hulk_smash"
adduser(newUser)
if result := isValid("hulk", "select count(username) as users from users where username=?"); result == false {
t.Errorf("%s could not be added to the database", newUser.Username)
}
}
func TestRemoveUser(t *testing.T) {
var userToRemove RemoveUser
userToRemove.AdminKey = "ETU3rSTYCnqM51lsgiZMXI5Y4B4sDNxBodsnaImKBgesNcbpf09JbwnFKurCL5zObqihGyDJEJrLXZxPXjvYM1Pe1psqbh4jpHADxjSZYZ8Pey2loQDByDBzdtYyDp8skkD7c3M5tVwWGSzu05zoJxOA8scQtwbgryFhErrGHKTAvUQ3hbRgnOEaj191mP4A7swVOQKqorU8OBTrlmj6W49IPzd0Cp85ZJKtXb4H1HVzR9v39wLFzBeaRGjOQ0EKIGdy3iiKzzLZeIKzy58PjgK2UF8aDw3YaRU9TJILy4q93xNBQJA9xh59HZ3mqJGUfyEUOC15sqEimxPflwrurewHBrc0GO1AjBYwYw4fLOmzgXUXrPBjCsxpTtHkDXzIdf9FqSG4q5BqmdqsDVU5FGcllHvKmhb9Gm2U9DHRniNJ9bLwLMNX1DpIQxBrgrT1Bnzrn1o80fDOqZwSc8KjRWzQpqxxbchlEQCqH8fz12KABRSPzs0k"
userToRemove.Username = "hulk"
removeuser(userToRemove)
if result := isValid("hulk", "select count(username) as users from users where username=?"); result == true {
t.Errorf("%s is still the database", userToRemove.Username)
}
}
func TestCleanUp(t *testing.T) {
// Removing the admin and user that was added in the init function from the DB
query, err := conn.Prepare("DELETE FROM admins WHERE username = ?")
if err != nil {
panic(err.Error())
}
query.Exec("jbl")
query, err = conn.Prepare("DELETE FROM users WHERE username = ?")
if err != nil {
panic(err.Error())
}
query.Exec("chrisg1")
}