test(QueryUtil): 修复测试用例中criteria的空指针问题
修改测试用例中query.getCriteria()的调用方式,使用orElse处理可能的空值情况,避免空指针异常
This commit is contained in:
+78
-48
@@ -1,7 +1,5 @@
|
||||
package cn.novalon.manage.db.dao;
|
||||
|
||||
import cn.novalon.manage.db.dao.QueryField;
|
||||
import cn.novalon.manage.db.dao.QueryUtil;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.data.relational.core.query.Criteria;
|
||||
import org.springframework.data.relational.core.query.Query;
|
||||
@@ -51,16 +49,16 @@ class QueryUtilDetailedTest {
|
||||
@QueryField(propName = "updatedAt", type = QueryField.Type.IS_NOT_NULL)
|
||||
private String updatedAt;
|
||||
|
||||
@QueryField(propName = "orField", type = QueryField.Type.OR,
|
||||
orPropVal = QueryField.Type.IS_NULL,
|
||||
orPropNames = {"field1", "field2"})
|
||||
@QueryField(propName = "orField", type = QueryField.Type.OR, orPropVal = QueryField.Type.IS_NULL, orPropNames = {
|
||||
"field1", "field2" })
|
||||
private String orField;
|
||||
|
||||
public TestQuery() {}
|
||||
public TestQuery() {
|
||||
}
|
||||
|
||||
public TestQuery(String name, Integer age, Integer score, String status, String email,
|
||||
String phone, List<String> roles, String keyword, String deletedAt,
|
||||
String updatedAt, String orField) {
|
||||
public TestQuery(String name, Integer age, Integer score, String status, String email,
|
||||
String phone, List<String> roles, String keyword, String deletedAt,
|
||||
String updatedAt, String orField) {
|
||||
this.name = name;
|
||||
this.age = age;
|
||||
this.score = score;
|
||||
@@ -74,24 +72,56 @@ class QueryUtilDetailedTest {
|
||||
this.orField = orField;
|
||||
}
|
||||
|
||||
public String getName() { return name; }
|
||||
public Integer getAge() { return age; }
|
||||
public Integer getScore() { return score; }
|
||||
public String getStatus() { return status; }
|
||||
public String getEmail() { return email; }
|
||||
public String getPhone() { return phone; }
|
||||
public List<String> getRoles() { return roles; }
|
||||
public String getKeyword() { return keyword; }
|
||||
public String getDeletedAt() { return deletedAt; }
|
||||
public String getUpdatedAt() { return updatedAt; }
|
||||
public String getOrField() { return orField; }
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Integer getAge() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public Integer getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public String getPhone() {
|
||||
return phone;
|
||||
}
|
||||
|
||||
public List<String> getRoles() {
|
||||
return roles;
|
||||
}
|
||||
|
||||
public String getKeyword() {
|
||||
return keyword;
|
||||
}
|
||||
|
||||
public String getDeletedAt() {
|
||||
return deletedAt;
|
||||
}
|
||||
|
||||
public String getUpdatedAt() {
|
||||
return updatedAt;
|
||||
}
|
||||
|
||||
public String getOrField() {
|
||||
return orField;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void testNullQuery() {
|
||||
Query query = QueryUtil.getQuery(null);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -100,7 +130,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery();
|
||||
Query query = QueryUtil.getQuery(testQuery, true);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -109,7 +139,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery();
|
||||
Query query = QueryUtil.getQuery(testQuery, false);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -118,7 +148,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery("John", null, null, null, null, null, null, null, null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -127,7 +157,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery(null, 18, null, null, null, null, null, null, null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -136,7 +166,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery(null, null, 100, null, null, null, null, null, null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -145,7 +175,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery(null, null, null, "active", null, null, null, null, null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -154,7 +184,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, "@example.com", null, null, null, null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -163,27 +193,27 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, null, "123", null, null, null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInCondition() {
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, null, null,
|
||||
Arrays.asList("admin", "user"), null, null, null, null);
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, null, null,
|
||||
Arrays.asList("admin", "user"), null, null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInConditionWithEmptyList() {
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, null, null,
|
||||
Collections.emptyList(), null, null, null, null);
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, null, null,
|
||||
Collections.emptyList(), null, null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -192,7 +222,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, "test", null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -201,7 +231,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, "keyword", null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -210,7 +240,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, null, "null", null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -219,7 +249,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, null, null, "value", null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -228,7 +258,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, null, null, null, "value");
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -237,7 +267,7 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery("", null, null, null, null, null, null, null, null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@@ -246,27 +276,27 @@ class QueryUtilDetailedTest {
|
||||
TestQuery testQuery = new TestQuery(null, null, null, null, null, null, null, null, null, null, null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMultipleConditions() {
|
||||
TestQuery testQuery = new TestQuery("John", 18, 100, "active", "@example.com",
|
||||
"123", Arrays.asList("admin"), "test", null, "value", null);
|
||||
TestQuery testQuery = new TestQuery("John", 18, 100, "active", "@example.com",
|
||||
"123", Arrays.asList("admin"), "test", null, "value", null);
|
||||
Query query = QueryUtil.getQuery(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testQueryAllWithoutDeletedAtFilter() {
|
||||
TestQuery testQuery = new TestQuery("John", 18, 100, "active", "@example.com",
|
||||
"123", Arrays.asList("admin"), "test", null, "value", null);
|
||||
TestQuery testQuery = new TestQuery("John", 18, 100, "active", "@example.com",
|
||||
"123", Arrays.asList("admin"), "test", null, "value", null);
|
||||
Query query = QueryUtil.getQueryAll(testQuery);
|
||||
assertNotNull(query);
|
||||
Criteria criteria = query.getCriteria();
|
||||
Criteria criteria = (Criteria) query.getCriteria().orElse(Criteria.empty());
|
||||
assertNotNull(criteria);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user