Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
chaincode
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘星星@五瓣科技
chaincode
Commits
ecb36a82
Commit
ecb36a82
authored
Mar 11, 2020
by
刘星星@五瓣科技
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add schema checks
parent
02170213
Changes
3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
240 additions
and
72 deletions
+240
-72
gongxianghui.go
src/github.com/gongxianghui_auth/gongxianghui.go
+105
-71
gongxianghui_test.go
src/github.com/gongxianghui_auth/gongxianghui_test.go
+134
-1
gongxinghuileadger_test.go
src/github.com/gongxianghui_three/gongxinghuileadger_test.go
+1
-0
No files found.
src/github.com/gongxianghui_auth/gongxianghui.go
View file @
ecb36a82
This diff is collapsed.
Click to expand it.
src/github.com/gongxianghui_auth/gongxianghui_test.go
View file @
ecb36a82
package
main
import
(
"encoding/json"
"fmt"
"github.com/hyperledger/fabric/core/chaincode/shim"
"testing"
...
...
@@ -103,6 +104,7 @@ func TestGXHSchemaAuthBytable(t *testing.T){
fmt
.
Printf
(
"Invoke status %d,message %s ,and payload %s
\n
"
,
responseByupdate
.
Status
,
responseByupdate
.
Message
,
string
(
responseByupdate
.
Payload
))
}
func
TestGXHDataPutAuth
(
t
*
testing
.
T
){
cc
:=
new
(
GXHCC
)
stub
:=
shim
.
NewMockStub
(
"GXHCC"
,
cc
)
...
...
@@ -141,3 +143,134 @@ func TestGXHDataPutAuth(t *testing.T){
fmt
.
Printf
(
"Invoke status %d,message %s ,and payload %s
\n
"
,
responseByget2
.
Status
,
responseByget2
.
Message
,
string
(
responseByget2
.
Payload
))
}
var
testData
=
`{"float64":10.33,"int":10,"string":"我中国人a!","time.Time":"2020-03-06 18:30:07.49752435 +0800 CST m=+0.000270574"}`
func
TestFieldCheck
(
t
*
testing
.
T
){
var
testmap
map
[
string
]
interface
{}
json
.
Unmarshal
([]
byte
(
testData
),
&
testmap
)
intC
:=
&
Checks
{
FType
:
"int"
,
Must
:
true
,
Fieldlen
:
1
,
}
err
:=
fieldCheckout
(
intC
,
testmap
[
"int"
])
if
err
!=
nil
{
t
.
Error
(
err
)
}
floatC
:=
&
Checks
{
FType
:
"float64"
,
Must
:
true
,
Fieldlen
:
1
,
}
err
=
fieldCheckout
(
floatC
,
testmap
[
"float64"
])
if
err
!=
nil
{
t
.
Error
(
err
)
}
stringC
:=
&
Checks
{
FType
:
"string"
,
Must
:
true
,
Fieldlen
:
6
,
}
err
=
fieldCheckout
(
stringC
,
testmap
[
"string"
])
if
err
!=
nil
{
t
.
Error
(
err
)
}
timeC
:=
&
Checks
{
FType
:
"time.Time"
,
Must
:
true
,
Fieldlen
:
1
,
}
err
=
fieldCheckout
(
timeC
,
testmap
[
"time.Time"
])
if
err
!=
nil
{
t
.
Error
(
err
)
}
}
var
schemaCheck
=
`{"fields":{"alinkman":{"val":10.34,"auth":{"read":{"users":{"Admin@org2.example.com":0},"roles":
{"Admin@org2.example.com":1583501961}},"write":{"users":{"Admin@org2.example.com":0},"roles":
{"Admin@org2.example.com":1583501961}}},"fcheck":{"ftype":"float64","must":true,"fieldlen":1}},
"amob":{"val":"0001-01-01T00:00:00Z","auth":{"read":{"users":{"Admin@org2.example.com":0},"roles":
{"Admin@org2.example.com":1583501961}},"write":{"users":{"Admin@org2.example.com":0},"roles":{"Admin@org2.example.com":
1583501961}}},"fcheck":{"ftype":"time.Time","must":true,"fieldlen":0}},"aname":{"val":"Aname","auth":{"read":{"users":
{"Admin@org2.example.com":0},"roles":{"Admin@org2.example.com":1583501961}},"write":{"users":{"Admin@org2.example.com":0},
"roles":{"Admin@org2.example.com":1583501961}}},"fcheck":{"ftype":"string","must":true,"fieldlen":16}},"atype":{"val":100,
"auth":{"read":{"users":{"Admin@org2.example.com":0},"roles":{"Admin@org2.example.com":1583501961}},"write":{"users":
{"Admin@org2.example.com":0},"roles":{"Admin@org2.example.com":1583501961}}},"fcheck":{"ftype":"int",
"must":true,"fieldlen":1}},"backup":{"val":{"aname":"Aname","atype":"Atype"},"auth":{"read":{"users":
{"Admin@org2.example.com":0},"roles":{"Admin@org2.example.com":1583501961}},"write":{"users":{"Admin@org2.example.com":0},
"roles":{"Admin@org2.example.com":1583501961}}},"fcheck":null},"id":{"val":"1","auth":{"read":{"users":null,"roles":null},
"write":{"users":null,"roles":null}},"fcheck":null}},"schema_auth":{"read":{"users":null,"roles":null},"write":{"users":
{"Admin@org2.example.com":0},"roles":{"Admin@org2.example.com":1583501961}}},"auth":{"read":{"users":
{"Admin@org2.example.com":0},"roles":{"Admin@org2.example.com":0}},"write":{"users":{"Admin@org2.example.com":0},
"roles":{"Admin@org2.example.com":0}}}}
`
var
(
inputC
=
`{"id":"1","aname":"alibusi","atype":1000,"alinkman":1.233,
"amob":"new1234567890","backup":{"aname":"alibusi","atype":"type"}}`
inputCs
=
`[{
"id": "1",
"aname": "alibusi",
"atype": 102,
"alinkman": 10.34,
"amob": "0001-01-01 00:00:00 + UTC",
"backup": {
"aname": "alibusi",
"atype": "type"
}
}, {
"id": "2",
"aname": "alibusi",
"atype": 102,
"alinkman": 10.34,
"amob": "0001-01-01 00:00:00 + UTC",
"backup": {
"aname": "alibusi",
"atype": "type"
}
}]`
)
/*
本测试主要进行data put,update的测试操作,主要进行fieldcheck 的测试。
*/
func
TestPut
(
t
*
testing
.
T
){
cc
:=
new
(
GXHCC
)
stub
:=
shim
.
NewMockStub
(
"GXHCC"
,
cc
)
stub
.
MockInit
(
"init"
,
nil
)
fmt
.
Println
()
fmt
.
Println
(
"========================================invoke schema put============================================"
)
fmt
.
Println
()
fmt
.
Println
()
responseByPutschema
:=
stub
.
MockInvoke
(
"invoke1"
,[][]
byte
{[]
byte
(
"schema"
),
[]
byte
(
"put"
),[]
byte
(
"alibusi"
),[]
byte
(
inputC
)})
//使用schema 数据测试过期时间err,schema right data,使用schema3 测试读取字段时的过滤
fmt
.
Printf
(
"Invoke status %d,message %s and payload %s
\n
"
,
responseByPutschema
.
Status
,
responseByPutschema
.
Message
,
string
(
responseByPutschema
.
Payload
))
responseByget
:=
stub
.
MockInvoke
(
"invoke1"
,[][]
byte
{[]
byte
(
"schema"
),
[]
byte
(
"get"
),[]
byte
(
"alibusi"
)})
fmt
.
Printf
(
"Invoke status %d,message %s ,and payload %s
\n
"
,
responseByget
.
Status
,
responseByget
.
Message
,
string
(
responseByget
.
Payload
))
fmt
.
Println
()
fmt
.
Println
(
"========================================invoke data put============================================"
)
fmt
.
Println
()
fmt
.
Println
()
responseByPut
:=
stub
.
MockInvoke
(
"invoke1"
,[][]
byte
{[]
byte
(
"put"
),
[]
byte
(
"alibusi"
),[]
byte
(
inputCs
)})
fmt
.
Printf
(
"Invoke status %d,message %s ,and payload %s
\n
"
,
responseByPut
.
Status
,
responseByPut
.
Message
,
string
(
responseByPut
.
Payload
))
responseByget
=
stub
.
MockInvoke
(
"invoke1"
,[][]
byte
{[]
byte
(
"get"
),
[]
byte
(
"alibusi"
),[]
byte
(
`{"id":"1"}`
)})
fmt
.
Printf
(
"Invoke status %d,message %s ,and payload %s
\n
"
,
responseByget
.
Status
,
responseByget
.
Message
,
string
(
responseByget
.
Payload
))
fmt
.
Println
()
fmt
.
Println
(
"========================================invoke data update============================================"
)
fmt
.
Println
()
fmt
.
Println
()
responseByUpdate
:=
stub
.
MockInvoke
(
"invoke1"
,[][]
byte
{[]
byte
(
"update"
),
[]
byte
(
"alibusi"
),[]
byte
(
inputC
)})
fmt
.
Printf
(
"Invoke status %d,message %s ,and payload %s
\n
"
,
responseByUpdate
.
Status
,
responseByUpdate
.
Message
,
string
(
responseByUpdate
.
Payload
))
responseByget2
:=
stub
.
MockInvoke
(
"invoke1"
,[][]
byte
{[]
byte
(
"get"
),
[]
byte
(
"alibusi"
),[]
byte
(
`{"id":"1"}`
)})
fmt
.
Printf
(
"Invoke status %d,message %s ,and payload %s
\n
"
,
responseByget2
.
Status
,
responseByget2
.
Message
,
string
(
responseByget2
.
Payload
))
}
src/github.com/gongxianghui_three/gongxinghuileadger_test.go
0 → 100644
View file @
ecb36a82
package
main
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment