### Question:
SignedDataValidator { public boolean validatePrepare(final SignedData<PreparePayload> msg) { final String msgType = "Prepare"; if (!isMessageForCurrentRoundFromValidatorAndProposalAvailable(msg, msgType)) { return false; } if (msg.getAuthor().equals(expectedProposer)) { LOG.info("Illegal Prepare message; was sent by the round's proposer."); return false; } return validateDigestMatchesProposal(msg.getPayload().getDigest(), msgType); } SignedDataValidator(
      final Collection<Address> validators,
      final Address expectedProposer,
      final ConsensusRoundIdentifier roundIdentifier); boolean validateProposal(final SignedData<ProposalPayload> msg); boolean validatePrepare(final SignedData<PreparePayload> msg); boolean validateCommit(final SignedData<CommitPayload> msg);  }### Answer:
@Test public void receivingAPrepareMessageBeforeProposalFails() { final Prepare prepareMsg = proposerMessageFactory.createPrepare(roundIdentifier, Hash.ZERO); assertThat(validator.validatePrepare(prepareMsg.getSignedPayload())).isFalse(); }