### Question:
ChannelAdaptor extends QBeanSupport implements ChannelAdaptorMBean, Channel, Loggeable, ExceptionHandlerConfigAware { public ISOMsg receive () { return (ISOMsg) sp.in (out); } ChannelAdaptor(); void initService(); void startService(); void stopService(); void destroyService(); synchronized void setReconnectDelay(long delay); long getReconnectDelay(); synchronized void setInQueue(String in); String getInQueue(); synchronized void setOutQueue(String out); void send(ISOMsg m); void send(ISOMsg m, long timeout); ISOMsg receive(); ISOMsg receive(long timeout); boolean isConnected(); String getOutQueue(); ISOChannel newChannel(Element e, QFactory f); synchronized void setHost(String host); String getHost(); synchronized void setPort(int port); int getPort(); synchronized void setSocketFactory(String sFac); void resetCounters(); String getCountersAsString(); int getTXCounter(); int getRXCounter(); int getConnectsCounter(); long getLastTxnTimestampInMillis(); long getIdleTimeInMillis(); String getSocketFactory(); void dump(PrintStream p, String indent);  }### Answer:
@Test public void receivePullsMessageFromUnderlyingChannel() throws Exception { StubISOChannel stubISOChannel = new StubISOChannel(); channelAdaptor = configureAndStart(new ChannelAdaptorWithoutQ2(stubISOChannel)); stubISOChannel.receiveQueue.add(new ISOMsg("0800")); assertThat(channelAdaptor.receive(1000), hasMti("0800")); }