forked from DependencyTrack/client-go
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathldap_test.go
More file actions
103 lines (88 loc) · 2.95 KB
/
ldap_test.go
File metadata and controls
103 lines (88 loc) · 2.95 KB
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
package dtrack
import (
"context"
"testing"
"github.com/stretchr/testify/require"
)
func TestLdapMappings(t *testing.T) {
// 1. Confirm absence of mappings
// 2. Add mapping
// 3. Confirm presence of mapping
// 4. Remove mapping
// 5. Confirm absence of mapping
client := setUpContainer(t, testContainerOptions{
APIPermissions: []string{
PermissionAccessManagement,
},
})
team, err := client.Team.Create(context.Background(), Team{
Name: "TestLdapMappings",
})
require.NoError(t, err)
mappings, err := client.LDAP.GetTeamMappings(context.Background(), team.UUID)
require.NoError(t, err)
require.Empty(t, mappings)
mapping, err := client.LDAP.AddMapping(context.Background(), MappedLdapGroupRequest{
Team: team.UUID,
DistinguishedName: "test.mapping.ldap.dependencytrack",
})
require.NoError(t, err)
require.Equal(t, mapping.DistinguishedName, "test.mapping.ldap.dependencytrack")
require.NotEmpty(t, mapping.UUID)
mappings, err = client.LDAP.GetTeamMappings(context.Background(), team.UUID)
require.NoError(t, err)
require.Equal(t, len(mappings), 1)
require.Equal(t, mappings[0].DistinguishedName, mapping.DistinguishedName)
require.Equal(t, mappings[0].UUID, mapping.UUID)
err = client.LDAP.RemoveMapping(context.Background(), mapping.UUID)
require.NoError(t, err)
mappings, err = client.LDAP.GetTeamMappings(context.Background(), team.UUID)
require.NoError(t, err)
require.Empty(t, mappings)
}
func TestLdapUsers(t *testing.T) {
// 1. Confirm absence of users
// 2. Create user
// 3. Confirm presence of user
// 4. Delete user
// 5. Confirm absence of user
client := setUpContainer(t, testContainerOptions{
APIPermissions: []string{
PermissionAccessManagement,
},
})
users, err := client.LDAP.GetUsers(context.Background(), PageOptions{
PageSize: 10,
})
require.NoError(t, err)
require.Equal(t, users.TotalCount, 0)
require.Empty(t, users.Items)
user, err := client.LDAP.CreateUser(context.Background(), LdapUser{
Username: "TestLdapUsers",
DistinguishedName: "test.user.ldap.dependencytrack",
Email: "test@localhost",
})
require.NoError(t, err)
require.Equal(t, user.Username, "TestLdapUsers")
require.Equal(t, user.DistinguishedName, "Syncing...")
require.Empty(t, user.Email)
require.Empty(t, user.Permissions)
require.Empty(t, user.Teams)
users, err = client.LDAP.GetUsers(context.Background(), PageOptions{
PageSize: 10,
})
require.NoError(t, err)
require.Equal(t, users.TotalCount, 1)
require.Equal(t, len(users.Items), 1)
require.Equal(t, users.Items[0].DistinguishedName, user.DistinguishedName)
require.Equal(t, users.Items[0].Email, user.Email)
require.Equal(t, users.Items[0].Username, user.Username)
err = client.LDAP.DeleteUser(context.Background(), user)
require.NoError(t, err)
users, err = client.LDAP.GetUsers(context.Background(), PageOptions{
PageSize: 10,
})
require.NoError(t, err)
require.Equal(t, users.TotalCount, 0)
require.Empty(t, users.Items)
}