Skip to content

Commit 419e248

Browse files
Somebody-JIANfit2-zhao
authored andcommitted
test: test about resource approval details
1 parent 5502eaf commit 419e248

2 files changed

Lines changed: 78 additions & 0 deletions

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package cn.cordys.crm.approval.controller;
2+
3+
import cn.cordys.crm.approval.dto.response.ResourceApprovalResponse;
4+
import cn.cordys.crm.base.BaseTest;
5+
import cn.cordys.crm.contract.constants.ContractApprovalStatus;
6+
import cn.cordys.security.UserApprovalDTO;
7+
import org.junit.jupiter.api.Assertions;
8+
import org.junit.jupiter.api.Order;
9+
import org.junit.jupiter.api.Test;
10+
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
11+
import org.springframework.boot.test.context.SpringBootTest;
12+
import org.springframework.test.context.jdbc.Sql;
13+
import org.springframework.test.context.jdbc.SqlConfig;
14+
import org.springframework.test.web.servlet.MvcResult;
15+
16+
import java.util.List;
17+
18+
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
19+
@AutoConfigureMockMvc
20+
class ResourceApprovalControllerTests extends BaseTest {
21+
22+
private static final String DETAIL = "/detail/{0}";
23+
private static final String RESOURCE_ID = "approval_resource_test_001";
24+
private static final String CURRENT_APPROVER_ID = "appr_user_curr";
25+
26+
@Override
27+
protected String getBasePath() {
28+
return "/resource-approve";
29+
}
30+
31+
@Sql(
32+
scripts = {"/dml/init_resource_approval_test.sql"},
33+
config = @SqlConfig(encoding = "utf-8", transactionMode = SqlConfig.TransactionMode.ISOLATED),
34+
executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD
35+
)
36+
@Test
37+
@Order(1)
38+
void testResourceDetailOnlyCurrentNodeTasks() throws Exception {
39+
MvcResult mvcResult = requestGetWithOkAndReturn(DETAIL, RESOURCE_ID);
40+
ResourceApprovalResponse response = getResultData(mvcResult, ResourceApprovalResponse.class);
41+
42+
Assertions.assertNotNull(response);
43+
Assertions.assertEquals(RESOURCE_ID, response.getResourceId());
44+
Assertions.assertEquals(ContractApprovalStatus.APPROVING.name(), response.getApproveStatus());
45+
46+
List<UserApprovalDTO> approveUserList = response.getApproveUserList();
47+
Assertions.assertNotNull(approveUserList);
48+
Assertions.assertEquals(1, approveUserList.size());
49+
50+
UserApprovalDTO currentApprover = approveUserList.getFirst();
51+
Assertions.assertEquals(CURRENT_APPROVER_ID, currentApprover.getId());
52+
Assertions.assertEquals(ContractApprovalStatus.APPROVED.name(), currentApprover.getApproveResult());
53+
Assertions.assertEquals("current-node-comment", currentApprover.getApproveReason());
54+
}
55+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
DELETE FROM approval_record WHERE id IN ('approval_record_current', 'approval_record_other');
2+
DELETE FROM approval_task WHERE id IN ('approval_task_current', 'approval_task_other');
3+
DELETE FROM approval_instance WHERE id = 'approval_instance_test_001';
4+
DELETE FROM sys_user WHERE id IN ('appr_user_curr', 'appr_user_othr');
5+
6+
INSERT INTO sys_user (`id`, `name`, `email`, `password`, `gender`, `phone`, `language`, `last_organization_id`, `create_time`, `update_time`, `create_user`, `update_user`)
7+
VALUES
8+
('appr_user_curr', 'Current Approver', 'current.approver@cordys-crm.io', MD5('CordysCRM'), 1, '13900000001', 'zh_CN', '100001', 1736240043609, 1736240043609, 'admin', 'admin'),
9+
('appr_user_othr', 'Other Approver', 'other.approver@cordys-crm.io', MD5('CordysCRM'), 1, '13900000002', 'zh_CN', '100001', 1736240043609, 1736240043609, 'admin', 'admin');
10+
11+
INSERT INTO approval_instance (`id`, `flow_id`, `type`, `resource_id`, `submitter_id`, `current_node_id`, `approval_status`, `submit_time`, `approval_time`, `result`, `create_time`, `update_time`, `create_user`, `update_user`)
12+
VALUES
13+
('approval_instance_test_001', 'approval_flow_test_001', 'contract', 'approval_resource_test_001', 'admin', 'node_current', 'APPROVING', 1736240043609, NULL, NULL, 1736240043609, 1736240043609, 'admin', 'admin');
14+
15+
INSERT INTO approval_task (`id`, `node_id`, `instance_id`, `approver_id`, `task_status`, `is_add_sign`, `is_return`, `is_cc`, `create_time`, `update_time`, `create_user`, `update_user`)
16+
VALUES
17+
('approval_task_current', 'node_current', 'approval_instance_test_001', 'appr_user_curr', 'APPROVED', 0, 0, 0, 1736240043609, 1736240043609, 'admin', 'admin'),
18+
('approval_task_other', 'node_other', 'approval_instance_test_001', 'appr_user_othr', 'UNAPPROVED', 0, 0, 0, 1736241043609, 1736241043609, 'admin', 'admin');
19+
20+
INSERT INTO approval_record (`id`, `instance_id`, `task_id`, `node_id`, `result`, `comment`, `create_time`, `update_time`, `create_user`, `update_user`)
21+
VALUES
22+
('approval_record_current', 'approval_instance_test_001', 'approval_task_current', 'node_current', 'APPROVED', 'current-node-comment', 1736240043609, 1736240043609, 'admin', 'admin'),
23+
('approval_record_other', 'approval_instance_test_001', 'approval_task_other', 'node_other', 'UNAPPROVED', 'other-node-comment', 1736241043609, 1736241043609, 'admin', 'admin');

0 commit comments

Comments
 (0)