-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathEncryptionTestsAppTests.java
111 lines (96 loc) · 4.23 KB
/
EncryptionTestsAppTests.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package com.example;
import cn.alphahub.dtt.plus.util.JacksonUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.example.common.page.PageWrapper;
import com.example.demain.DttMember;
import com.example.service.MemberService;
import com.fasterxml.jackson.core.type.TypeReference;
import io.github.weasleyj.mybatis.encrypt.config.MybatisEncryptProperties;
import io.github.weasleyj.mybatis.encrypt.core.EncryptStrategy;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.util.Assert;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@SpringBootTest
class EncryptionTestsAppTests {
@Autowired
private MemberService memberService;
@Autowired
private MybatisEncryptProperties mybatisEncryptProperties;
@Test
void contextLoads() {
}
@Test
void testBatchInsert() throws IOException {
String resource = IOUtils.resourceToString("member.json", StandardCharsets.UTF_8, Thread.currentThread().getContextClassLoader());
PageWrapper<DttMember> pageWrapper = JacksonUtil.readValue(resource, new TypeReference<PageWrapper<DttMember>>() {
});
List<DttMember> list = pageWrapper.getList();
List<DttMember> insertList = new ArrayList<>();
int i = 1000;
Long id = null;
DttMember one = memberService.getOne(new QueryWrapper<DttMember>().select("MAX(member_id) memberId"));
if (null != one) {
id = one.getMemberId();
} else id = 1L;
for (DttMember dttMember : list) {
i += 1;
id += 1;
dttMember.setOpenId(RandomStringUtils.randomAlphanumeric(16));
dttMember.setMemberId(id + 1);
dttMember.setNickname(dttMember.getNickname() + i);
insertList.add(dttMember);
}
boolean batch = memberService.saveBatch(insertList);
Assert.isTrue(batch);
}
@Test
void testUpdateSingle() {
DttMember member = JacksonUtil.readValue("{\n" +
" \"memberId\": 3,\n" +
" \"openId\": \"fawezOE5sT\",\n" +
" \"nickname\": \"蒋震南1001\",\n" +
" \"isEnable\": true,\n" +
" \"balance\": 865.0000,\n" +
" \"birthday\": \"2022-12-20 01:58:00\",\n" +
" \"status\": 0,\n" +
" \"deleted\": 1,\n" +
" \"registrarDate\": \"2022-12-20\",\n" +
" \"accelerateBeginTime\": \"01:58:01\",\n" +
" \"accelerateEndTime\": \"01:58:01\",\n" +
" \"updateTime\": \"2022-12-20 01:58:00\"\n" +
" }", DttMember.class);
member.setOpenId(RandomStringUtils.randomAlphanumeric(16));
boolean update = this.memberService.update(member, Wrappers.lambdaUpdate(DttMember.class)
.eq(DttMember::getMemberId, 3)
);
Assert.isTrue(update, "update must be success");
boolean update2 = this.memberService.update(null, Wrappers.lambdaUpdate(DttMember.class)
.eq(DttMember::getMemberId, 3)
.set(DttMember::getIsEnable, false)
);
Assert.isTrue(update2, "update must be success");
}
/**
* Use an encrypted field to query for data
*/
@Test
void testSelectByEncryptedFields() {
DttMember member = new DttMember().setNickname("蒋震南1005");
log.info("before {}", JacksonUtil.toJson(member));
DttMember dttMember = EncryptStrategy.convert(member, mybatisEncryptProperties.getEncryptType());
log.info("after {}", JacksonUtil.toJson(member));
List<DttMember> members = this.memberService.list(Wrappers.lambdaQuery(DttMember.class)
.eq(DttMember::getNickname, dttMember.getNickname()));
log.info("select by encrypt filed: {}", JacksonUtil.toJson(members));
}
}