Lagom - 使用 Headers 测试服务调用
Lagom - Testing Service Call with Headers
我正在尝试遵循有关 "Handling headers." 的文档 here 我不知道如何使用 headers 测试服务调用调用。通常,我会做
service.sayHello().invoke(...)
我注意到 ServerServiceCall
和 HeaderServiceCall
接受 invokeWithHeaders(...)
并且我的 ServiceCall
被实现为 HeaderServiceCall
,但是每当我尝试更改我的服务时API 到 ServerServiceCall
或 HeaderServiceCall
,我得到:
Error in custom provider, java.lang.IllegalArgumentException: Service calls must return ServiceCall, subtypes are not allowed
如何编写一个测试来调用带有自定义请求的服务调用 headers?我尝试在 API 中将调用保持为 ServiceCall
,使用 HeaderServiceCall
实现,并在测试中将调用转换为 HeaderServiceCall
,但是当试图做到这一点。任何帮助深表感谢。谢谢。
我刚刚采用了我的测试代码来检查它:
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
});
}
我正在尝试遵循有关 "Handling headers." 的文档 here 我不知道如何使用 headers 测试服务调用调用。通常,我会做
service.sayHello().invoke(...)
我注意到 ServerServiceCall
和 HeaderServiceCall
接受 invokeWithHeaders(...)
并且我的 ServiceCall
被实现为 HeaderServiceCall
,但是每当我尝试更改我的服务时API 到 ServerServiceCall
或 HeaderServiceCall
,我得到:
Error in custom provider, java.lang.IllegalArgumentException: Service calls must return ServiceCall, subtypes are not allowed
如何编写一个测试来调用带有自定义请求的服务调用 headers?我尝试在 API 中将调用保持为 ServiceCall
,使用 HeaderServiceCall
实现,并在测试中将调用转换为 HeaderServiceCall
,但是当试图做到这一点。任何帮助深表感谢。谢谢。
我刚刚采用了我的测试代码来检查它:
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
});
}