### Question:
RemoteInputChannel extends InputChannel implements BufferRecycler, BufferListener { void retriggerSubpartitionRequest(int subpartitionIndex) throws IOException { checkState(partitionRequestClient != null, "Missing initial subpartition request."); if (increaseBackoff()) { partitionRequestClient.requestSubpartition( partitionId, subpartitionIndex, this, getCurrentBackoff()); } else { failPartitionRequest(); } } RemoteInputChannel(
		SingleInputGate inputGate,
		int channelIndex,
		ResultPartitionID partitionId,
		ConnectionID connectionId,
		ConnectionManager connectionManager,
		int initialBackOff,
		int maxBackoff,
		InputChannelMetrics metrics,
		@Nonnull MemorySegmentProvider memorySegmentProvider); @VisibleForTesting @Override void requestSubpartition(int subpartitionIndex); @Override boolean isReleased(); @Override String toString(); @Override void recycle(MemorySegment segment); int getNumberOfAvailableBuffers(); int getNumberOfRequiredBuffers(); int getSenderBacklog(); @Override NotificationResult notifyBufferAvailable(Buffer buffer); @Override void notifyBufferDestroyed(); int getUnannouncedCredit(); int getAndResetUnannouncedCredit(); int getNumberOfQueuedBuffers(); @Override int unsynchronizedGetNumberOfQueuedBuffers(); int unsynchronizedGetExclusiveBuffersUsed(); int unsynchronizedGetFloatingBuffersAvailable(); InputChannelID getInputChannelId(); int getInitialCredit(); BufferProvider getBufferProvider(); @Nullable Buffer requestBuffer(); void onBuffer(Buffer buffer, int sequenceNumber, int backlog); void onEmptyBuffer(int sequenceNumber, int backlog); void onFailedPartitionRequest(); void onError(Throwable cause);  }### Answer:
@Test(expected = IllegalStateException.class) public void testRetriggerWithoutPartitionRequest() throws Exception { PartitionRequestClient connClient = mock(PartitionRequestClient.class); SingleInputGate inputGate = mock(SingleInputGate.class); RemoteInputChannel ch = createRemoteInputChannel(inputGate, connClient, 500, 3000); ch.retriggerSubpartitionRequest(0); }