...
1 package jwk_test
2
3 import (
4 "testing"
5
6 "github.com/lestrrat-go/jwx/internal/jwxtest"
7 "github.com/lestrrat-go/jwx/jwk"
8 "github.com/stretchr/testify/assert"
9 )
10
11 func TestSet(t *testing.T) {
12 set := jwk.NewSet()
13
14 keygens := []func() (jwk.Key, error){
15 jwxtest.GenerateRsaJwk,
16 jwxtest.GenerateEcdsaJwk,
17 jwxtest.GenerateSymmetricJwk,
18 }
19
20
21 var keys []jwk.Key
22 for _, gen := range keygens {
23 k, err := gen()
24 if !assert.NoError(t, err, `key generation should succeed`) {
25 return
26 }
27 if !assert.True(t, set.Add(k), `set.Add should succeed`) {
28 return
29 }
30 keys = append(keys, k)
31 }
32
33 if !assert.Equal(t, set.Len(), 3, `set.Len should be 3`) {
34 return
35 }
36
37 for i, k := range keys {
38 if !assert.Equal(t, i, set.Index(k), `set.Index should return %d`, i) {
39 return
40 }
41 }
42
43 for _, k := range keys {
44 if !assert.True(t, set.Remove(k), `set.Remove should succeed`) {
45 return
46 }
47 }
48
49 if !assert.Equal(t, set.Len(), 0, `set.Len should be 0`) {
50 return
51 }
52
53 for _, gen := range keygens {
54 k, err := gen()
55 if !assert.NoError(t, err, `key generation should succeed`) {
56 return
57 }
58 if !assert.True(t, set.Add(k), `set.Add should succeed`) {
59 return
60 }
61 }
62
63 if !assert.Equal(t, set.Len(), 3, `set.Len should be 3`) {
64 return
65 }
66
67 set.Clear()
68
69 if !assert.Equal(t, set.Len(), 0, `set.Len should be 0`) {
70 return
71 }
72 }
73
View as plain text