-
Notifications
You must be signed in to change notification settings - Fork 1
/
value_test.go
101 lines (91 loc) · 2.15 KB
/
value_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
package golium_test
import (
"context"
"os"
"testing"
"github.com/TelefonicaTC2Tech/golium"
)
const (
environmentPath = "./environments"
localConfFile = `
minio: true
minioEndpoint: http://miniomock:9000
`
testSHA256 = "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
testBASE64 = "dGVzdA=="
)
func TestStringTag(t *testing.T) {
s := "test string tag"
tag := golium.NewStringTag(s)
v := tag.Value(context.Background())
if v != s {
t.Errorf("expected: %s, actual: %s", s, v)
}
}
func TestSimpleNamedTag(t *testing.T) {
tcs := map[string]interface{}{
"[TRUE]": true,
"[FALSE]": false,
"[NULL]": nil,
"[EMPTY]": "",
}
ctx := context.Background()
for s, expectedValue := range tcs {
v := golium.NewNamedTag(s).Value(ctx)
if v != expectedValue {
t.Errorf("expected: %s, actual: %s", expectedValue, v)
}
}
}
func TestValuedTag(t *testing.T) {
tcs := map[string]interface{}{
"[TRUE]": true,
"[FALSE]": false,
"[NULL]": nil,
"[EMPTY]": "",
}
ctx := context.Background()
for s, expectedValue := range tcs {
v := golium.NewNamedTag(s).Value(ctx)
if v != expectedValue {
t.Errorf("expected: %s, actual: %s", expectedValue, v)
}
}
}
func TestComposedTag(t *testing.T) {
os.MkdirAll(environmentPath, os.ModePerm)
defer os.RemoveAll(environmentPath)
os.WriteFile("./environments/local.yml", []byte(localConfFile), os.ModePerm)
tcs := map[string]interface{}{
"[CONF:minio]": true,
"[NUMBER:1]": float64(1),
"[SHA256:test]": testSHA256,
"[BASE64:test]": testBASE64,
"[CTXT:test]": "contextTest",
}
for s, expectedValue := range tcs {
ctx := golium.InitializeContext(context.Background())
if s == "[CTXT:test]" {
golium.GetContext(ctx).Put(golium.ValueAsString(ctx, "test"), "contextTest")
}
v := golium.NewComposedTag(s).Value(ctx)
if v != expectedValue {
t.Errorf("expected: %s, actual: %s", expectedValue, v)
}
}
}
func TestTagWithoutChecks(t *testing.T) {
tcs := []string{
"[NOW]",
"[UUID]",
"[NOW:1s]",
"[NOW:-1:]",
"[NOW:300ms:]",
"[NOW::]",
"[NOW::unix]",
}
ctx := context.Background()
for _, s := range tcs {
_ = golium.NewComposedTag(s).Value(ctx)
}
}