package com.github.mygreen.supercsv.cellprocessor.constraint; import static org.junit.Assert.*; import static org.assertj.core.api.Assertions.*; import static com.github.mygreen.supercsv.tool.TestUtils.*; import org.junit.Before; import org.junit.Test; import org.supercsv.cellprocessor.ift.CellProcessor; import com.github.mygreen.supercsv.cellprocessor.NextCellProcessor; import com.github.mygreen.supercsv.exception.SuperCsvValidationException; /** * {@link Require}のテスタ * * @since 2.0 * @author T.TSUCHIE * */ public class RequireTest { private CellProcessor processor; private CellProcessor processorChain; private CellProcessor emptyProcessor; private CellProcessor blankProcessor; private CellProcessor emptyBlankProcessor; @Before public void setUp() throws Exception { this.processor = new Require(false, false); this.processorChain = new Require(false, false, new NextCellProcessor()); this.emptyProcessor = new Require(true, false); this.blankProcessor = new Require(false, true); this.emptyBlankProcessor = new Require(true, true); } @Test public void testExecute_integer() { Integer input = 1; assertThat((Object)processor.execute(input, ANONYMOUS_CSVCONTEXT)).isEqualTo(input); assertThat((Object)processorChain.execute(input, ANONYMOUS_CSVCONTEXT)).isEqualTo(input); } @Test public void testExecute_integer_inputNull() { Integer input = null; try { processor.execute(input, ANONYMOUS_CSVCONTEXT); fail(); } catch(Exception e) { assertThat(e).isInstanceOf(SuperCsvValidationException.class); SuperCsvValidationException exception = (SuperCsvValidationException)e; assertThat(exception.getMessageVariables()) .containsEntry("considerEmpty", false) .containsEntry("considerBlank", false); assertThat(exception.getRejectedValue()).isEqualTo(input); assertThat(exception.getValidationMessage()).isEqualTo(String.format("{%s.violated}", Require.class.getName())); } } @Test public void testExecute_string() { String input = "abc"; assertThat((Object)processor.execute(input, ANONYMOUS_CSVCONTEXT)).isEqualTo(input); assertThat((Object)processorChain.execute(input, ANONYMOUS_CSVCONTEXT)).isEqualTo(input); } @Test public void testExecute_string_inputNull() { String input = null; try { processor.execute(input, ANONYMOUS_CSVCONTEXT); fail(); } catch(Exception e) { assertThat(e).isInstanceOf(SuperCsvValidationException.class); SuperCsvValidationException exception = (SuperCsvValidationException)e; assertThat(exception.getMessageVariables()) .containsEntry("considerEmpty", false) .containsEntry("considerBlank", false); assertThat(exception.getRejectedValue()).isEqualTo(input); } try { emptyProcessor.execute(input, ANONYMOUS_CSVCONTEXT); fail(); } catch(Exception e) { assertThat(e).isInstanceOf(SuperCsvValidationException.class); SuperCsvValidationException exception = (SuperCsvValidationException)e; assertThat(exception.getMessageVariables()) .containsEntry("considerEmpty", true) .containsEntry("considerBlank", false); assertThat(exception.getRejectedValue()).isEqualTo(input); } try { blankProcessor.execute(input, ANONYMOUS_CSVCONTEXT); fail(); } catch(Exception e) { assertThat(e).isInstanceOf(SuperCsvValidationException.class); SuperCsvValidationException exception = (SuperCsvValidationException)e; assertThat(exception.getMessageVariables()) .containsEntry("considerEmpty", false) .containsEntry("considerBlank", true); assertThat(exception.getRejectedValue()).isEqualTo(input); } try { emptyBlankProcessor.execute(input, ANONYMOUS_CSVCONTEXT); fail(); } catch(Exception e) { assertThat(e).isInstanceOf(SuperCsvValidationException.class); SuperCsvValidationException exception = (SuperCsvValidationException)e; assertThat(exception.getMessageVariables()) .containsEntry("considerEmpty", true) .containsEntry("considerBlank", true); assertThat(exception.getRejectedValue()).isEqualTo(input); } } @Test public void testExecute_string_inputEmpty() { String input = ""; assertThat((Object)processor.execute(input, ANONYMOUS_CSVCONTEXT)).isEqualTo(input); try { emptyProcessor.execute(input, ANONYMOUS_CSVCONTEXT); fail(); } catch(Exception e) { assertThat(e).isInstanceOf(SuperCsvValidationException.class); SuperCsvValidationException exception = (SuperCsvValidationException)e; assertThat(exception.getMessageVariables()) .containsEntry("considerEmpty", true) .containsEntry("considerBlank", false); assertThat(exception.getRejectedValue()).isEqualTo(input); } try { blankProcessor.execute(input, ANONYMOUS_CSVCONTEXT); fail(); } catch(Exception e) { assertThat(e).isInstanceOf(SuperCsvValidationException.class); SuperCsvValidationException exception = (SuperCsvValidationException)e; assertThat(exception.getMessageVariables()) .containsEntry("considerEmpty", false) .containsEntry("considerBlank", true); assertThat(exception.getRejectedValue()).isEqualTo(input); } try { emptyBlankProcessor.execute(input, ANONYMOUS_CSVCONTEXT); fail(); } catch(Exception e) { assertThat(e).isInstanceOf(SuperCsvValidationException.class); SuperCsvValidationException exception = (SuperCsvValidationException)e; assertThat(exception.getMessageVariables()) .containsEntry("considerEmpty", true) .containsEntry("considerBlank", true); assertThat(exception.getRejectedValue()).isEqualTo(input); } } @Test public void testExecute_string_inputBlank() { String input = " "; assertThat((Object)processor.execute(input, ANONYMOUS_CSVCONTEXT)).isEqualTo(input); assertThat((Object)emptyProcessor.execute(input, ANONYMOUS_CSVCONTEXT)).isEqualTo(input); try { blankProcessor.execute(input, ANONYMOUS_CSVCONTEXT); fail(); } catch(Exception e) { assertThat(e).isInstanceOf(SuperCsvValidationException.class); SuperCsvValidationException exception = (SuperCsvValidationException)e; assertThat(exception.getMessageVariables()) .containsEntry("considerEmpty", false) .containsEntry("considerBlank", true); assertThat(exception.getRejectedValue()).isEqualTo(input); } try { emptyBlankProcessor.execute(input, ANONYMOUS_CSVCONTEXT); fail(); } catch(Exception e) { assertThat(e).isInstanceOf(SuperCsvValidationException.class); SuperCsvValidationException exception = (SuperCsvValidationException)e; assertThat(exception.getMessageVariables()) .containsEntry("considerEmpty", true) .containsEntry("considerBlank", true); assertThat(exception.getRejectedValue()).isEqualTo(input); } } }