Improved test coverage

This commit is contained in:
Nick Goupinets 2021-04-27 11:47:57 -04:00
parent 29722ad8ec
commit 7cef07b0c1
3 changed files with 55 additions and 0 deletions

View File

@ -26,6 +26,7 @@ import com.fasterxml.jackson.databind.JsonNode;
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.AddressValidationResult;
import org.apache.commons.lang3.Validate;
import org.hl7.fhir.instance.model.api.IBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -3,6 +3,7 @@ package ca.uhn.fhir.rest.server.interceptor.validation.address;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.rest.api.server.RequestDetails;
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.r4.model.Address;
import org.hl7.fhir.r4.model.Extension;
@ -15,10 +16,13 @@ import org.mockito.Mockito;
import javax.annotation.Nonnull;
import java.util.Arrays;
import java.util.HashMap;
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.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.IAddressValidator.ADDRESS_VALIDATION_EXTENSION_URL;
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.assertFalse;
@ -91,6 +95,22 @@ class AddressValidatingInterceptorTest {
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
void setup() {
myValidator = mock(IAddressValidator.class);
@ -135,6 +155,28 @@ class AddressValidatingInterceptorTest {
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
void validate() {
Address address = new Address();

View File

@ -12,6 +12,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.validation.fields.FieldValidatingInterceptor.VALIDATION_DISABLED_HEADER;
@ -38,6 +39,17 @@ class FieldValidatingInterceptorTest {
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
public void testDisablingValidationViaHeader() {
RequestDetails request = newRequestDetails();