diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/FieldType.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/FieldType.java index 6b29c70fba..81b775d618 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/FieldType.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/FieldType.java @@ -18,7 +18,6 @@ public class FieldType implements Serializable { public static final String LABEL = "Label"; public static final String CASE_PAYMENT_HISTORY_VIEWER = "CasePaymentHistoryViewer"; public static final String CASE_HISTORY_VIEWER = "CaseHistoryViewer"; - public static final String TEXT = "Text"; private String id = null; private String type = null; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseTypeValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseTypeValidator.java index 54d9425f12..8ea77c09bd 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseTypeValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseTypeValidator.java @@ -19,13 +19,7 @@ List validate(final String dataFieldId, default Boolean isNullOrEmpty(final JsonNode dataValue) { return dataValue == null || dataValue.isNull() - || (dataValue.isTextual() && (null == dataValue.asText() || dataValue.asText().length() == 0)) + || (dataValue.isTextual() && (null == dataValue.asText() || dataValue.asText().trim().length() == 0)) || (dataValue.isObject() && dataValue.toString().equals("{}")); } - - default Boolean isNull(final JsonNode dataValue) { - return dataValue == null - || dataValue.isNull() - || (dataValue.isTextual() && (null == dataValue.asText())); - } } diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/TextValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/TextValidator.java index e0aa06fbd6..3098a76936 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/TextValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/TextValidator.java @@ -25,7 +25,7 @@ public List validate(final String dataFieldId, final CaseField caseFieldDefinition) { // Empty text should still check against MIN - MIN may or may not be 0 - if (isNull(dataValue)) { + if (isNullOrEmpty(dataValue)) { return Collections.emptyList(); } @@ -34,7 +34,7 @@ public List validate(final String dataFieldId, return Collections.singletonList(new ValidationResult(nodeType + " is not a string", dataFieldId)); } - final String value = dataValue.textValue().trim(); + final String value = dataValue.textValue(); if (!checkMax(caseFieldDefinition.getFieldType().getMax(), value)) { return Collections.singletonList(new ValidationResult(value + " exceed maximum length " + caseFieldDefinition.getFieldType().getMax(), dataFieldId)); diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/TextSanitiser.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/TextSanitiser.java deleted file mode 100644 index 7ff9919764..0000000000 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/TextSanitiser.java +++ /dev/null @@ -1,28 +0,0 @@ -package uk.gov.hmcts.ccd.domain.types.sanitiser; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import uk.gov.hmcts.ccd.domain.model.definition.FieldType; -import static uk.gov.hmcts.ccd.domain.model.definition.FieldType.TEXT; - -import javax.inject.Named; -import javax.inject.Singleton; - -@Named -@Singleton -public class TextSanitiser implements Sanitiser { - - private static final JsonNodeFactory JSON_NODE_FACTORY = new JsonNodeFactory(false); - - @Override - public String getType() { - return TEXT; - } - - public JsonNode sanitise(FieldType fieldType, JsonNode fieldData) { - if (fieldData.isTextual()) { - return JSON_NODE_FACTORY.textNode(fieldData.asText().trim()); - } - return fieldData; - } -} diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/TextValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/TextValidatorTest.java index 2c5a396aa0..1c559edb27 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/TextValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/TextValidatorTest.java @@ -151,18 +151,6 @@ void nullTextValue() { assertThat(validationResult, hasSize(0)); } - @Test - @DisplayName("should NOT be valid with only white spaces or leading trailing white spaces") - void checkWhitespaces() { - final JsonNode whitespaceValue = NODE_FACTORY.textNode(" "); - final List whitespaceValueResult = validator.validate(FIELD_ID, whitespaceValue, caseField); - assertThat(whitespaceValueResult, hasSize(1)); - - final JsonNode trailingwhitespaces = NODE_FACTORY.textNode(" Testing "); - final List trailingwhitespacesResult = validator.validate(FIELD_ID, trailingwhitespaces, caseField); - assertThat(trailingwhitespacesResult, hasSize(0)); - } - private CaseFieldBuilder caseField() { return new CaseFieldBuilder(FIELD_ID).withType(TextValidator.TYPE_ID); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/TextSanitiserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/TextSanitiserTest.java deleted file mode 100644 index a78e119112..0000000000 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/TextSanitiserTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package uk.gov.hmcts.ccd.domain.types.sanitiser; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.MockitoAnnotations; -import uk.gov.hmcts.ccd.domain.model.definition.CaseField; -import uk.gov.hmcts.ccd.domain.model.definition.CaseType; -import uk.gov.hmcts.ccd.domain.model.definition.FieldType; - -import java.util.Collections; - -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; - -class TextSanitiserTest { - - private static final JsonNodeFactory JSON_NODE_FACTORY = new JsonNodeFactory(false); - private static final CaseType CASE_TYPE = new CaseType(); - private static final String TYPE_TEXT = "Text"; - private static final FieldType TEXT_FIELD_TYPE = new FieldType(); - private static final String TEXT_FIELD_ID = "TestText"; - private static final CaseField TEXT_FIELD = new CaseField(); - - static { - TEXT_FIELD_TYPE.setId(TYPE_TEXT); - TEXT_FIELD_TYPE.setType(TYPE_TEXT); - TEXT_FIELD.setId(TEXT_FIELD_ID); - TEXT_FIELD.setFieldType(TEXT_FIELD_TYPE); - - CASE_TYPE.setCaseFields(Collections.singletonList(TEXT_FIELD)); - } - - @InjectMocks - private TextSanitiser textSanitiser; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - textSanitiser = new TextSanitiser(); - } - - @Test - public void shouldSanitizeValidText() { - JsonNode data = JSON_NODE_FACTORY.textNode(" Mr Tester "); - JsonNode result = JSON_NODE_FACTORY.textNode("Mr Tester"); - JsonNode sanitisedText = textSanitiser.sanitise(TEXT_FIELD_TYPE, data); - - assertThat(sanitisedText, is(result)); - } - - @Test - public void shouldSanitizeOnlyWhitespace() { - JsonNode data = JSON_NODE_FACTORY.textNode(" "); - JsonNode result = JSON_NODE_FACTORY.textNode(""); - JsonNode sanitisedText = textSanitiser.sanitise(TEXT_FIELD_TYPE, data); - - assertThat(sanitisedText, is(result)); - } -}