Improved test coverage
This commit is contained in:
parent
29722ad8ec
commit
7cef07b0c1
|
@ -26,6 +26,7 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.validation.address.AddressValidationException;
|
import ca.uhn.fhir.rest.server.interceptor.validation.address.AddressValidationException;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.validation.address.AddressValidationResult;
|
import ca.uhn.fhir.rest.server.interceptor.validation.address.AddressValidationResult;
|
||||||
|
import org.apache.commons.lang3.Validate;
|
||||||
import org.hl7.fhir.instance.model.api.IBase;
|
import org.hl7.fhir.instance.model.api.IBase;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
|
@ -3,6 +3,7 @@ package ca.uhn.fhir.rest.server.interceptor.validation.address;
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.rest.api.server.RequestDetails;
|
import ca.uhn.fhir.rest.api.server.RequestDetails;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.validation.address.impl.LoquateAddressValidator;
|
import ca.uhn.fhir.rest.server.interceptor.validation.address.impl.LoquateAddressValidator;
|
||||||
|
import org.checkerframework.checker.units.qual.A;
|
||||||
import org.hl7.fhir.instance.model.api.IBase;
|
import org.hl7.fhir.instance.model.api.IBase;
|
||||||
import org.hl7.fhir.r4.model.Address;
|
import org.hl7.fhir.r4.model.Address;
|
||||||
import org.hl7.fhir.r4.model.Extension;
|
import org.hl7.fhir.r4.model.Extension;
|
||||||
|
@ -15,10 +16,13 @@ import org.mockito.Mockito;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
import static ca.uhn.fhir.rest.server.interceptor.validation.address.AddressValidatingInterceptor.ADDRESS_VALIDATION_DISABLED_HEADER;
|
import static ca.uhn.fhir.rest.server.interceptor.validation.address.AddressValidatingInterceptor.ADDRESS_VALIDATION_DISABLED_HEADER;
|
||||||
|
import static ca.uhn.fhir.rest.server.interceptor.validation.address.AddressValidatingInterceptor.PROPERTY_EXTENSION_URL;
|
||||||
import static ca.uhn.fhir.rest.server.interceptor.validation.address.AddressValidatingInterceptor.PROPERTY_VALIDATOR_CLASS;
|
import static ca.uhn.fhir.rest.server.interceptor.validation.address.AddressValidatingInterceptor.PROPERTY_VALIDATOR_CLASS;
|
||||||
|
import static ca.uhn.fhir.rest.server.interceptor.validation.address.IAddressValidator.ADDRESS_VALIDATION_EXTENSION_URL;
|
||||||
import static ca.uhn.fhir.rest.server.interceptor.validation.address.impl.BaseRestfulValidator.PROPERTY_SERVICE_KEY;
|
import static ca.uhn.fhir.rest.server.interceptor.validation.address.impl.BaseRestfulValidator.PROPERTY_SERVICE_KEY;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
|
@ -91,6 +95,22 @@ class AddressValidatingInterceptorTest {
|
||||||
assertNotNull(interceptor.getAddressValidator());
|
assertNotNull(interceptor.getAddressValidator());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEmptyRequest() {
|
||||||
|
try {
|
||||||
|
myInterceptor.handleRequest(null, null);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
myInterceptor.setAddressValidator(null);
|
||||||
|
myInterceptor.handleRequest(null, null);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void setup() {
|
void setup() {
|
||||||
myValidator = mock(IAddressValidator.class);
|
myValidator = mock(IAddressValidator.class);
|
||||||
|
@ -135,6 +155,28 @@ class AddressValidatingInterceptorTest {
|
||||||
assertEquals("error", ext.getExtensionFirstRep().getUrl());
|
assertEquals("error", ext.getExtensionFirstRep().getUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testValidationWithCustomUrl() {
|
||||||
|
myInterceptor.getProperties().setProperty(PROPERTY_EXTENSION_URL, "MY_URL");
|
||||||
|
Address address = new Address();
|
||||||
|
address.setCity("City");
|
||||||
|
address.addLine("Line");
|
||||||
|
AddressValidationResult res = new AddressValidationResult();
|
||||||
|
res.setValidatedAddressString("City, Line");
|
||||||
|
res.setValidatedAddress(address);
|
||||||
|
when(myValidator.isValid(any(), any())).thenReturn(res);
|
||||||
|
|
||||||
|
Address addressToValidate = new Address();
|
||||||
|
myInterceptor.validateAddress(addressToValidate, ourCtx);
|
||||||
|
|
||||||
|
assertNotNull(res.toString());
|
||||||
|
assertTrue(addressToValidate.hasExtension());
|
||||||
|
assertNotNull(addressToValidate.getExtensionByUrl("MY_URL"));
|
||||||
|
assertFalse(address.hasExtension());
|
||||||
|
assertEquals(address.getCity(), addressToValidate.getCity());
|
||||||
|
assertTrue(address.getLine().get(0).equalsDeep(addressToValidate.getLine().get(0)));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void validate() {
|
void validate() {
|
||||||
Address address = new Address();
|
Address address = new Address();
|
||||||
|
|
|
@ -12,6 +12,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
import static ca.uhn.fhir.rest.server.interceptor.s13n.StandardizingInterceptor.STANDARDIZATION_DISABLED_HEADER;
|
import static ca.uhn.fhir.rest.server.interceptor.s13n.StandardizingInterceptor.STANDARDIZATION_DISABLED_HEADER;
|
||||||
import static ca.uhn.fhir.rest.server.interceptor.validation.fields.FieldValidatingInterceptor.VALIDATION_DISABLED_HEADER;
|
import static ca.uhn.fhir.rest.server.interceptor.validation.fields.FieldValidatingInterceptor.VALIDATION_DISABLED_HEADER;
|
||||||
|
@ -38,6 +39,17 @@ class FieldValidatingInterceptorTest {
|
||||||
myInterceptor = new FieldValidatingInterceptor();
|
myInterceptor = new FieldValidatingInterceptor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEmptyRequests() {
|
||||||
|
try {
|
||||||
|
myInterceptor.setConfig(new HashMap<>());
|
||||||
|
myInterceptor.resourcePreCreate(null, null);
|
||||||
|
myInterceptor.resourcePreUpdate(null, null, null);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDisablingValidationViaHeader() {
|
public void testDisablingValidationViaHeader() {
|
||||||
RequestDetails request = newRequestDetails();
|
RequestDetails request = newRequestDetails();
|
||||||
|
|
Loading…
Reference in New Issue