@@ -7,6 +7,7 @@ SPDX-License-Identifier: Apache-2.0
7
7
package manager_test
8
8
9
9
import (
10
+ "github.com/hyperledger/fabric/protos/token"
10
11
mockid "github.com/hyperledger/fabric/token/identity/mock"
11
12
"github.com/hyperledger/fabric/token/tms/manager"
12
13
. "github.com/onsi/ginkgo"
@@ -20,6 +21,7 @@ var _ = Describe("AllIssuingValidator", func() {
20
21
fakeIdentityDeserializer * mockid.Deserializer
21
22
fakeIdentity * mockid.Identity
22
23
policyValidator * manager.AllIssuingValidator
24
+ tokenOwnerValidator * manager.FabricTokenOwnerValidator
23
25
)
24
26
25
27
BeforeEach (func () {
@@ -30,6 +32,9 @@ var _ = Describe("AllIssuingValidator", func() {
30
32
policyValidator = & manager.AllIssuingValidator {
31
33
Deserializer : fakeIdentityDeserializer ,
32
34
}
35
+ tokenOwnerValidator = & manager.FabricTokenOwnerValidator {
36
+ Deserializer : fakeIdentityDeserializer ,
37
+ }
33
38
})
34
39
35
40
Describe ("Validate" , func () {
@@ -76,4 +81,56 @@ var _ = Describe("AllIssuingValidator", func() {
76
81
})
77
82
78
83
})
84
+
85
+ Describe ("Token Owner Validation" , func () {
86
+
87
+ Context ("when owner is valid" , func () {
88
+ BeforeEach (func () {
89
+ fakeIdentityDeserializer .DeserializeIdentityReturns (fakeIdentity , nil )
90
+ })
91
+ It ("returns nil" , func () {
92
+ err := tokenOwnerValidator .Validate (& token.TokenOwner {Type : token .TokenOwner_MSP_IDENTIFIER , Raw : []byte {0 , 1 , 2 , 3 }})
93
+ Expect (err ).ToNot (HaveOccurred ())
94
+ })
95
+ })
96
+
97
+ Context ("when owner is nil" , func () {
98
+ It ("returns no error" , func () {
99
+ err := tokenOwnerValidator .Validate (nil )
100
+ Expect (err ).To (MatchError ("identity cannot be nil" ))
101
+ })
102
+ })
103
+
104
+ Context ("when owner has an invalid type" , func () {
105
+ It ("returns no error" , func () {
106
+ err := tokenOwnerValidator .Validate (& token.TokenOwner {Type : 2 })
107
+ Expect (err ).To (MatchError ("identity's type '2' not recognized" ))
108
+ })
109
+ })
110
+
111
+ Context ("when the owner cannot be deserialized" , func () {
112
+ BeforeEach (func () {
113
+ fakeIdentityDeserializer .DeserializeIdentityReturns (nil , errors .New ("Deserialize, no-way-man" ))
114
+ })
115
+
116
+ It ("returns an error" , func () {
117
+ err := tokenOwnerValidator .Validate (& token.TokenOwner {Type : token .TokenOwner_MSP_IDENTIFIER , Raw : []byte {0 , 1 , 2 , 3 }})
118
+ Expect (err .Error ()).To (BeEquivalentTo ("identity [0x7261773a225c3030305c3030315c3030325c3030332220] cannot be deserialised: Deserialize, no-way-man" ))
119
+ })
120
+ })
121
+
122
+ Context ("when identity validation fail" , func () {
123
+ BeforeEach (func () {
124
+ fakeIdentity .ValidateReturns (errors .New ("Validate, no-way-man" ))
125
+ fakeIdentityDeserializer .DeserializeIdentityReturns (fakeIdentity , nil )
126
+ })
127
+
128
+ It ("returns an error" , func () {
129
+ err := tokenOwnerValidator .Validate (& token.TokenOwner {Type : token .TokenOwner_MSP_IDENTIFIER , Raw : []byte {0 , 1 , 2 , 3 }})
130
+ Expect (err .Error ()).To (BeEquivalentTo ("identity [0x7261773a225c3030305c3030315c3030325c3030332220] cannot be validated: Validate, no-way-man" ))
131
+ })
132
+
133
+ })
134
+
135
+ })
79
136
})
0 commit comments