mirror of
https://github.com/pocket-id/pocket-id.git
synced 2025-12-06 17:23:16 +03:00
74 lines
1.7 KiB
Go
74 lines
1.7 KiB
Go
package service
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestGetDNProperty(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
property string
|
|
dn string
|
|
expectedResult string
|
|
}{
|
|
{
|
|
name: "simple case",
|
|
property: "cn",
|
|
dn: "cn=username,ou=people,dc=example,dc=com",
|
|
expectedResult: "username",
|
|
},
|
|
{
|
|
name: "property not found",
|
|
property: "uid",
|
|
dn: "cn=username,ou=people,dc=example,dc=com",
|
|
expectedResult: "",
|
|
},
|
|
{
|
|
name: "mixed case property",
|
|
property: "CN",
|
|
dn: "cn=username,ou=people,dc=example,dc=com",
|
|
expectedResult: "username",
|
|
},
|
|
{
|
|
name: "mixed case DN",
|
|
property: "cn",
|
|
dn: "CN=username,OU=people,DC=example,DC=com",
|
|
expectedResult: "username",
|
|
},
|
|
{
|
|
name: "spaces in DN",
|
|
property: "cn",
|
|
dn: "cn=username, ou=people, dc=example, dc=com",
|
|
expectedResult: "username",
|
|
},
|
|
{
|
|
name: "value with special characters",
|
|
property: "cn",
|
|
dn: "cn=user.name+123,ou=people,dc=example,dc=com",
|
|
expectedResult: "user.name+123",
|
|
},
|
|
{
|
|
name: "empty DN",
|
|
property: "cn",
|
|
dn: "",
|
|
expectedResult: "",
|
|
},
|
|
{
|
|
name: "empty property",
|
|
property: "",
|
|
dn: "cn=username,ou=people,dc=example,dc=com",
|
|
expectedResult: "",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
result := getDNProperty(tt.property, tt.dn)
|
|
if result != tt.expectedResult {
|
|
t.Errorf("getDNProperty(%q, %q) = %q, want %q",
|
|
tt.property, tt.dn, result, tt.expectedResult)
|
|
}
|
|
})
|
|
}
|
|
}
|