Exemplo n.º 1
0
		ledgerPtr := InitSpec()
		It("creates, populates, finishes, commits and validates a batch", func() {
			Expect(ledgerPtr.BeginTxBatch(0)).To(BeNil())
			ledgerPtr.TxBegin("txUuid1")
			ledgerPtr.SetStateMultipleKeys("chaincodeID", map[string][]byte{"key1": []byte("value1"), "key2": []byte("value2")})
			ledgerPtr.TxFinished("txUuid1", true)
			uuid := util.GenerateUUID()
			tx, err := protos.NewTransaction(protos.ChaincodeID{Path: "testUrl"}, uuid, "anyfunction", []string{"param1, param2"})
			Expect(err).To(BeNil())
			err = ledgerPtr.CommitTxBatch(0, []*protos.Transaction{tx}, nil, []byte("proof"))
			Expect(err).To(BeNil())
		})
		It("copies state without error and validates values are equal", func() {
			Expect(ledgerPtr.BeginTxBatch(1)).To(BeNil())
			ledgerPtr.TxBegin("txUuid1")
			ledgerPtr.CopyState("chaincodeID", "chaincodeID2")
			ledgerPtr.TxFinished("txUuid1", true)
			uuid := util.GenerateUUID()
			tx, err := protos.NewTransaction(protos.ChaincodeID{Path: "testUrl"}, uuid, "anyfunction", []string{"param1, param2"})
			Expect(err).To(BeNil())
			err = ledgerPtr.CommitTxBatch(1, []*protos.Transaction{tx}, nil, []byte("proof"))
			Expect(err).To(BeNil())
			values, err := ledgerPtr.GetStateMultipleKeys("chaincodeID2", []string{"key1", "key2"}, true)
			Expect(err).To(BeNil())
			Expect(values).To(Equal([][]byte{[]byte("value1"), []byte("value2")}))
		})
	})

	Describe("Ledger EmptyArrayValue", func() {
		ledgerPtr := InitSpec()
		It("creates, populates, finishes, commits and validates a batch", func() {