package com.constellio.model.api.impl.schemas.validation.impl; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import com.constellio.model.entities.schemas.ConfigProvider; import com.constellio.model.entities.schemas.Metadata; import com.constellio.model.frameworks.validation.ValidationErrors; import com.constellio.sdk.tests.ConstellioTest; public class Maximum50CharsRecordMultivalueMetadataValidatorTest extends ConstellioTest { List<String> emptyValues, valuesOf50Character, valuesOf51Character; @Mock Metadata metadata; @Mock ValidationErrors validationErrors; @Mock ConfigProvider configProvider; Maximum50CharsRecordMultivalueMetadataValidator validator; @Before public void setUp() { validator = new Maximum50CharsRecordMultivalueMetadataValidator(); String valueOf50Character = "12345678901234567890123456789012345678901234567890"; String valueOf51Character = "123456789012345678901234567890123456789012345678901"; emptyValues = Collections.emptyList(); valuesOf50Character = Arrays.asList(valueOf50Character, valueOf50Character); valuesOf51Character = Arrays.asList(valueOf50Character, valueOf51Character); } @Test public void whenValueHasMoreThan50CharacterThenAddValidationMessage() throws Exception { validator.validate(metadata, valuesOf51Character, configProvider, validationErrors); Map<String, Object> parameters = new HashMap<>(); parameters.put("maxSize", "50"); parameters.put("wasSize", "51"); verify(validationErrors).add(Maximum50CharsRecordMultivalueMetadataValidator.class, Maximum50CharsRecordMultivalueMetadataValidator.VALUE_LENGTH_TOO_LONG, parameters); verifyZeroInteractions(metadata); } @Test public void whenValueHas50CharacterThenNoValidationMessage() throws Exception { validator.validate(metadata, valuesOf50Character, configProvider, validationErrors); verifyZeroInteractions(validationErrors); verifyZeroInteractions(metadata); } @Test public void whenValuesEmptyThenNoValidationMessage() throws Exception { validator.validate(metadata, emptyValues, configProvider, validationErrors); verifyZeroInteractions(validationErrors); verifyZeroInteractions(metadata); } }