-
Notifications
You must be signed in to change notification settings - Fork 0
/
main_test.go
65 lines (56 loc) · 1.53 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
package main
import (
"testing"
"github.com/aws/aws-sdk-go/service/ssm"
"github.com/aws/aws-sdk-go/service/ssm/ssmiface"
)
type mockSSMClient struct {
ssmiface.SSMAPI
}
var mockedParameter = parameter{
name: "/dev/example/value",
value: "myvalue",
element: "{{/dev/example/value}}",
}
var mockedParameters = []parameter{
mockedParameter,
}
var mockedText = "value={{/dev/example/value}}"
func (m *mockSSMClient) GetParameter(input *ssm.GetParameterInput) (*ssm.GetParameterOutput, error) {
output := ssm.GetParameterOutput{
Parameter: &ssm.Parameter{
Name: &mockedParameter.name,
Value: &mockedParameter.value,
},
}
return &output, nil
}
func TestFetchParametersFromSSM(t *testing.T) {
client = &mockSSMClient{}
value := fetchParametersFromSSM(mockedParameter.name)
if value != mockedParameter.value {
t.Errorf("Value did not match, expected %s, found %s", mockedParameter.value, value)
}
}
func TestFetchParameters(t *testing.T) {
parameters := fetchParameters(mockedText)
if len(parameters) == 0 {
t.Error("Parameters were not retrieved correctly, expected >0, found =0")
}
for _, parameter := range parameters {
if parameter.name != mockedParameter.name {
t.Error("Name did not match")
}
if parameter.element != mockedParameter.element {
t.Error("Element did not match")
}
if parameter.value != mockedParameter.value {
t.Error("Value did not match")
}
}
}
func TestRetrieved(t *testing.T) {
if !retrieved(mockedParameter.name, mockedParameters) {
t.Error("Expected retrieved value")
}
}