Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 7b0b2f5

Browse files
SORMAS-Foundation#2993 add country facade tests
1 parent cabcbfc commit 7b0b2f5

7 files changed

Lines changed: 143 additions & 5 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/region/CountryDto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public void setArchived(boolean archived) {
7171

7272
@Override
7373
public String toString() {
74-
return this.displayName;
74+
return this.defaultName;
7575
}
7676

7777
public static CountryDto build() {

sormas-api/src/main/java/de/symeda/sormas/api/region/CountryFacade.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public interface CountryFacade {
1717

1818
long count(CountryCriteria criteria);
1919

20-
void saveCountry(CountryDto dto);
20+
String saveCountry(CountryDto dto);
2121

2222
void archive(String countryUuid);
2323

sormas-backend/src/main/java/de/symeda/sormas/backend/region/CountryFacadeEjb.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public long count(CountryCriteria criteria) {
113113
}
114114

115115
@Override
116-
public void saveCountry(CountryDto dto) throws ValidationRuntimeException {
116+
public String saveCountry(CountryDto dto) throws ValidationRuntimeException {
117117
Country country = countryService.getByUuid(dto.getUuid());
118118

119119
if (country == null
@@ -124,6 +124,7 @@ public void saveCountry(CountryDto dto) throws ValidationRuntimeException {
124124

125125
country = fillOrBuildEntity(dto, country);
126126
countryService.ensurePersisted(country);
127+
return country.getUuid();
127128
}
128129

129130
@Override
@@ -167,6 +168,7 @@ public CountryDto toDto(Country entity) {
167168
dto.setExternalId(entity.getExternalId());
168169
dto.setIsoCode(entity.getIsoCode());
169170
dto.setUnoCode(entity.getUnoCode());
171+
dto.setUuid(entity.getUuid());
170172

171173
return dto;
172174
}

sormas-backend/src/test/java/de/symeda/sormas/backend/AbstractBeanTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
import javax.persistence.EntityManager;
2727
import javax.persistence.Query;
2828

29+
import de.symeda.sormas.api.region.CountryFacade;
30+
import de.symeda.sormas.backend.region.CountryFacadeEjb;
31+
import de.symeda.sormas.backend.region.CountryService;
2932
import org.junit.Before;
3033

3134
import de.symeda.sormas.api.ConfigFacade;
@@ -295,6 +298,10 @@ public FacilityFacade getFacilityFacade() {
295298
return getBean(FacilityFacadeEjbLocal.class);
296299
}
297300

301+
public CountryFacade getCountryFacade() {
302+
return getBean(CountryFacadeEjb.CountryFacadeEjbLocal.class);
303+
}
304+
298305
public RegionFacade getRegionFacade() {
299306
return getBean(RegionFacadeEjbLocal.class);
300307
}
@@ -351,6 +358,8 @@ public PointOfEntryService getPointOfEntryService() {
351358
return getBean(PointOfEntryService.class);
352359
}
353360

361+
public CountryService getCountryService() { return getBean(CountryService.class); }
362+
354363
public RegionService getRegionService() {
355364
return getBean(RegionService.class);
356365
}

sormas-backend/src/test/java/de/symeda/sormas/backend/TestDataCreator.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
import de.symeda.sormas.backend.facility.Facility;
9696
import de.symeda.sormas.backend.infrastructure.PointOfEntry;
9797
import de.symeda.sormas.backend.region.Community;
98+
import de.symeda.sormas.backend.region.Country;
9899
import de.symeda.sormas.backend.region.District;
99100
import de.symeda.sormas.backend.region.Region;
100101

@@ -1082,6 +1083,17 @@ public RDCFEntities createRDCFEntities(String regionName, String districtName, S
10821083
return new RDCFEntities(region, district, community, facility);
10831084
}
10841085

1086+
public Country createCountry(String countryName, String isoCode, String unoCode) {
1087+
Country country = new Country();
1088+
country.setUuid(DataHelper.createUuid());
1089+
country.setDefaultName(countryName);
1090+
country.setIsoCode(isoCode);
1091+
country.setUnoCode(unoCode);
1092+
beanTest.getCountryService().persist(country);
1093+
1094+
return country;
1095+
}
1096+
10851097
public Region createRegion(String regionName) {
10861098
Region region = new Region();
10871099
region.setUuid(DataHelper.createUuid());
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
package de.symeda.sormas.backend.region;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import static org.junit.Assert.assertFalse;
5+
import static org.junit.Assert.assertTrue;
6+
7+
import java.util.List;
8+
import java.util.Objects;
9+
10+
import org.junit.Test;
11+
12+
import de.symeda.sormas.api.region.CountryCriteria;
13+
import de.symeda.sormas.api.region.CountryDto;
14+
import de.symeda.sormas.api.region.CountryReferenceDto;
15+
import de.symeda.sormas.api.utils.ValidationRuntimeException;
16+
import de.symeda.sormas.backend.AbstractBeanTest;
17+
18+
public class CountryFacadeEjbTest extends AbstractBeanTest {
19+
20+
@Test
21+
public void testGetCountryByUuid() {
22+
Country expected = creator.createCountry("Romania", "ROU", "642");
23+
getCountryService().doFlush();
24+
25+
CountryDto actual = getCountryFacade().getCountryByUuid(expected.getUuid());
26+
assertTrue(entityIsEqualToDto(expected, actual));
27+
}
28+
29+
@Test
30+
public void testGetByDefaultName() {
31+
Country expected = creator.createCountry("Romania", "ROU", "642");
32+
getCountryService().doFlush();
33+
34+
List<CountryReferenceDto> actualList = getCountryFacade().getByDefaultName(expected.getDefaultName(), false);
35+
CountryReferenceDto actual = actualList.get(0);
36+
assertEquals(expected.getUuid(), actual.getUuid());
37+
}
38+
39+
@Test
40+
public void testGetIndexList() {
41+
Country expected = creator.createCountry("Romania", "ROU", "642");
42+
creator.createCountry("Germany", "DEU", "276");
43+
CountryCriteria criteria = new CountryCriteria().nameCodeLike("ROU");
44+
List<CountryDto> actualList = getCountryFacade().getIndexList(criteria, null, null, null);
45+
assertEquals(1, actualList.size());
46+
CountryDto actual = actualList.get(0);
47+
assertTrue(entityIsEqualToDto(expected, actual));
48+
}
49+
50+
@Test
51+
public void testCount() {
52+
creator.createCountry("Romania", "ROU", "642");
53+
creator.createCountry("Germany", "DEU", "276");
54+
CountryCriteria criteria = new CountryCriteria().nameCodeLike("ROU");
55+
long count = getCountryFacade().count(criteria);
56+
assertEquals(1, count);
57+
}
58+
59+
@Test
60+
public void testSaveCountrySuccessful() throws Exception {
61+
CountryDto expected = new CountryDto();
62+
expected.setDefaultName("Romania");
63+
expected.setIsoCode("ROU");
64+
expected.setUnoCode("642");
65+
String uuid = getCountryFacade().saveCountry(expected);
66+
expected.setUuid(uuid);
67+
Country actual = getCountryService().getByIsoCode("ROU", false).orElseThrow(() -> new Exception("Country not found"));
68+
assertTrue(entityIsEqualToDto(actual, expected));
69+
}
70+
71+
@Test(expected = ValidationRuntimeException.class)
72+
public void testSaveCountryIsoCodeExists() {
73+
creator.createCountry("Romania", "ROU", "642");
74+
CountryDto duplicate = new CountryDto();
75+
duplicate.setDefaultName("Romania");
76+
duplicate.setIsoCode("ROU");
77+
getCountryFacade().saveCountry(duplicate);
78+
}
79+
80+
@Test(expected = ValidationRuntimeException.class)
81+
public void testSaveCountryUnoCodeExists() {
82+
creator.createCountry("Romania", "ROU", "642");
83+
CountryDto duplicate = new CountryDto();
84+
duplicate.setDefaultName("Germany");
85+
duplicate.setIsoCode("DEU");
86+
duplicate.setUnoCode("642");
87+
getCountryFacade().saveCountry(duplicate);
88+
}
89+
90+
@Test
91+
public void testArchive() {
92+
Country country = creator.createCountry("Romania", "ROU", "642");
93+
getCountryFacade().archive(country.getUuid());
94+
CountryDto actual = getCountryFacade().getCountryByUuid(country.getUuid());
95+
assertTrue(actual.isArchived());
96+
}
97+
98+
@Test
99+
public void testDearchive() {
100+
Country country = creator.createCountry("Romania", "ROU", "642");
101+
country.setArchived(true);
102+
getCountryFacade().dearchive(country.getUuid());
103+
CountryDto actual = getCountryFacade().getCountryByUuid(country.getUuid());
104+
assertFalse(actual.isArchived());
105+
}
106+
107+
private boolean entityIsEqualToDto(Country entity, CountryDto dto) {
108+
return Objects.equals(entity.getUuid(), (dto.getUuid()))
109+
&& Objects.equals(entity.isArchived(), dto.isArchived())
110+
&& Objects.equals(entity.getExternalId(), (dto.getExternalId()))
111+
&& Objects.equals(entity.getDefaultName(), (dto.getDefaultName()))
112+
&& Objects.equals(entity.getIsoCode(), (dto.getIsoCode()))
113+
&& Objects.equals(entity.getUnoCode(), (dto.getUnoCode()));
114+
}
115+
}

sormas-ui/src/main/java/de/symeda/sormas/ui/configuration/infrastructure/CountryEditForm.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ protected void addFields() {
4949
}
5050

5151
addField(CountryDto.DEFAULT_NAME, TextField.class);
52-
addField(CountryDto.ISO_CODE, TextField.class);
52+
addField(CountryDto.ISO_CODE, TextField.class).setMaxLength(3);
5353
addField(CountryDto.EXTERNAL_ID, TextField.class);
54-
addField(CountryDto.UNO_CODE, TextField.class);
54+
addField(CountryDto.UNO_CODE, TextField.class).setMaxLength(3);
5555

5656
initializeVisibilitiesAndAllowedVisibilities();
5757

0 commit comments

Comments
 (0)