ledgerPtr.TxBegin("txUuid" + strconv.Itoa(i)) Expect(ledgerPtr.SetState("chaincode"+strconv.Itoa(i), "key"+strconv.Itoa(i), []byte("value"+strconv.Itoa(i)))).To(BeNil()) ledgerPtr.TxFinished("txUuid"+strconv.Itoa(i), true) uuid := util.GenerateUUID() tx, err := protos.NewTransaction(protos.ChaincodeID{Path: "testUrl"}, uuid, "anyfunction", []string{"param1, param2"}) Expect(err).To(BeNil()) err = ledgerPtr.CommitTxBatch(i, []*protos.Transaction{tx}, nil, []byte("proof")) Expect(err).To(BeNil()) } }) It("forces some ErrOutOfBounds conditions", func() { ledgerPtr.GetBlockByNumber(9) _, err := ledgerPtr.GetBlockByNumber(10) Expect(err).To(Equal(ledger.ErrOutOfBounds)) ledgerPtr.GetStateDelta(9) _, err = ledgerPtr.GetStateDelta(10) Expect(err).To(Equal(ledger.ErrOutOfBounds)) }) }) Describe("Ledger RollBackwardsAndForwards", func() { ledgerPtr := InitSpec() // Block 0 It("creates, populates, finishes, commits and validates a batch", func() { Expect(ledgerPtr.BeginTxBatch(0)).To(BeNil()) ledgerPtr.TxBegin("txUuid1") Expect(ledgerPtr.SetState("chaincode1", "key1", []byte("value1A"))).To(BeNil()) Expect(ledgerPtr.SetState("chaincode2", "key2", []byte("value2A"))).To(BeNil()) Expect(ledgerPtr.SetState("chaincode3", "key3", []byte("value3A"))).To(BeNil())