0

HTTP リクエストから特定のヘッダー 'REMOTE_USER' にアクセスする必要があるフローがあります。

 <flow name="http" >
      <http:inbound-endpoint exchange-pattern="request-response" host="127.0.0.1" port="8501"/>
      <logger message="#[message.inboundProperties.get('http.headers').get('REMOTE_USER')]" level="ERROR" />
...

このヘッダーを設定して単体テストを作成し、フローをテストしたいと思います。

@Test
public void testSend() throws Exception{
  MuleClient client = muleContext.getClient();                                
  HashMap<String, Object> headers = new HashMap<String, Object>();
  headers.put("REMOTE_USER", "test");
  Map<String, Object> properties = new HashMap<String, Object>();           
  properties.put("http.headers", headers);          
  MuleMessage result = client.send("http://localhost:8501", "test", properties);         
  assertNotNull(result.getPayloadAsString());
}    

これをテストする方法はありますか?

4

1 に答える 1

0

HTTP ヘッダーに追加するには、スコープが outbound の message-properties を使用します。

 <message-properties-transformer  doc:name="REMOTE_USER">
            <add-message-property key="REMOTE_USER" value="abcdxyz"/>
 </message-properties-transformer>

Functional Test でテストするには:

public class XYZTest extends FunctionalTestCase {

 @Test
 public void testXyz(){
        HttpClient hc = new DefaultHttpClient();
        HttpPost post = new HttpPost();
        post.set.....
         .......

      org.apache.http.HttpResponse response = hc.execute(post);
      assertNotNull(response.getFirstHeader("REMOTE_USER"));
  }  
}
于 2014-05-19T10:09:48.473 に答える