@Test
  public void nodeDoesNotSendCommitMessageAfterBlockIsImportedAndBeforeNewBlockEvent() {
    peers.verifyMessagesReceived(expectedTxProposal);
    peers.getNonProposing(0).injectCommit(roundId, expectedProposedBlock.getHash());
    assertThat(context.getBlockchain().getChainHeadBlockNumber()).isEqualTo(0);
    peers.verifyNoMessagesReceived();

    peers.getNonProposing(1).injectCommit(roundId, expectedProposedBlock.getHash());
    assertThat(context.getBlockchain().getChainHeadBlockNumber()).isEqualTo(1);
    peers.verifyNoMessagesReceived();

    peers.getNonProposing(0).injectPrepare(roundId, expectedProposedBlock.getHash());
    peers.verifyNoMessagesReceived();
    peers.getNonProposing(1).injectPrepare(roundId, expectedProposedBlock.getHash());
    peers.verifyNoMessagesReceived();
    peers.getNonProposing(2).injectPrepare(roundId, expectedProposedBlock.getHash());
    peers.verifyNoMessagesReceived();
  }
These tests assume the basic function of the Ibft Round State Machine has been proven via the
LocalNodeIsNotProposerTest.
consensus/ibft/src/integration-test/java/org/hyperledger/besu/consensus/ibft/tests/LocalNodeIsProposerTest.java