@BeforeEach
  public void setup() {
    expectedProposedBlock = context.createBlockForProposalFromChainHead(blockTimeStamp);
    expectedTxProposal =
        localNodeMessageFactory.createProposal(
            roundId, expectedProposedBlock, Collections.emptyList(), Collections.emptyList());

    expectedTxPrepare =
        localNodeMessageFactory.createPrepare(roundId, expectedProposedBlock.getHash());

    expectedTxCommit =
        new Commit(
            createSignedCommitPayload(
                roundId,
                expectedProposedBlock,
                context.getLocalNodeParams().getNodeKey(),
                context.getBlockEncoder()));

    // Trigger "block timer" to send proposal.
    context.getController().handleBlockTimerExpiry(new BlockTimerExpiry(roundId));
  }
These tests assume the basic function of the Qbft Round State Machine has been proven via the
LocalNodeIsNotProposerTest.
consensus/qbft-core/src/integration-test/java/org/hyperledger/besu/consensus/qbft/core/test/LocalNodeIsProposerTest.java