### Question:
EbftBlockChain implements ConsensusBlockChain<EbftProto.EbftBlock, EbftBlock> { @Override public Map<String, List<String>> addBlock(ConsensusBlock<EbftProto.EbftBlock> block) { this.lock.lock(); try { blockChainManagerMock.addBlock(block); this.blockKeyStore.put(block.getIndex(), block.getHash().getBytes()); loggingBlock((EbftBlock) block); } finally { this.lock.unlock(); } return new HashMap<>(); } EbftBlockChain(Block genesisBlock,
                          String dbPath,
                          String blockKeyStorePath,
                          String blockStorePath
                          ); @Override BranchId getBranchId(); @Override Consensus getConsensus(); @Override EbftBlockKeyStore getBlockKeyStore(); @Override BlockChainManager<EbftProto.EbftBlock> getBlockChainManager(); @Override ContractManager getContractManager(); @Override EbftBlock getGenesisBlock(); @Override Map<String, EbftBlock> getUnConfirmedData(); @Override ReentrantLock getLock(); @Override Map<String, List<String>> addBlock(ConsensusBlock<EbftProto.EbftBlock> block); @Override Map<String, List<String>> addBlock(ConsensusBlock<EbftProto.EbftBlock> block, boolean broadcast); @Override boolean isValidator(String addr); @Override ValidatorSet getValidators();  }### Answer:
@Test public void addBlockTest() { this.ebftBlockChain.addBlock(ebftBlock1); assertEquals(1L, this.blockChainManager.getLastIndex()); this.ebftBlockChain.addBlock(ebftBlock2); assertEquals(2L, this.blockChainManager.getLastIndex()); this.ebftBlockChain.addBlock(ebftBlock3); assertEquals(3L, this.blockChainManager.getLastIndex()); }