Ai
140 Star 1.1K Fork 368

GVPcanonical-entropy/nop-entropy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
TestLoginApi.java 5.09 KB
一键复制 编辑 原始数据 按行查看 历史
canonical-entropy 提交于 2024-03-10 09:29 +08:00 . 更新版权声明
/**
* Copyright (c) 2017-2024 Nop Platform. All rights reserved.
* Author: canonical_entropy@163.com
* Blog: https://www.zhihu.com/people/canonical-entropy
* Gitee: https://gitee.com/canonical-entropy/nop-entropy
* Github: https://github.com/entropy-cloud/nop-entropy
*/
package io.nop.auth.service;
import io.nop.api.core.annotations.autotest.EnableSnapshot;
import io.nop.api.core.annotations.autotest.NopTestConfig;
import io.nop.api.core.beans.ApiRequest;
import io.nop.api.core.beans.ApiResponse;
import io.nop.api.core.util.FutureHelper;
import io.nop.auth.api.LoginApi;
import io.nop.auth.api.messages.AccessTokenRequest;
import io.nop.auth.api.messages.LoginRequest;
import io.nop.auth.api.messages.LoginResult;
import io.nop.auth.api.messages.LoginUserInfo;
import io.nop.auth.api.messages.LogoutRequest;
import io.nop.auth.api.messages.RefreshTokenRequest;
import io.nop.auth.service.audit.AuditServiceImpl;
import io.nop.autotest.junit.EnableVariants;
import io.nop.autotest.junit.JunitAutoTestCase;
import io.nop.core.type.utils.TypeReference;
import io.nop.graphql.core.IGraphQLExecutionContext;
import io.nop.graphql.core.ast.GraphQLOperationType;
import io.nop.graphql.core.engine.IGraphQLEngine;
import io.nop.graphql.core.rpc.RpcServiceOnGraphQL;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import java.util.Collections;
import static org.junit.jupiter.api.Assertions.assertTrue;
@NopTestConfig(initDatabaseSchema = true, localDb = true, disableSnapshot = false)
public class TestLoginApi extends JunitAutoTestCase {
@Inject
IGraphQLEngine graphQLEngine;
@Inject
AuditServiceImpl auditService;
LoginApi buildLoginApi() {
RpcServiceOnGraphQL service = new RpcServiceOnGraphQL(graphQLEngine, "LoginApi", Collections.emptyList());
return service.asProxy(LoginApi.class);
}
@EnableSnapshot
@Test
public void testCreateUser() {
ApiRequest<?> request = input("request.json5", ApiRequest.class);
IGraphQLExecutionContext context = graphQLEngine.newRpcContext(GraphQLOperationType.mutation, "NopAuthUser__save",
request);
Object result = FutureHelper.syncGet(graphQLEngine.executeRpcAsync(context));
output("response.json5", result);
assertTrue(FutureHelper.waitUntil(() -> auditService.isAllProcessed(), 1000));
try {
Thread.sleep(200);
} catch (InterruptedException e) {
Thread.interrupted();
}
}
@EnableSnapshot
@Test
public void testLogin() {
LoginApi loginApi = buildLoginApi();
createTestUser();
ApiRequest<LoginRequest> request = input("request.json5", new TypeReference<ApiRequest<LoginRequest>>() {
}.getType());
ApiResponse<LoginResult> result = loginApi.login(request);
output("response.json5", result);
assertTrue(FutureHelper.waitUntil(() -> auditService.isAllProcessed(), 1000));
}
@EnableSnapshot
@Test
public void testLogin2() {
LoginApi loginApi = buildLoginApi();
createTestUser();
ApiRequest<LoginRequest> request = request("request.json5", LoginRequest.class);
ApiResponse<LoginResult> result = loginApi.login(request);
output("response.json5", result);
ApiResponse<LoginResult> result2 = loginApi.login(request);
output("response2.json5", result2);
assertTrue(FutureHelper.waitUntil(() -> auditService.isAllProcessed(), 1000));
}
void createTestUser() {
IGraphQLExecutionContext context = graphQLEngine.newRpcContext(GraphQLOperationType.mutation, "NopAuthUser__save",
input("request-createUser.json5", ApiRequest.class));
FutureHelper.syncGet(graphQLEngine.executeRpcAsync(context));
}
@EnableSnapshot
@Test
public void testLoginLogout() {
LoginApi loginApi = buildLoginApi();
createTestUser();
ApiRequest<LoginRequest> request = request("1_request.json5", LoginRequest.class);
ApiResponse<LoginResult> result = loginApi.login(request);
output("1_response.json5", result);
ApiRequest<AccessTokenRequest> userRequest = request("2_userRequest.json5", AccessTokenRequest.class);
ApiResponse<LoginUserInfo> userResponse = loginApi.getLoginUserInfo(userRequest);
output("2_userResponse.json5", userResponse);
ApiRequest<RefreshTokenRequest> refreshTokenRequest = request("3_refreshTokenRequest.json5",
RefreshTokenRequest.class);
ApiResponse<LoginResult> refreshTokenResponse = loginApi.refreshToken(refreshTokenRequest);
output("3_refreshTokenResponse.json5", refreshTokenResponse);
ApiRequest<LogoutRequest> logoutRequest = request("4_logoutRequest.json5", LogoutRequest.class);
ApiResponse<Void> logoutResponse = loginApi.logout(logoutRequest);
output("4_logoutResponse.json5", logoutResponse);
}
@ParameterizedTest
@EnableVariants
@EnableSnapshot
public void testVariants(String variant) {
output("displayName.json5", testInfo.getDisplayName());
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/canonical-entropy/nop-entropy.git
git@gitee.com:canonical-entropy/nop-entropy.git
canonical-entropy
nop-entropy
nop-entropy
master

搜索帮助