Skip to content

Commit d75bc57

Browse files
author
talhadilber
committed
folder refactor
1 parent df0bf81 commit d75bc57

File tree

8 files changed

+71
-32
lines changed

8 files changed

+71
-32
lines changed

src/test/java/com/beyt/BaseTestInstance.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,28 +40,28 @@ public abstract class BaseTestInstance {
4040
public static final Calendar INSTANCE = Calendar.getInstance();
4141

4242
public BaseTestInstance() {
43-
user1 = new User(null, "Name 1", "Surname 1", 35, INSTANCE.toInstant());
43+
user1 = new User(null, "Name 1", "Surname 1", 35, INSTANCE.toInstant(), User.Status.PASSIVE, User.Type.USER);
4444
customer1 = new Customer(null, "Customer 1", 20, INSTANCE.toInstant(), user1);
4545
INSTANCE.add(Calendar.MONTH, -1);
46-
user2 = new User(null, "Name 2", "Surname 1", 36, INSTANCE.toInstant());
46+
user2 = new User(null, "Name 2", "Surname 1", 36, INSTANCE.toInstant(), User.Status.ACTIVE, User.Type.ADMIN);
4747
customer2 = new Customer(null, "Customer 2", 21, INSTANCE.toInstant(), user2);
4848
INSTANCE.add(Calendar.MONTH, -1);
49-
user3 = new User(null, "Name 3", "Surname 1", 37, INSTANCE.toInstant());
49+
user3 = new User(null, "Name 3", "Surname 1", 37, INSTANCE.toInstant(), User.Status.PASSIVE, User.Type.USER);
5050
customer3 = new Customer(null, "Customer 3", 22, INSTANCE.toInstant(), user3);
5151
INSTANCE.add(Calendar.MONTH, -1);
52-
user4 = new User(null, "Name 4", "Surname 1", 38, INSTANCE.toInstant());
52+
user4 = new User(null, "Name 4", "Surname 1", 38, INSTANCE.toInstant(), User.Status.ACTIVE, User.Type.USER);
5353
customer4 = new Customer(null, "Customer 4", 23, INSTANCE.toInstant(), user4);
5454
INSTANCE.add(Calendar.MONTH, -1);
55-
user5 = new User(null, "Name 5", "Surname 1", 39, INSTANCE.toInstant());
55+
user5 = new User(null, "Name 5", "Surname 1", 39, INSTANCE.toInstant(), User.Status.PASSIVE, User.Type.ADMIN);
5656
customer5 = new Customer(null, "Customer 5", 24, INSTANCE.toInstant(), user5);
5757
INSTANCE.add(Calendar.MONTH, -1);
58-
user6 = new User(null, "Name 6", "Surname 1", 40, INSTANCE.toInstant());
58+
user6 = new User(null, "Name 6", "Surname 1", 40, INSTANCE.toInstant(), User.Status.ACTIVE, User.Type.ADMIN);
5959
customer6 = new Customer(null, "Customer 6", 25, INSTANCE.toInstant(), user6);
6060
INSTANCE.add(Calendar.MONTH, -1);
61-
user7 = new User(null, "Name 7", "Surname 1", 41, INSTANCE.toInstant());
61+
user7 = new User(null, "Name 7", "Surname 1", 41, INSTANCE.toInstant(), User.Status.ACTIVE, User.Type.USER);
6262
customer7 = new Customer(null, "Customer 7", 26, INSTANCE.toInstant(), user7);
6363
INSTANCE.add(Calendar.MONTH, -1);
64-
user8 = new User(null, "Name 8", "Surname 1", 42, INSTANCE.toInstant());
64+
user8 = new User(null, "Name 8", "Surname 1", 42, INSTANCE.toInstant(), User.Status.PASSIVE, User.Type.ADMIN);
6565
customer8 = new Customer(null, null, 27, INSTANCE.toInstant(), user8);
6666

6767
}

src/test/java/com/beyt/TestApplication.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package com.beyt;
22

33
import com.beyt.annotation.EnableDynamicQueryArgumentResolvers;
4-
import com.beyt.util.ApplicationContextUtil;
4+
import com.beyt.annotation.EnableJpaDynamicQuery;
55
import org.springframework.boot.SpringApplication;
66
import org.springframework.boot.autoconfigure.SpringBootApplication;
7-
import org.springframework.context.annotation.Import;
87

98
@SpringBootApplication
10-
@Import(ApplicationContextUtil.class)
9+
@EnableJpaDynamicQuery
1110
@EnableDynamicQueryArgumentResolvers
1211
public class TestApplication {
1312

src/test/java/com/beyt/filter/DatabaseFilterManagerTest.java renamed to src/test/java/com/beyt/query/DynamicQueryManagerTest.java

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.beyt.filter;
1+
package com.beyt.query;
22

33
import com.beyt.BaseTestInstance;
44
import com.beyt.TestApplication;
@@ -19,23 +19,21 @@
1919
import org.springframework.data.util.Pair;
2020

2121
import java.text.SimpleDateFormat;
22-
import java.util.ArrayList;
2322
import java.util.Calendar;
24-
import java.util.Collections;
2523
import java.util.List;
2624

27-
import static com.beyt.filter.query.simplifier.QuerySimplifier.*;
25+
import static com.beyt.query.builder.QuerySimplifier.*;
2826
import static org.junit.jupiter.api.Assertions.assertEquals;
2927
import static org.junit.jupiter.api.Assertions.assertThrows;
3028

3129
@SpringBootTest(classes = TestApplication.class)
3230
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
33-
class DatabaseFilterManagerTest extends BaseTestInstance {
31+
class DynamicQueryManagerTest extends BaseTestInstance {
3432

3533
private SimpleDateFormat dateFormat;
3634

3735
@BeforeAll
38-
private void init() {
36+
protected void init() {
3937
userRepository.save(user1);
4038
userRepository.save(user2);
4139
userRepository.save(user3);
@@ -61,6 +59,14 @@ void findAll() {
6159
// SINGLE CRITERIA TESTS
6260

6361
//Support Single Input => GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN_OR_EQUAL, LESS_THAN
62+
assertEquals(toList(user2, user4, user6, user7),
63+
userRepository.findAllWithCriteria(CriteriaList.of(Criteria.of("status", CriteriaType.EQUAL, User.Status.ACTIVE))));
64+
assertEquals(toList(user1, user2, user3, user4, user5, user6, user7, user8),
65+
userRepository.findAllWithCriteria(CriteriaList.of(Criteria.of("status", CriteriaType.EQUAL, User.Status.ACTIVE, User.Status.PASSIVE))));
66+
assertEquals(toList(user2, user5, user6, user8),
67+
userRepository.findAllWithCriteria(CriteriaList.of(Criteria.of("type", CriteriaType.EQUAL, User.Type.ADMIN))));
68+
assertEquals(toList(user2, user6),
69+
userRepository.findAllWithCriteria(CriteriaList.of(Criteria.of("type", CriteriaType.EQUAL, User.Type.ADMIN), Criteria.of("status", CriteriaType.EQUAL, User.Status.ACTIVE))));
6470
assertEquals(toList(customer5, customer6, customer7, customer8),
6571
customerRepository.findAllWithCriteria(CriteriaList.of(Criteria.of("age", CriteriaType.GREATER_THAN_OR_EQUAL, 24))));
6672
assertEquals(toList(customer6, customer7, customer8),
@@ -196,10 +202,9 @@ void findAll() {
196202

197203
}
198204

205+
@SafeVarargs
199206
public static <T> List<T> toList(T... values) {
200-
ArrayList<T> list = new ArrayList<>();
201-
Collections.addAll(list, values);
202-
return list;
207+
return List.of(values);
203208
}
204209

205210
@Test
@@ -232,8 +237,8 @@ void simplifiedSearchQuery() {
232237
.page(0, 2)
233238
.getResult(User.class);
234239

235-
assertEquals(toList(new User(null, user3.getName(), customer3.getName(), user3.getAge(), customer3.getBirthdate()),
236-
new User(null, user4.getName(), customer4.getName(), user4.getAge(), customer4.getBirthdate())), result);
240+
assertEquals(toList(new User(null, user3.getName(), customer3.getName(), user3.getAge(), customer3.getBirthdate(), null, null),
241+
new User(null, user4.getName(), customer4.getName(), user4.getAge(), customer4.getBirthdate(), null, null)), result);
237242

238243
Page<User> resultAsPage = customerRepository.query()
239244
.select(Select("user.name", "name"), Select("user.age"), Select("name", "surname"), Select("birthdate", "birthdate"))
@@ -243,11 +248,21 @@ void simplifiedSearchQuery() {
243248
.page(1, 2)
244249
.getResultAsPage(User.class);
245250

246-
assertEquals(toList(new User(null, user5.getName(), customer5.getName(), user5.getAge(), customer5.getBirthdate()),
247-
new User(null, user6.getName(), customer6.getName(), user6.getAge(), customer6.getBirthdate())), resultAsPage.getContent());
251+
assertEquals(toList(new User(null, user5.getName(), customer5.getName(), user5.getAge(), customer5.getBirthdate(), null, null),
252+
new User(null, user6.getName(), customer6.getName(), user6.getAge(), customer6.getBirthdate(), null, null)), resultAsPage.getContent());
248253

249254
assertEquals(4, resultAsPage.getTotalElements());
250255
assertEquals(2, resultAsPage.getTotalPages());
251256
assertEquals(Sort.Direction.ASC, resultAsPage.getPageable().getSort().getOrderFor("user.id").getDirection());
252257
}
258+
259+
@Test
260+
void queryBuilderTests() {
261+
assertEquals(toList(user1, user2, user3, user4, user5, user6, user7, user8),
262+
userRepository.query().getResult());
263+
assertEquals(toList(user2, user4, user6, user7),
264+
userRepository.query().where(Field("status").eq(User.Status.ACTIVE)).getResult());
265+
assertEquals(toList(user7, user6, user4, user2),
266+
userRepository.query().where(Field("status").eq(User.Status.ACTIVE)).orderBy(OrderBy("id", Order.DESC)).getResult());
267+
}
253268
}

src/test/java/com/beyt/filter/GenericSpecificationTest.java renamed to src/test/java/com/beyt/query/DynamicSpecificationTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.beyt.filter;
1+
package com.beyt.query;
22

33
import com.beyt.dto.enums.JoinType;
44
import org.junit.jupiter.api.Assertions;
@@ -10,11 +10,11 @@
1010

1111
import static org.junit.jupiter.api.Assertions.assertEquals;
1212

13-
class GenericSpecificationTest {
13+
class DynamicSpecificationTest {
1414

1515
@Test
1616
void getFieldName() {
17-
Assertions.assertEquals("name", GenericSpecification.getFieldName("asd.asd<asd>name"));
17+
Assertions.assertEquals("name", DynamicSpecification.getFieldName("asd.asd<asd>name"));
1818
}
1919

2020
@Test
@@ -24,6 +24,6 @@ void getFieldJoins() {
2424
fieldJoins.add(Pair.of("asdhj", JoinType.LEFT));
2525
fieldJoins.add(Pair.of("asdasda", JoinType.RIGHT));
2626

27-
assertEquals(fieldJoins, GenericSpecification.getFieldJoins("asd2fg.asdhj<asdasda>name"));
27+
assertEquals(fieldJoins, DynamicSpecification.getFieldJoins("asd2fg.asdhj<asdasda>name"));
2828
}
2929
}

src/test/java/com/beyt/resolver/ArgumentResolversTests.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,14 @@ public void argumentCriteriaListTests() throws Exception {
8080
"key0=id&operation0=EQUAL&values0=1", User[].class);
8181
checkRequestSingleUserEntity(toList(user1, user2, user3), USER_CRITERIA_API_URL,
8282
"key0=id&operation0=EQUAL&values0=1,2,3", User[].class);
83+
checkRequestSingleUserEntity(toList(user2, user4, user6, user7), USER_CRITERIA_API_URL,
84+
"key0=status&operation0=EQUAL&values0=ACTIVE", User[].class);
85+
checkRequestSingleUserEntity(toList(user1, user2, user3, user4, user5, user6, user7, user8), USER_CRITERIA_API_URL,
86+
"key0=status&operation0=EQUAL&values0=ACTIVE,PASSIVE", User[].class);
87+
checkRequestSingleUserEntity(toList(user2, user5, user6, user8), USER_CRITERIA_API_URL,
88+
"key0=type&operation0=EQUAL&values0=ADMIN", User[].class);
89+
checkRequestSingleUserEntity(toList(user2, user6), USER_CRITERIA_API_URL,
90+
"key0=type&operation0=EQUAL&values0=ADMIN&key1=status&operation1=EQUAL&values1=ACTIVE", User[].class);
8391
checkRequestSingleUserEntity(toList(user1, user2, user3, user4, user6, user7, user8), USER_CRITERIA_API_URL,
8492
"key0=id&operation0=NOT_EQUAL&values0=5", User[].class);
8593
checkRequestSingleUserEntity(toList(user5), USER_CRITERIA_API_URL,
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package com.beyt.testenv.config;
22

3-
import com.beyt.repository.GenericSpecificationRepositoryFactoryBean;
3+
import com.beyt.repository.DynamicSpecificationRepositoryFactoryBean;
44
import org.springframework.context.annotation.Configuration;
55
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
66

77
@Configuration
8-
@EnableJpaRepositories(repositoryFactoryBeanClass = GenericSpecificationRepositoryFactoryBean.class, basePackages = "com.beyt.testenv.repository")
8+
@EnableJpaRepositories(repositoryFactoryBeanClass = DynamicSpecificationRepositoryFactoryBean.class, basePackages = "com.beyt.testenv.repository")
99
public class GenericSpecificationRepositoryConfiguration {
1010

1111
}

src/test/java/com/beyt/testenv/entity/User.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,21 @@ public class User implements Serializable {
3434

3535
@Column(name = "birthdate")
3636
private Instant birthdate;
37+
38+
39+
@Column(name = "status")
40+
@Enumerated(EnumType.STRING)
41+
private Status status;
42+
43+
@Column(name = "type")
44+
@Enumerated(EnumType.ORDINAL)
45+
private Type type;
46+
47+
public enum Status {
48+
ACTIVE, PASSIVE
49+
}
50+
51+
public enum Type {
52+
ADMIN, USER
53+
}
3754
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.beyt.testenv.repository;
22

3-
import com.beyt.repository.GenericSpecificationRepository;
3+
import com.beyt.repository.DynamicSpecificationRepository;
44
import com.beyt.testenv.entity.User;
55
import org.springframework.stereotype.Repository;
66

77
@Repository
8-
public interface UserRepository extends GenericSpecificationRepository<User, Long> {
8+
public interface UserRepository extends DynamicSpecificationRepository<User, Long> {
99
}
1010

0 commit comments

Comments
 (0)