Skip to content

Commit

Permalink
Merge pull request #23 from elwyncrestha/test/filter-doctor
Browse files Browse the repository at this point in the history
Feature: Added test cases for doctor filter
  • Loading branch information
elwyncrestha committed Jul 3, 2020
2 parents cb292f7 + a3c025e commit 5d10064
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
public class DoctorSpec implements Specification<Doctor> {

private static final String FILTER_BY_NAME = "user.name";
public static final String FILTER_BY_DEPARTMENT_ID = "department.id";

private final String property;
private final String value;
Expand All @@ -29,7 +30,9 @@ public Predicate toPredicate(Root<Doctor> root, CriteriaQuery<?> criteriaQuery,
CriteriaBuilder criteriaBuilder) {
switch (property) {
case FILTER_BY_NAME:
return criteriaBuilder.like(root.join("user").get("name"), "%" + value + "%");
return criteriaBuilder.equal(root.join("user").get("name"), value.toLowerCase());
case FILTER_BY_DEPARTMENT_ID:
return criteriaBuilder.equal(root.join("department").get("id"), Long.valueOf(value));
default:
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
import static org.hamcrest.Matchers.notNullValue;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;

import org.junit.Test;
Expand All @@ -17,6 +19,8 @@
import com.pemits.webcare.BaseJpaTest;
import com.pemits.webcare.api.department.repository.DepartmentRepository;
import com.pemits.webcare.api.doctor.entity.Doctor;
import com.pemits.webcare.api.doctor.repository.spec.DoctorSpec;
import com.pemits.webcare.api.doctor.repository.spec.DoctorSpecBuilder;
import com.pemits.webcare.api.user.repository.UserRepository;

public class DoctorRepositoryTest extends BaseJpaTest {
Expand Down Expand Up @@ -109,6 +113,19 @@ public void testFindAllShouldReturnNotEmptyList() {
assertThat(doctors.size(), equalTo(4));
}

@Test
@DatabaseSetup("/dataset/user/users-of-type-doctor.xml")
@DatabaseSetup("/dataset/department/department-config.xml")
@DatabaseSetup("/dataset/doctor/doctor-config.xml")
public void testFindAllWithSpecShouldReturnFilteredListByDepartment() {
final Map<String, String> filter = new HashMap<>();
filter.put(DoctorSpec.FILTER_BY_DEPARTMENT_ID, String.valueOf(1L));
final DoctorSpecBuilder builder = new DoctorSpecBuilder(filter);
final List<Doctor> doctors = repository.findAll(builder.build());

assertThat(doctors.size(), equalTo(2));
}

@Test
@DatabaseSetup("/dataset/user/users-of-type-doctor.xml")
@DatabaseSetup("/dataset/department/department-config.xml")
Expand Down

0 comments on commit 5d10064

Please sign in to comment.