### Question:
SignedDataValidator { public boolean validateCommit(final SignedData<CommitPayload> msg) { final String msgType = "Commit"; if (!isMessageForCurrentRoundFromValidatorAndProposalAvailable(msg, msgType)) { return false; } final Hash proposedBlockDigest = proposal.get().getPayload().getDigest(); final Address commitSealCreator = Util.signatureToAddress(msg.getPayload().getCommitSeal(), proposedBlockDigest); if (!commitSealCreator.equals(msg.getAuthor())) { LOG.info("Invalid Commit message. Seal was not created by the message transmitter."); 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 receivingACommitMessageBeforeProposalFails() { final Commit commitMsg = proposerMessageFactory.createCommit( roundIdentifier, Hash.ZERO, proposerKey.sign(block.getHash())); assertThat(validator.validateCommit(commitMsg.getSignedPayload())).isFalse(); }