2017-01-19 12 views
0

「ヘッダーの処理」に関するドキュメントhereに従っています。私はヘッダーでサービスコール呼び出しをテストする方法を理解できません。通常、私はどうなるLagom - ヘッダーを使用したサービスコールのテスト

service.sayHello().invoke(...) 

は私がServerServiceCallHeaderServiceCallinvokeWithHeaders(...)と私のServiceCallHeaderServiceCallとして実装されて受け入れることに気づいたが、私はServerServiceCallまたはHeaderServiceCallに私のサービスのAPIを変更しようとするたびに、私は得る:

Error in custom provider, java.lang.IllegalArgumentException: Service calls must return ServiceCall, subtypes are not allowed 

カスタムリクエストヘッダーでサービスコールを呼び出すテストを作成するにはどうすればよいですか?私はHeaderServiceCallで実装し、HeaderServiceCallへの呼び出しをキャストして、APIにServiceCallという名前のコールを維持しようとしましたが、キャストの例外がありました。どんな助けも大歓迎です。ありがとう。

答えて

1
私はちょうどそれを確認するために私のテストコードを採用しました

public HeaderServiceCall<NewUser, RegUserStatus> addUser(String id) { 

    return (reqHeaders, postedUser) -> { 
     System.out.println(reqHeaders.getHeader("Referer")); 
     PersistentEntityRef<UserCommand> ref = persistentEntityRegistry.refFor(UserEntity.class, id); 
     return ref.ask(new UserCommand.RegisterUser(id, postedUser)).thenApply(stat -> Pair.create(ResponseHeader.OK, stat)); 
    }; 
} 

私のAPI:

ServiceCall<NewUser, RegUserStatus> addUser(String id); 

とテスト:

@Test 
public void testIt() { 
    withServer(defaultSetup(), server -> { 
     UsersService service = server.client(UsersService.class); 
     RegUserStatus created = service.addUser("aaa").handleRequestHeader(
       rh -> rh.withHeader("Referer" ,"winter") 
     ).invoke(new NewUser("aaa")).toCompletableFuture().get(5, SECONDS); 
     assertEquals(true, created.ok); // default greeting 

    }); 
} 
+0

あなたが実際に要求を変更していませんあなたのテストのヘッダー。 – ehaydenr

+0

今修正しました – jarek000000

関連する問題