-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain_test.go
113 lines (89 loc) · 3.42 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
package main
import (
"reflect"
"strings"
"testing"
)
func TestOpenAndReadFile(t *testing.T) {
validFileName := "email-config.example.json"
invalidFileName := "email-config.example.jsn"
fileContents := []byte(`{
"user": "someone@address.com",
"password": "changeMe",
"host": "mail.host.com",
"port": "587",
"sender-name": "Email Sender",
"sender-email": "sender@address.com"
}`)
validFile, err := openAndReadFile(validFileName)
if err != nil {
t.Fatalf("Error: %v", err)
}
strippedFileContents := string(strings.Replace(string(validFile), "\t", "", -1))
if string(fileContents) == strippedFileContents {
t.Logf("openAndReadFile is successful with valid file")
} else {
t.Errorf("openAndReadFile is unsuccessful, expected %v, got %v", string(fileContents), strippedFileContents)
}
_, err = openAndReadFile(invalidFileName)
if err != nil {
t.Logf("openAndReadFile fails with inexisting file")
}
}
func TestInitEmailConfig(t *testing.T) {
validEmailConfigs := EmailConfig{
User: "someone@address.com",
Password: "changeMe",
Host: "mail.host.com",
Port: "587",
SenderName: "Email Sender",
SenderEmail: "sender@address.com",
}
invalidEmailConfigs := EmailConfig{}
validFileName := "email-config.example.json"
validFile, err := openAndReadFile(validFileName)
if err != nil {
t.Fatalf("Error: %v", err)
}
validFileData, err := initEmailConfig(validFile)
if err != nil {
t.Fatalf("Error: %v", err)
}
if validFileData == validEmailConfigs {
t.Logf("initEmailConfig is successful with valid file")
} else {
t.Errorf("initEmailConfig is unsuccessful, expected %v, got %v", validEmailConfigs, validFileData)
}
inexistingFile, err := initEmailConfig(make([]byte, 0))
if inexistingFile == invalidEmailConfigs && err != nil && err.Error() == "unexpected end of JSON input" {
t.Logf("initEmailConfig fails with inexisting file")
} else {
t.Errorf("initEmailConfig is unsuccessful, expected %v, got %v", invalidEmailConfigs, inexistingFile)
}
}
func TestInitEmailVariables(t *testing.T) {
validEmailVariables := EmailVariables{
Variables: []map[string]interface{}{0: {"RecipientName": "Email Receiver", "RecipientEmail": "receiver-1@another-address.com", "Variable1": "Value1", "Variable2": "Value2"}, 1: {"RecipientName": "Email Receiver", "RecipientEmail": "receiver-2@another-address.com", "Variable1": "Value1", "Variable2": "Value2"}, 2: {"RecipientName": "Email Receiver", "RecipientEmail": "receiver-3@another-address.com", "Variable1": "Value1", "Variable2": "Value2"}},
}
invalidEmailVariables := EmailVariables{}
validFileName := "email-data.example.json"
validFile, err := openAndReadFile(validFileName)
if err != nil {
t.Fatalf("Error: %v", err)
}
validFileData, err := initEmailVariables(validFile)
if err != nil {
t.Fatalf("Error: %v", err)
}
if reflect.DeepEqual(validFileData, validEmailVariables) {
t.Logf("initEmailVariables is successful with valid file")
} else {
t.Errorf("initEmailVariables is unsuccessful, expected %v, got %v", validEmailVariables, validFileData)
}
inexistingFile, err := initEmailVariables(make([]byte, 0))
if reflect.DeepEqual(inexistingFile, invalidEmailVariables) && err != nil && err.Error() == "unexpected end of JSON input" {
t.Logf("initEmailVariables fails with inexisting file")
} else {
t.Errorf("initEmailVariables is unsuccessful, expected %v, got %v", invalidEmailVariables, inexistingFile)
}
}