github.com/s7techlab/cckit@v0.10.5/examples/cpaper_proxy/cpaper_proxy_test.go (about) 1 package cpaper_proxy_test 2 3 import ( 4 "context" 5 "testing" 6 7 . "github.com/onsi/ginkgo" 8 . "github.com/onsi/gomega" 9 10 cpservice "github.com/s7techlab/cckit/examples/cpaper_asservice" 11 "github.com/s7techlab/cckit/examples/cpaper_asservice/testdata" 12 "github.com/s7techlab/cckit/examples/cpaper_proxy" 13 "github.com/s7techlab/cckit/extensions/crosscc" 14 "github.com/s7techlab/cckit/gateway" 15 idtestdata "github.com/s7techlab/cckit/identity/testdata" 16 testcc "github.com/s7techlab/cckit/testing" 17 ) 18 19 func TestService(t *testing.T) { 20 RegisterFailHandler(Fail) 21 RunSpecs(t, "Gateway suite") 22 } 23 24 const ( 25 Channel1 = `channel1` 26 Channel2 = `channel2` 27 ChaincodeCPaperProxy = `cpaper_proxy` 28 ChaincodeCPaper = `cpaper` 29 ) 30 31 var ( 32 ctx = gateway.ContextWithSigner( 33 context.Background(), 34 idtestdata.Certificates[0].MustIdentity(idtestdata.DefaultMSP), 35 ) 36 37 Id = &cpaper_proxy.Id{ 38 Issuer: testdata.Id1.Issuer, 39 PaperNumber: testdata.Id1.PaperNumber, 40 } 41 ) 42 43 var _ = Describe(`Chaincode service resolving`, func() { 44 45 Context(`Services in one chaincode`, func() { 46 47 var ( 48 cPaperGateway *cpservice.CPaperServiceGateway 49 cPaperProxyGateway *cpaper_proxy.CPaperProxyServiceGateway 50 ) 51 52 It("Init", func() { 53 cpaperProxyCC, err := cpaper_proxy.NewCCWithLocalCpaper() 54 Expect(err).NotTo(HaveOccurred()) 55 56 mockStub := testcc.NewMockStub(ChaincodeCPaperProxy, cpaperProxyCC) 57 peer := testcc.NewPeer().WithChannel(Channel1, mockStub) 58 59 // both gw are looking to same channel / chaincode 60 cPaperProxyGateway = cpaper_proxy.NewCPaperProxyServiceGateway(peer, Channel1, ChaincodeCPaperProxy) 61 cPaperGateway = cpservice.NewCPaperServiceGateway(peer, Channel1, ChaincodeCPaperProxy) 62 }) 63 64 It("Initial empty result", func() { 65 66 _, err := cPaperProxyGateway.GetFromCPaper(ctx, Id) 67 Expect(err).To(HaveOccurred()) 68 }) 69 70 It("Allow to add cpaper", func() { 71 _, err := cPaperGateway.Issue(ctx, testdata.Issue1) 72 Expect(err).NotTo(HaveOccurred()) 73 }) 74 75 It("Allow to get data from cpaper service via proxy service", func() { 76 _, err := cPaperProxyGateway.GetFromCPaper(ctx, Id) 77 Expect(err).NotTo(HaveOccurred()) 78 }) 79 80 }) 81 82 Context(`Services in separate chaincodes`, func() { 83 84 var ( 85 cPaperGateway *cpservice.CPaperServiceGateway 86 cPaperProxyGateway *cpaper_proxy.CPaperProxyServiceGateway 87 88 cPaperProxyCCSettingGateway *crosscc.SettingServiceGateway 89 ) 90 91 It("Init", func() { 92 cPaperProxyCC, err := cpaper_proxy.NewCCWithRemoteCpaper() 93 Expect(err).NotTo(HaveOccurred()) 94 95 cPaperCC, err := cpservice.NewCC() 96 Expect(err).NotTo(HaveOccurred()) 97 98 mockStub1 := testcc.NewMockStub(ChaincodeCPaperProxy, cPaperProxyCC) 99 mockStub2 := testcc.NewMockStub(ChaincodeCPaper, cPaperCC) 100 peer := testcc.NewPeer(). 101 WithChannel(Channel1, mockStub1). 102 WithChannel(Channel2, mockStub2) 103 104 // gw are looking to separate channels / chaincodes 105 cPaperProxyGateway = cpaper_proxy.NewCPaperProxyServiceGateway(peer, Channel1, ChaincodeCPaperProxy) 106 cPaperGateway = cpservice.NewCPaperServiceGateway(peer, Channel2, ChaincodeCPaper) 107 cPaperProxyCCSettingGateway = crosscc.NewSettingServiceGateway(peer, Channel1, ChaincodeCPaperProxy) 108 }) 109 110 It("Initial empty result", func() { 111 _, err := cPaperProxyGateway.GetFromCPaper(ctx, Id) 112 Expect(err).To(HaveOccurred()) 113 114 }) 115 116 It("Allow to add cpaper", func() { 117 _, err := cPaperGateway.Issue(ctx, testdata.Issue1) 118 Expect(err).NotTo(HaveOccurred()) 119 }) 120 121 It("Disallow to get data from cpaper service via proxy service while chaincode locator setting is empty", func() { 122 _, err := cPaperProxyGateway.GetFromCPaper(ctx, Id) 123 Expect(err).To(HaveOccurred()) 124 Expect(err.Error()).To(ContainSubstring(`chaincode locator not found`)) 125 }) 126 127 It("Allow to set setting for chaincode", func() { 128 //_, err := cPaperGateway.Issue(ctx, testdata.Issue1) 129 //Expect(err).NotTo(HaveOccurred()) 130 131 _, err := cPaperProxyCCSettingGateway.ServiceLocatorSet(ctx, &crosscc.ServiceLocatorSetRequest{ 132 Service: cPaperGateway.ServiceDef().Name(), 133 Channel: Channel2, 134 Chaincode: ChaincodeCPaper, 135 }) 136 Expect(err).NotTo(HaveOccurred()) 137 }) 138 139 It("Allow to get data from cpaper service via proxy service", func() { 140 _, err := cPaperProxyGateway.GetFromCPaper(ctx, Id) 141 Expect(err).NotTo(HaveOccurred()) 142 }) 143 }) 144 145 })