[ https://issues.apache.org/jira/browse/KAFKA-12263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17278735#comment-17278735 ]
Tom Bentley commented on KAFKA-12263: ------------------------------------- [~hachikuji] any chance you could review my PR? > Improve MockClient RequestMatcher interface > ------------------------------------------- > > Key: KAFKA-12263 > URL: https://issues.apache.org/jira/browse/KAFKA-12263 > Project: Kafka > Issue Type: Improvement > Reporter: Jason Gustafson > Assignee: Tom Bentley > Priority: Major > Labels: patch-available > > MockClient has a RequestMatcher interface which is used to verify that a > request received by the client matches an expected type: > {code} > @FunctionalInterface > public interface RequestMatcher { > boolean matches(AbstractRequest body); > } > {code} > The interface is awkward in practice because there is nothing we can do > except fail the test if the request does not match. But in that case, the > MockClient does not have enough context to throw a useful error explaining > why the match failed. Instead we just print a generic message about the match > failure. > A better approach would probably to turn this into more of a RequestAssertion: > {code} > @FunctionalInterface > public interface RequestAssertion { > void assertRequest(AbstractRequest body); > } > {code} > Then implementations could then be constructed of a sequence of Junit > assertions. When there is a failure, we can trace it back to the specific > assertion that failed. Of course they can do that now with RequestMatcher as > well, but the expectation would be more explicit. -- This message was sent by Atlassian Jira (v8.3.4#803005)