Skip to content

Commit 061e0e9

Browse files
committed
fix: revert changes in the chaincode
Signed-off-by: osamamagdy <osamamagdy174@gmail.com>
1 parent 6eccc1b commit 061e0e9

13 files changed

+1007
-39
lines changed

chaincode/go.mod

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,45 +7,44 @@ go 1.21
77
require (
88
github.com/cucumber/godog v0.12.6
99
github.com/hyperledger-labs/cc-tools v1.0.0
10-
github.com/hyperledger/fabric-chaincode-go v0.0.0-20230228194215-b84622ba6a7a
11-
github.com/hyperledger/fabric-private-chaincode v1.0.0-rc3.0.20240522085958-35685169c680
12-
github.com/hyperledger/fabric-protos-go v0.3.0
10+
github.com/hyperledger/fabric-chaincode-go v0.0.0-20210603161043-af0e3898842a
11+
github.com/hyperledger/fabric-protos-go v0.0.0-20210528200356-82833ecdac31
1312
)
1413

1514
require (
1615
github.com/cucumber/gherkin-go/v19 v19.0.3 // indirect
1716
github.com/cucumber/messages-go/v16 v16.0.1 // indirect
1817
github.com/gofrs/uuid v4.4.0+incompatible // indirect
1918
github.com/golang/protobuf v1.5.3 // indirect
20-
github.com/google/uuid v1.3.1 // indirect
19+
github.com/google/uuid v1.3.0 // indirect
2120
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
2221
github.com/hashicorp/go-memdb v1.3.4 // indirect
2322
github.com/hashicorp/golang-lru v0.5.4 // indirect
2423
github.com/hashicorp/hcl v1.0.0 // indirect
2524
github.com/hyperledger/fabric v2.1.1+incompatible // indirect
2625
github.com/magiconair/properties v1.8.7 // indirect
27-
github.com/miekg/pkcs11 v1.1.1 // indirect
28-
github.com/mitchellh/mapstructure v1.4.3 // indirect
29-
github.com/pelletier/go-toml v1.9.5 // indirect
26+
github.com/miekg/pkcs11 v1.0.3 // indirect
27+
github.com/mitchellh/mapstructure v1.3.2 // indirect
28+
github.com/pelletier/go-toml v1.8.0 // indirect
3029
github.com/pkg/errors v0.9.1 // indirect
3130
github.com/spf13/afero v1.9.2 // indirect
32-
github.com/spf13/cast v1.4.1 // indirect
31+
github.com/spf13/cast v1.3.1 // indirect
3332
github.com/spf13/jwalterweatherman v1.1.0 // indirect
3433
github.com/spf13/pflag v1.0.5 // indirect
3534
github.com/stretchr/testify v1.9.0 // indirect
3635
github.com/subosito/gotenv v1.6.0 // indirect
3736
github.com/sykesm/zap-logfmt v0.0.4 // indirect
3837
go.uber.org/atomic v1.6.0 // indirect
39-
go.uber.org/multierr v1.11.0 // indirect
40-
go.uber.org/zap v1.25.0 // indirect
38+
go.uber.org/multierr v1.5.0 // indirect
39+
go.uber.org/zap v1.16.0 // indirect
4140
golang.org/x/crypto v0.23.0 // indirect
4241
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5 // indirect
4342
golang.org/x/net v0.25.0 // indirect
4443
golang.org/x/sys v0.20.0 // indirect
4544
golang.org/x/text v0.15.0 // indirect
46-
google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect
47-
google.golang.org/grpc v1.59.0 // indirect
45+
google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect
46+
google.golang.org/grpc v1.57.0 // indirect
4847
google.golang.org/protobuf v1.34.2 // indirect
4948
gopkg.in/ini.v1 v1.67.0 // indirect
50-
honnef.co/go/tools v0.4.3 // indirect
49+
honnef.co/go/tools v0.0.1-2020.1.4 // indirect
5150
)

chaincode/go.sum

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,6 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4
132132
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
133133
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
134134
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
135-
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
136-
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
137135
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
138136
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
139137
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
@@ -160,15 +158,9 @@ github.com/hyperledger/fabric v2.1.1+incompatible h1:cYYRv3vVg4kA6DmrixLxwn1nwBE
160158
github.com/hyperledger/fabric v2.1.1+incompatible/go.mod h1:tGFAOCT696D3rG0Vofd2dyWYLySHlh0aQjf7Q1HAju0=
161159
github.com/hyperledger/fabric-chaincode-go v0.0.0-20210603161043-af0e3898842a h1:W3NE4+0cxLe/EK/VyhtLpR8kOBkkXCKDv8Ixy93YRjo=
162160
github.com/hyperledger/fabric-chaincode-go v0.0.0-20210603161043-af0e3898842a/go.mod h1:N7H3sA7Tx4k/YzFq7U0EPdqJtqvM4Kild0JoCc7C0Dc=
163-
github.com/hyperledger/fabric-chaincode-go v0.0.0-20230228194215-b84622ba6a7a h1:HwSCxEeiBthwcazcAykGATQ36oG9M+HEQvGLvB7aLvA=
164-
github.com/hyperledger/fabric-chaincode-go v0.0.0-20230228194215-b84622ba6a7a/go.mod h1:TDSu9gxURldEnaGSFbH1eMlfSQBWQcMQfnDBcpQv5lU=
165-
github.com/hyperledger/fabric-private-chaincode v1.0.0-rc3.0.20240522085958-35685169c680 h1:1xTkPZMFg/gJGIAKrI7wlKIBo/YM02zjEDX/7c8thcg=
166-
github.com/hyperledger/fabric-private-chaincode v1.0.0-rc3.0.20240522085958-35685169c680/go.mod h1:2VMIOOrqLYixMciM3cFeIr/3fW9IEHHfCX0+NEiWMqg=
167161
github.com/hyperledger/fabric-protos-go v0.0.0-20190919234611-2a87503ac7c9/go.mod h1:xVYTjK4DtZRBxZ2D9aE4y6AbLaPwue2o/criQyQbVD0=
168162
github.com/hyperledger/fabric-protos-go v0.0.0-20210528200356-82833ecdac31 h1:T/uwoFIUioDDLffuJ/XgMLOWCUcx95/xXidv5igafl8=
169163
github.com/hyperledger/fabric-protos-go v0.0.0-20210528200356-82833ecdac31/go.mod h1:xVYTjK4DtZRBxZ2D9aE4y6AbLaPwue2o/criQyQbVD0=
170-
github.com/hyperledger/fabric-protos-go v0.3.0 h1:MXxy44WTMENOh5TI8+PCK2x6pMj47Go2vFRKDHB2PZs=
171-
github.com/hyperledger/fabric-protos-go v0.3.0/go.mod h1:WWnyWP40P2roPmmvxsUXSvVI/CF6vwY1K1UFidnKBys=
172164
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
173165
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
174166
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
@@ -186,14 +178,10 @@ github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0V
186178
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
187179
github.com/miekg/pkcs11 v1.0.3 h1:iMwmD7I5225wv84WxIG/bmxz9AXjWvTWIbM/TYHvWtw=
188180
github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
189-
github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU=
190-
github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
191181
github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg=
192182
github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
193-
github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
194183
github.com/pelletier/go-toml v1.8.0 h1:Keo9qb7iRJs2voHvunFtuuYFsbWeOBh8/P9v/kVMFtw=
195184
github.com/pelletier/go-toml v1.8.0/go.mod h1:D6yutnOGMveHEPV7VQOuvI/gXY61bv+9bAOTRnLElKs=
196-
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
197185
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
198186
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
199187
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -211,7 +199,6 @@ github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=
211199
github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
212200
github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=
213201
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
214-
github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
215202
github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
216203
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
217204
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
@@ -248,15 +235,11 @@ go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
248235
go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
249236
go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A=
250237
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
251-
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
252-
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
253238
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4=
254239
go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
255240
go.uber.org/zap v1.12.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
256241
go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM=
257242
go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
258-
go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c=
259-
go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk=
260243
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
261244
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
262245
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@@ -525,8 +508,6 @@ google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6D
525508
google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
526509
google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM=
527510
google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
528-
google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b h1:ZlWIi1wSK56/8hn4QcBp/j9M7Gt3U/3hZw3mC7vDICo=
529-
google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc=
530511
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
531512
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
532513
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@@ -545,8 +526,6 @@ google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA5
545526
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
546527
google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw=
547528
google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
548-
google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
549-
google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
550529
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
551530
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
552531
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -582,7 +561,6 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt
582561
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
583562
honnef.co/go/tools v0.0.1-2020.1.4 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8=
584563
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
585-
honnef.co/go/tools v0.4.3/go.mod h1:36ZgoUOrqOk1GxwHhyryEkq8FQWkUO2xGuSMhUCcdvA=
586564
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
587565
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
588566
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=

chaincode/main.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"github.com/hyperledger-labs/cc-tools/events"
1515
sw "github.com/hyperledger-labs/cc-tools/stubwrapper"
1616
tx "github.com/hyperledger-labs/cc-tools/transactions"
17-
fpc "github.com/hyperledger/fabric-private-chaincode/ecc_go/chaincode"
1817

1918
"github.com/hyperledger/fabric-chaincode-go/shim"
2019
pb "github.com/hyperledger/fabric-protos-go/peer"
@@ -68,7 +67,7 @@ func main() {
6867
if os.Getenv("RUN_CCAAS") == "true" {
6968
err = runCCaaS()
7069
} else {
71-
err = shim.Start(fpc.NewPrivateChaincode(new(CCDemo)))
70+
err = shim.Start(new(CCDemo))
7271
}
7372

7473
if err != nil {
@@ -78,7 +77,7 @@ func main() {
7877

7978
func runCCaaS() error {
8079
address := os.Getenv("CHAINCODE_SERVER_ADDRESS")
81-
ccid := os.Getenv("CHAINCODE_PKG_ID")
80+
ccid := os.Getenv("CHAINCODE_ID")
8281

8382
tlsProps, err := getTLSProperties()
8483
if err != nil {
@@ -88,7 +87,7 @@ func runCCaaS() error {
8887
server := &shim.ChaincodeServer{
8988
CCID: ccid,
9089
Address: address,
91-
CC: fpc.NewPrivateChaincode(new(CCDemo)),
90+
CC: new(CCDemo),
9291
TLSProps: *tlsProps,
9392
}
9493

chaincode/main_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"log"
5+
"os"
6+
"testing"
7+
8+
"github.com/hyperledger-labs/cc-tools/mock"
9+
)
10+
11+
func TestMain(m *testing.M) {
12+
log.SetFlags(log.Lshortfile)
13+
14+
err := SetupCC()
15+
if err != nil {
16+
log.Println(err)
17+
os.Exit(1)
18+
}
19+
20+
stub := mock.NewMockStub("org1MSP", new(CCDemo))
21+
res := stub.MockInit("testInit", [][]byte{[]byte("init")})
22+
if res.GetStatus() != 200 {
23+
log.Println(res.GetMessage())
24+
os.Exit(1)
25+
}
26+
27+
os.Exit(m.Run())
28+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
Feature: Create New Library
2+
In order to create a new library
3+
As an API client
4+
I want to make a request with the name of the desired library
5+
6+
Scenario: Create a new library
7+
Given there is a running "" test network from scratch
8+
When I make a "POST" request to "/api/invoke/createNewLibrary" on port 80 with:
9+
"""
10+
{
11+
"name": "Elizabeth's Library"
12+
}
13+
"""
14+
Then the response code should be 200
15+
And the response should have:
16+
"""
17+
{
18+
"@key": "library:9cf6726a-a327-568a-baf1-5881393073bf",
19+
"@lastTouchBy": "orgMSP",
20+
"@lastTx": "createNewLibrary",
21+
"@assetType": "library",
22+
"name": "Elizabeth's Library"
23+
}
24+
"""
25+
26+
Scenario: Try to create a new library with a name that already exists
27+
Given there is a running "" test network
28+
Given there is a library with name "John's Library"
29+
When I make a "POST" request to "/api/invoke/createNewLibrary" on port 80 with:
30+
"""
31+
{
32+
"name": "John's Library"
33+
}
34+
"""
35+
Then the response code should be 409
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
Feature: Get Books By Author
2+
In order to get all the books by an author
3+
As an API client
4+
I want to make a request to the getBooksByAuthor transaction
5+
And receive the appropriate books
6+
7+
Scenario: Request an author with multiple books
8+
Given there is a running "" test network
9+
And there are 3 books with prefix "book" by author "Jack"
10+
When I make a "GET" request to "/api/query/getBooksByAuthor" on port 80 with:
11+
"""
12+
{
13+
"authorName": "Jack"
14+
}
15+
"""
16+
Then the response code should be 200
17+
And the "result" field should have size 3
18+
19+
Scenario: Request an author with no books
20+
Given there is a running "" test network
21+
When I make a "GET" request to "/api/query/getBooksByAuthor" on port 80 with:
22+
"""
23+
{
24+
"authorName": "Mary"
25+
}
26+
"""
27+
Then the response code should be 200
28+
And the "result" field should have size 0
29+
30+
Scenario: Request an author with 2 books while there are other authors with more books
31+
Given there is a running "" test network
32+
Given there are 1 books with prefix "fantasy" by author "Missy"
33+
Given there are 2 books with prefix "cook" by author "John"
34+
When I make a "GET" request to "/api/query/getBooksByAuthor" on port 80 with:
35+
"""
36+
{
37+
"authorName": "John"
38+
}
39+
"""
40+
Then the response code should be 200
41+
And the "result" field should have size 2
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
Feature: Get Number Of Books From Library
2+
In order to create the number of books from library
3+
As an API client
4+
I want to make a request
5+
6+
Scenario: Query Get Number Of Books From Library that Exists
7+
Given there is a running "" test network
8+
And I make a "POST" request to "/api/invoke/createAsset" on port 80 with:
9+
"""
10+
{
11+
"asset": [
12+
{
13+
"@assetType": "book",
14+
"title": "Meu Nome é Maria",
15+
"author": "Maria Viana"
16+
}
17+
]
18+
}
19+
"""
20+
And I make a "POST" request to "/api/invoke/createAsset" on port 80 with:
21+
"""
22+
{
23+
"asset": [{
24+
"@assetType": "library",
25+
"name": "Maria's Library",
26+
"books": [
27+
{
28+
"@assetType": "book",
29+
"@key": "book:a36a2920-c405-51c3-b584-dcd758338cb5"
30+
}
31+
]
32+
}]
33+
}
34+
"""
35+
When I make a "GET" request to "/api/query/getNumberOfBooksFromLibrary" on port 80 with:
36+
"""
37+
{
38+
"library": {
39+
"@key": "library:3cab201f-9e2b-579d-b7b2-72297ed17f49",
40+
"@assetType": "library"
41+
}
42+
}
43+
"""
44+
Then the response code should be 200
45+
And the response should have:
46+
"""
47+
{
48+
"numberOfBooks": 1.0
49+
}
50+
"""
51+
52+
Scenario: Query Get Number Of Books From Library that Does Not Exists
53+
Given there is a running "" test network
54+
When I make a "GET" request to "/api/query/getNumberOfBooksFromLibrary" on port 80 with:
55+
"""
56+
{
57+
"library": {
58+
"@key": "library:5c5b201f-9e4c-579d-b7b2-72297ed17f78",
59+
"@assetType": "library"
60+
}
61+
}
62+
"""
63+
Then the response code should be 400

0 commit comments

Comments
 (0)