### Question:
SyncBlockChainMsgHandler implements TronMsgHandler { @Override public void processMessage(PeerConnection peer, TronMessage msg) throws P2pException { SyncBlockChainMessage syncBlockChainMessage = (SyncBlockChainMessage) msg; check(peer, syncBlockChainMessage); long remainNum = 0; List<BlockId> summaryChainIds = syncBlockChainMessage.getBlockIds(); LinkedList<BlockId> blockIds = getLostBlockIds(summaryChainIds); if (blockIds.size() == 1) { peer.setNeedSyncFromUs(false); } else { peer.setNeedSyncFromUs(true); remainNum = tronNetDelegate.getHeadBlockId().getNum() - blockIds.peekLast().getNum(); } peer.setLastSyncBlockId(blockIds.peekLast()); peer.setRemainNum(remainNum); peer.sendMessage(new ChainInventoryMessage(blockIds, remainNum)); }  @Override void processMessage(PeerConnection peer, TronMessage msg);  }### Answer:
@Test public void testProcessMessage() { try { handler.processMessage(peer, new SyncBlockChainMessage(new ArrayList<>())); } catch (P2pException e) { Assert.assertTrue(e.getMessage().equals("SyncBlockChain blockIds is empty")); } }