forked from danieljoos/wincred
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
wincred_test.go
95 lines (81 loc) · 2.34 KB
/
wincred_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
// +build windows
package wincred
import (
"errors"
"testing"
"github.com/stretchr/testify/assert"
)
const (
testTargetName = "github.com/danieljoos/wincred/testing"
testTargetNameMissing = "github.com/danieljoos/wincred/missing"
testListFilter = "github.com/danieljoos*"
)
func TestGenericCredential_EndToEnd(t *testing.T) {
// 1. Create new credential `foo`
cred := NewGenericCredential(testTargetName)
cred.CredentialBlob = []byte("my secret")
cred.Persist = PersistSession
err := cred.Write()
assert.Nil(t, err)
// 2. Get the credential from the store
cred, err = GetGenericCredential(testTargetName)
assert.Nil(t, err)
assert.NotNil(t, cred)
assert.Equal(t, "my secret", string(cred.CredentialBlob))
// 3. Search it in the list
creds, err := List()
assert.Nil(t, err)
assert.NotNil(t, creds)
assert.NotEqual(t, 0, len(creds))
found := false
for i := range creds {
found = found || creds[i].TargetName == testTargetName
}
assert.True(t, found)
// 4. Search it also in a filtered list
creds, err = FilteredList(testListFilter)
assert.Nil(t, err)
assert.NotNil(t, creds)
assert.NotEqual(t, 0, len(creds))
found = false
for i := range creds {
found = found || creds[i].TargetName == testTargetName
}
assert.True(t, found)
// 5. Delete it
err = cred.Delete()
assert.Nil(t, err)
// 6. Search it again in the complete list. It should be gone.
creds, err = List()
assert.Nil(t, err)
assert.NotNil(t, creds)
found = false
for i := range creds {
found = found || creds[i].TargetName == testTargetName
}
assert.False(t, found)
}
func TestGetGenericCredential_NotFound(t *testing.T) {
cred, err := GetGenericCredential(testTargetNameMissing)
assert.Nil(t, cred)
assert.NotNil(t, err)
assert.True(t, errors.Is(err, ErrElementNotFound))
}
func TestGetGenericCredential_Empty(t *testing.T) {
cred, err := GetGenericCredential("")
assert.Nil(t, cred)
assert.NotNil(t, err)
assert.True(t, errors.Is(err, ErrInvalidParameter))
}
func TestGenericCredential_WriteEmpty(t *testing.T) {
cred := NewGenericCredential("")
err := cred.Write()
assert.NotNil(t, err)
assert.True(t, errors.Is(err, ErrInvalidParameter))
}
func TestGenericCredential_DeleteNotFound(t *testing.T) {
cred := NewGenericCredential(testTargetNameMissing)
err := cred.Delete()
assert.NotNil(t, err)
assert.True(t, errors.Is(err, ErrElementNotFound))
}