Skip to content

Commit

Permalink
Merge pull request #586 from opensrp/v2-revert-practitioner-search-be…
Browse files Browse the repository at this point in the history
…an-to-lombrok

use lombok in PractitionerSearchBean
  • Loading branch information
hilpitome authored Jul 5, 2022
2 parents 46db71b + 658d4cb commit 9e9eddd
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 65 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<artifactId>opensrp-server-core</artifactId>
<packaging>jar</packaging>
<version>2.14.2-SNAPSHOT</version>
<version>2.14.3-SNAPSHOT</version>
<name>opensrp-server-core</name>
<description>OpenSRP Server Core module</description>
<url>https://github.com/OpenSRP/opensrp-server-core</url>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/opensrp/search/BaseSearchBean.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public enum OrderByType {
}

public enum FieldName {
id
id, server_version
}

private Integer pageNumber = 0;
Expand Down
68 changes: 9 additions & 59 deletions src/main/java/org/opensrp/search/PractitionerSearchBean.java
Original file line number Diff line number Diff line change
@@ -1,65 +1,15 @@
package org.opensrp.search;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

public class PractitionerSearchBean {


private Integer pageNumber = 0;

private Integer pageSize = 0;

private FieldName orderByFieldName;

private OrderByType orderByType;

public enum OrderByType {
ASC, DESC
}


public enum FieldName {
id, identifier, server_version
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class PractitionerSearchBean extends BaseSearchBean {

private Long serverVersion;

public Long getServerVersion() {
return serverVersion;
}

public void setServerVersion(Long serverVersion) {
this.serverVersion = serverVersion;
}

public Integer getPageNumber() {
return pageNumber;
}

public void setPageNumber(Integer pageNumber) {
this.pageNumber = pageNumber;
}

public Integer getPageSize() {
return pageSize;
}

public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}

public FieldName getOrderByFieldName() {
return orderByFieldName;
}

public void setOrderByFieldName(FieldName orderByFieldName) {
this.orderByFieldName = orderByFieldName;
}

public OrderByType getOrderByType() {
return orderByType;
}

public void setOrderByType(OrderByType orderByType) {
this.orderByType = orderByType;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,12 @@

import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.Mockito;
import org.opensrp.repository.postgres.mapper.custom.CustomPractitionerMapper;
import org.powermock.reflect.Whitebox;
import org.smartregister.domain.Practitioner;
import org.opensrp.repository.PractitionerRepository;
import org.opensrp.search.BaseSearchBean;
import org.opensrp.search.PractitionerSearchBean;
import org.springframework.beans.factory.annotation.Autowired;

Expand Down Expand Up @@ -340,23 +344,45 @@ public void testGetAllPractitioners() {
practitionerRepository.add(practitioner1);
Practitioner practitioner2 = initTestPractitioner2();
practitionerRepository.add(practitioner2);
PractitionerSearchBean practitionerSearchBean = new PractitionerSearchBean();
practitionerSearchBean.setOrderByFieldName(PractitionerSearchBean.FieldName.id);
practitionerSearchBean.setOrderByType(PractitionerSearchBean.OrderByType.DESC);
PractitionerSearchBean practitionerSearchBean = PractitionerSearchBean.builder().
orderByType(BaseSearchBean.OrderByType.DESC).
orderByFieldName(BaseSearchBean.FieldName.id).build();
practitionerSearchBean.setServerVersion(1l);
List<Practitioner> practitioners = practitionerRepository.getAllPractitioners(practitionerSearchBean);
assertNotNull(practitioners);
assertEquals(2,practitioners.size());
assertEquals("practitioner-2-identifier",practitioners.get(0).getIdentifier());
assertEquals("practitioner-1-identifier",practitioners.get(1).getIdentifier());

practitionerSearchBean.setOrderByType(PractitionerSearchBean.OrderByType.ASC);
practitionerSearchBean = PractitionerSearchBean.builder().orderByType(BaseSearchBean.OrderByType.ASC).
orderByFieldName(BaseSearchBean.FieldName.id).build();
practitionerSearchBean.setServerVersion(1l);
practitioners = practitionerRepository.getAllPractitioners(practitionerSearchBean);
assertNotNull(practitioners);
assertEquals(2,practitioners.size());
assertEquals("practitioner-1-identifier",practitioners.get(0).getIdentifier());
assertEquals("practitioner-2-identifier",practitioners.get(1).getIdentifier());

practitionerSearchBean = PractitionerSearchBean.builder().orderByType(BaseSearchBean.OrderByType.DESC).
orderByFieldName(BaseSearchBean.FieldName.server_version).build();
practitioners = practitionerRepository.getAllPractitioners(practitionerSearchBean);
assertNotNull(practitioners);
assertEquals(2,practitioners.size());
assertTrue(String.format(
"Expected serverVersion %d for practitioner at index 0 to be greater than serverVersion %d for practitioner at index 1",
practitioners.get(0).getServerVersion(), practitioners.get(1).getServerVersion()),
practitioners.get(0).getServerVersion()>practitioners.get(1).getServerVersion());


practitionerSearchBean = PractitionerSearchBean.builder().orderByType(BaseSearchBean.OrderByType.ASC).
orderByFieldName(BaseSearchBean.FieldName.server_version).build();
practitioners = practitionerRepository.getAllPractitioners(practitionerSearchBean);
assertNotNull(practitioners);
assertEquals(2,practitioners.size());
assertTrue(String.format(
"Expected serverVersion %d for practitioner at index 0 to be less than serverVersion %d for practitioner at index 1",
practitioners.get(0).getServerVersion(), practitioners.get(1).getServerVersion()),
practitioners.get(0).getServerVersion()<practitioners.get(1).getServerVersion());
}

@Test
Expand Down Expand Up @@ -395,4 +421,24 @@ public void testGetPractitionersByIdentifier() {
assertEquals(expectedPractitioner.getUsername(),actualPractitioner.getUsername());
}

@Test
public void testGetPractitionerByPrimaryKeyShouldInvokeSelectByExample() {
CustomPractitionerMapper realPractitionerMapper = Whitebox.getInternalState(practitionerRepository, "practitionerMapper");
CustomPractitionerMapper spyCustomPractitionerMapper = Mockito.spy(CustomPractitionerMapper.class);

List<org.opensrp.domain.postgres.Practitioner> pgPractitioners = new ArrayList<>();
Whitebox.setInternalState(practitionerRepository, "practitionerMapper", spyCustomPractitionerMapper);
Mockito.doReturn(pgPractitioners).when(spyCustomPractitionerMapper).selectByExample(Mockito.any());
practitionerRepository.getByPrimaryKey((1L));
Mockito.verify(spyCustomPractitionerMapper).selectByExample(Mockito.any());

// restore actual practitioner mapper so that proceeding tests do not fail
Whitebox.setInternalState(practitionerRepository, "practitionerMapper", realPractitionerMapper);
}

@Test
public void testGetPractitionerByPrimaryKeyWithNullIdShouldReturnNull() {
assertNull(practitionerRepository.getByPrimaryKey(null));
}

}

0 comments on commit 9e9eddd

Please sign in to comment.