func TestLedgerPutRawBlock(t *testing.T) { ledgerTestWrapper := createFreshDBAndTestLedgerWrapper(t) ledger := ledgerTestWrapper.ledger block := new(protos.Block) block.PreviousBlockHash = []byte("foo") block.StateHash = []byte("bar") ledger.PutRawBlock(block, 4) testutil.AssertEquals(t, ledgerTestWrapper.GetBlockByNumber(4), block) ledger.BeginTxBatch(1) ledger.TxBegin("txUuid") ledger.SetState("chaincode1", "key1", []byte("value1")) ledger.TxFinished("txUuid", true) transaction, _ := buildTestTx(t) ledger.CommitTxBatch(1, []*protos.Transaction{transaction}, nil, []byte("proof")) previousHash, _ := block.GetHash() newBlock := ledgerTestWrapper.GetBlockByNumber(5) if !bytes.Equal(newBlock.PreviousBlockHash, previousHash) { t.Fatalf("Expected new block to properly set its previous hash") } // Assert that a non-existent block is nil testutil.AssertNil(t, ledgerTestWrapper.GetBlockByNumber(2)) }
ledgerPtr.TxBegin("txUuid1") Expect(ledgerPtr.SetState("chaincode1", "key1", []byte("value1"))).To(BeNil()) ledgerPtr.TxFinished("txUuid1", true) }) It("should retrieve a delta state hash array of length 1", func() { _, txDeltaHashes, err := ledgerPtr.GetTempStateHashWithTxDeltaStateHashes() Expect(err).To(BeNil()) Expect(len(txDeltaHashes)).To(Equal(1)) }) }) Describe("Ledger PutRawBlock", func() { ledgerPtr := InitSpec() block := new(protos.Block) block.PreviousBlockHash = []byte("foo") block.StateHash = []byte("bar") It("creates a raw block and puts it in the ledger without error", func() { Expect(ledgerPtr.PutRawBlock(block, 4)).To(BeNil()) }) It("should return the same block that was stored", func() { Expect(ledgerPtr.GetBlockByNumber(4)).To(Equal(block)) }) It("creates, populates and finishes a transaction", func() { Expect(ledgerPtr.BeginTxBatch(1)).To(BeNil()) ledgerPtr.TxBegin("txUuid") Expect(ledgerPtr.SetState("chaincode1", "key1", []byte("value1"))).To(BeNil()) ledgerPtr.TxFinished("txUuid", true) }) It("should commit the batch", func() { uuid := util.GenerateUUID()