@@ -5,66 +5,72 @@ import (
55 "crypto/sha256"
66 "crypto/sha512"
77 "encoding/base64"
8+ "errors"
89 "hash"
910 "io"
1011 "testing"
1112
12- "github.com/stretchr/testify/require "
13+ "github.com/matryer/is "
1314)
1415
1516func MustDN (t * testing.T , dnstr string ) DN {
16- t .Helper ()
17+ is := is .New (t )
18+ is .Helper ()
1719 dn , err := NewDN (dnstr )
18- require . NoError ( t , err )
20+ is . NoErr ( err )
1921 return dn
2022}
2123
2224func Test_RDN (t * testing.T ) {
25+ is := is .New (t )
26+
2327 rdn1 := RDN {Name : "dc" , Value : "example" }
2428 rdn2 := RDN {Name : "DC" , Value : "example" }
2529 rdn3 := RDN {Name : "Dc" , Value : "example2" }
2630 rdn4 := RDN {Name : "ou" , Value : "core" }
2731
28- require .True (t , rdn1 .Equal (rdn1 ))
29- require .True (t , rdn2 .Equal (rdn2 ))
30- require . False ( t , rdn1 .Equal (rdn3 ))
31- require . False ( t , rdn1 .Equal (rdn4 ))
32-
33- require .Equal (t , - 1 , rdn1 .Compare (rdn3 ))
34- require .Equal (t , 1 , rdn3 .Compare (rdn2 ))
35- require .Equal (t , 0 , rdn1 .Compare (rdn1 ))
36- require .Equal (t , 0 , rdn1 .Compare (rdn2 ))
37- require .Equal (t , - 1 , rdn1 .Compare (rdn4 ))
38- require .Equal (t , 1 , rdn4 .Compare (rdn1 ))
32+ is .True (rdn1 .Equal (rdn1 ))
33+ is .True (rdn2 .Equal (rdn2 ))
34+ is . True ( ! rdn1 .Equal (rdn3 ))
35+ is . True ( ! rdn1 .Equal (rdn4 ))
36+
37+ is .Equal (- 1 , rdn1 .Compare (rdn3 ))
38+ is .Equal (1 , rdn3 .Compare (rdn2 ))
39+ is .Equal (0 , rdn1 .Compare (rdn1 ))
40+ is .Equal (0 , rdn1 .Compare (rdn2 ))
41+ is .Equal (- 1 , rdn1 .Compare (rdn4 ))
42+ is .Equal (1 , rdn4 .Compare (rdn1 ))
3943}
4044
4145func Test_DN (t * testing.T ) {
46+ is := is .New (t )
4247 dn1 , err := NewDN ("dc=example, dc = com" )
43- require . NoError ( t , err )
44- require .Equal (t , DN {RDN {"dc" , "com" }, RDN {"dc" , "example" }}, dn1 )
45- require .True (t , dn1 .IsAncestor (dn1 ))
46- require .Equal (t , "dc=example,dc=com" , dn1 .String ())
48+ is . NoErr ( err )
49+ is .Equal (DN {RDN {"dc" , "com" }, RDN {"dc" , "example" }}, dn1 )
50+ is .True (dn1 .IsAncestor (dn1 ))
51+ is .Equal ("dc=example,dc=com" , dn1 .String ())
4752
4853 dn2 , err := NewDN ("o=example,dc=example,dc=com" )
49- require . NoError ( t , err )
50- require .Equal (t , DN {RDN {"dc" , "com" }, RDN {"dc" , "example" }, RDN {"o" , "example" }}, dn2 )
51- require .True (t , dn1 .IsAncestor (dn2 ), "%s should be an ancestor of %s" , dn2 , dn1 )
54+ is . NoErr ( err )
55+ is .Equal (DN {RDN {"dc" , "com" }, RDN {"dc" , "example" }, RDN {"o" , "example" }}, dn2 )
56+ is .True (dn1 .IsAncestor (dn2 )) // dn2 should be an ancestor of dn1
5257
5358 dn3 , err := NewDN ("" )
54- require . NoError ( t , err )
55- require .Equal (t , DN {}, dn3 )
56- require .True (t , dn3 .IsAncestor (dn1 ), " root should be an ancestor of %s" , dn1 )
59+ is . NoErr ( err )
60+ is .Equal (DN {}, dn3 )
61+ is .True (dn3 .IsAncestor (dn1 )) // root should be an ancestor of dn1
5762
5863 dn4 , err := NewDN ("DC=example,Dc=com" )
59- require . NoError ( t , err )
60- require .True (t , dn1 .Equal (dn4 ))
64+ is . NoErr ( err )
65+ is .True (dn1 .Equal (dn4 ))
6166
6267 dn5 , err := NewDN (" \t \n " )
63- require . NoError ( t , err )
64- require .True (t , dn5 .IsEmpty ())
68+ is . NoErr ( err )
69+ is .True (dn5 .IsEmpty ())
6570}
6671
6772func Test_DBAddEntries_Success (t * testing.T ) {
73+ is := is .New (t )
6874 entries := []* Entry {
6975 {DN : MustDN (t , "cn=user1,ou=groups,dc=example,dc=com" )},
7076 {DN : MustDN (t , "ou=groups,dc=example,dc=com" )},
@@ -84,25 +90,27 @@ func Test_DBAddEntries_Success(t *testing.T) {
8490 db := NewDB ()
8591
8692 err := db .AddEntries (entries )
87- require . NoError ( t , err )
93+ is . NoErr ( err )
8894
8995 dit := db .DIT
90- require . Len ( t , dit .children , 1 )
91- require .Equal (t , DN {RDN {"dc" , "com" }}, dit .children [0 ].Entry .DN )
92- require . Len ( t , dit .children [0 ].children , 6 )
96+ is . Equal ( 1 , len ( dit .children ) )
97+ is .Equal (DN {RDN {"dc" , "com" }}, dit .children [0 ].Entry .DN )
98+ is . Equal ( 6 , len ( dit .children [0 ].children ) )
9399}
94100
95101func Test_DBAddEntries_Duplicate (t * testing.T ) {
102+ is := is .New (t )
96103 entries := []* Entry {
97104 {DN : MustDN (t , "dc=example,dc=com" )},
98105 {DN : MustDN (t , "dc=example,dc=com" )},
99106 }
100107 db := NewDB ()
101108 err := db .AddEntries (entries )
102- require . Error ( t , err )
109+ is . True ( err != nil )
103110}
104111
105112func Test_DIT_String (t * testing.T ) {
113+ is := is .New (t )
106114 entries := []* Entry {
107115 {DN : MustDN (t , "dc=example,dc=com" )},
108116 {DN : MustDN (t , "ou=people,dc=example,dc=com" )},
@@ -118,40 +126,41 @@ func Test_DIT_String(t *testing.T) {
118126 db := NewDB ()
119127 err := db .AddEntries (entries )
120128
121- require . NoError ( t , err )
129+ is . NoErr ( err )
122130 str := db .DIT .String ()
123- require .Equal (t , expected , str )
131+ is .Equal (expected , str )
124132}
125133
126134func Test_Entry_CaseInsensitiveAttrs (t * testing.T ) {
135+ is := is .New (t )
127136 emap := map [string ]any {
128137 "DN" : "dc=example,dc=com" , // upper-case DN key
129138 "objectClass" : "person" ,
130139 "sn" : "Surname" ,
131140 "cn" : "CN" ,
132141 }
133142 e , err := NewEntryFromMap (emap )
134- require . NoError ( t , err )
143+ is . NoErr ( err )
135144
136- require .Equal (t , emap ["DN" ], e .DN .String ())
145+ is .Equal (emap ["DN" ], e .DN .String ())
137146
138147 a , ok := e .GetAttr ("sn" )
139- require .True (t , ok )
140- require . Len ( t , a .Vals , 1 )
141- require .Equal (t , "sn" , a .Name )
142- require .Equal (t , emap ["sn" ], a .Vals [0 ])
148+ is .True (ok )
149+ is . Equal ( 1 , len ( a .Vals ) )
150+ is .Equal ("sn" , a .Name )
151+ is .Equal (emap ["sn" ], a .Vals [0 ])
143152
144153 a , ok = e .GetAttr ("SN" )
145- require .True (t , ok )
146- require . Len ( t , a .Vals , 1 )
147- require .Equal (t , "sn" , a .Name )
148- require .Equal (t , emap ["sn" ], a .Vals [0 ])
154+ is .True (ok )
155+ is . Equal ( 1 , len ( a .Vals ) )
156+ is .Equal ("sn" , a .Name )
157+ is .Equal (emap ["sn" ], a .Vals [0 ])
149158
150159 a , ok = e .GetAttr ("objectclass" )
151- require .True (t , ok )
152- require . Len ( t , a .Vals , 1 )
153- require .Equal (t , "objectClass" , a .Name )
154- require .Equal (t , emap ["objectClass" ], a .Vals [0 ])
160+ is .True (ok )
161+ is . Equal ( 1 , len ( a .Vals ) )
162+ is .Equal ("objectClass" , a .Name )
163+ is .Equal (emap ["objectClass" ], a .Vals [0 ])
155164}
156165
157166func Test_Entry_Auth (t * testing.T ) {
@@ -164,6 +173,7 @@ func Test_Entry_Auth(t *testing.T) {
164173 }
165174
166175 testfunc := func (t * testing.T , tt testcase ) { //nolint:thelper // not a helper
176+ is := is .New (t )
167177 password := "password"
168178 entryMap := map [string ]any {
169179 "dn" : "uid=alice,dc=example,dc=com" ,
@@ -181,12 +191,12 @@ func Test_Entry_Auth(t *testing.T) {
181191 entryMap ["userPassword" ] = userPassword
182192 }
183193 e , err := NewEntryFromMap (entryMap )
184- require . NoError ( t , err )
194+ is . NoErr ( err )
185195 err = e .Authenticate (password )
186196 if tt .expectErr != nil {
187- require . ErrorIs ( t , err , tt .expectErr )
197+ is . True ( errors . Is ( err , tt .expectErr ) )
188198 } else {
189- require . NoError ( t , err )
199+ is . NoErr ( err )
190200 }
191201 }
192202
@@ -273,15 +283,16 @@ func Test_Entry_Auth(t *testing.T) {
273283}
274284
275285func hashPassword (t * testing.T , password string , scheme string ) string {
276- t .Helper ()
286+ is := is .New (t )
287+ is .Helper ()
277288
278289 newHash := map [string ]func () hash.Hash {
279290 "SSHA" : sha1 .New ,
280291 "SSHA256" : sha256 .New ,
281292 "SSHA512" : sha512 .New ,
282293 }
283294
284- require . Contains ( t , newHash , scheme )
295+ is . True ( newHash [ scheme ] != nil )
285296
286297 // Use a fixed salt in tests
287298 salt := "0123456789ABCDEF"
0 commit comments