### Question:
MultiLangProtocol { boolean shardEnded(ShardEndedInput shardEndedInput) { return waitForStatusMessage(ShardEndedMessage.ACTION, shardEndedInput.checkpointer(), messageWriter.writeShardEndedMessage(shardEndedInput)); } MultiLangProtocol(MessageReader messageReader, MessageWriter messageWriter,
            InitializationInput initializationInput, MultiLangDaemonConfiguration configuration);   }### Answer:
@Test public void shardEndedTest() { when(messageWriter.writeShardEndedMessage(any(ShardEndedInput.class))).thenReturn(buildFuture(true)); when(messageReader.getNextMessageFromSTDOUT()).thenReturn(buildFuture(new StatusMessage(ShardEndedMessage.ACTION))); assertThat(protocol.shardEnded(ShardEndedInput.builder().build()), equalTo(true)); }