@Override public Boolean call() throws Exception { for (int i = 0; i < 10; i++) { GreenBean bean = mapper.mapFieldSet(lineTokenizer.tokenize("blue,green")); Assert.assertEquals("green", bean.getGreen()); } return true; } });
@Test public void testWhitespaceLine() throws Exception { FieldSet line = tokenizer.tokenize(" "); // whitespace counts as text assertEquals(1, line.getFieldCount()); }
@Test public void testTooFewNamesNotStrict() { tokenizer.setNames(new String[] {"A", "B"}); tokenizer.setStrict(false); FieldSet tokens = tokenizer.tokenize("a,b,c"); assertTrue(TOKEN_MATCHES, tokens.readString(0).equals("a")); assertTrue(TOKEN_MATCHES, tokens.readString(1).equals("b")); }
@Test public void testTooManyNamesNotStrict() { tokenizer.setNames(new String[] {"A", "B", "C", "D","E"}); tokenizer.setStrict( false ); FieldSet tokens = tokenizer.tokenize("a,b,c"); assertTrue(TOKEN_MATCHES, tokens.readString(0).equals("a")); assertTrue(TOKEN_MATCHES, tokens.readString(1).equals("b")); assertTrue(TOKEN_MATCHES, tokens.readString(2).equals("c")); assertTrue(TOKEN_MATCHES, tokens.readString(3).equals("")); assertTrue(TOKEN_MATCHES, tokens.readString(4).equals("")); }
@Test public void testTokenizeWithQuoteAndSpaceAtEnd() { FieldSet line = tokenizer.tokenize("a,b,\"c\" "); assertEquals(3, line.getFieldCount()); assertEquals("c", line.readString(2)); }
@Test public void testTokenizeWithQuotesEmptyValue() { FieldSet line = tokenizer.tokenize("\"a\",\"b\",\"\",\"d\""); assertEquals(4, line.getFieldCount()); assertEquals("", line.readString(2)); }
@Test public void testMultiLineField() throws Exception { FieldSet line = tokenizer.tokenize("a,b,c\nrap"); assertEquals(3, line.getFieldCount()); assertEquals("c\nrap", line.readString(2)); }
@Test public void testTokenizeWithQuoteAndSpaceBeforeDelimiter() { FieldSet line = tokenizer.tokenize("a,\"b\" ,c"); assertEquals(3, line.getFieldCount()); assertEquals("b", line.readString(1)); }
@Test public void testMultiLineFieldWithQuotes() throws Exception { FieldSet line = tokenizer.tokenize("a,b,\"c\nrap\""); assertEquals(3, line.getFieldCount()); assertEquals("c\nrap", line.readString(2)); }
@Test public void testTokenizeWithNotDefaultQuotes() { tokenizer.setQuoteCharacter('\''); FieldSet line = tokenizer.tokenize("a,b,'c'"); assertEquals(3, line.getFieldCount()); assertEquals("c", line.readString(2)); }
@Test public void testTokenizeOverMultipleLines() { tokenizer = new DelimitedLineTokenizer(";"); FieldSet line = tokenizer.tokenize("value1;\"value2\nvalue2cont\";value3;value4"); assertEquals(4, line.getFieldCount()); assertEquals("value2\nvalue2cont", line.readString(1)); }
@Test public void testTokenizeWithIncludedFieldsAndEmptyEnd() { tokenizer.setIncludedFields(new int[] {1,3}); FieldSet line = tokenizer.tokenize("\"a\",\"b\",\"c\","); assertEquals(2, line.getFieldCount()); assertEquals("", line.readString(1)); }
@Test(expected=IncorrectTokenCountException.class) public void testTokenizeWithIncludedFieldsAndTooFewNames() { tokenizer.setIncludedFields(new int[] {1,2}); tokenizer.setNames(new String[] {"foo"}); FieldSet line = tokenizer.tokenize("\"a\",\"b\",\"c\",\"d\""); assertEquals(2, line.getFieldCount()); assertEquals("c", line.readString("bar")); }
@Test public void testTokenizeWithIncludedFieldsAndNames() { tokenizer.setIncludedFields(new int[] {1,2}); tokenizer.setNames(new String[] {"foo", "bar"}); FieldSet line = tokenizer.tokenize("\"a\",\"b\",\"c\",\"d\""); assertEquals(2, line.getFieldCount()); assertEquals("c", line.readString("bar")); }
@Test(expected=IncorrectTokenCountException.class) public void testTokenizeWithIncludedFieldsAndTooManyNames() { tokenizer.setIncludedFields(new int[] {1,2}); tokenizer.setNames(new String[] {"foo", "bar", "spam"}); FieldSet line = tokenizer.tokenize("\"a\",\"b\",\"c\",\"d\""); assertEquals(2, line.getFieldCount()); assertEquals("c", line.readString("bar")); }
@Test public void testTokenizeWithEscapedQuotes() { FieldSet line = tokenizer.tokenize("a,\"\"b,\"\"\"c\""); assertEquals(3, line.getFieldCount()); assertEquals("\"\"b", line.readString(1)); assertEquals("\"c", line.readString(2)); }
@Test public void testEmptyLineWithNames(){ tokenizer.setNames(new String[]{"A", "B"}); try{ tokenizer.tokenize(""); } catch(IncorrectTokenCountException ex){ assertEquals(2, ex.getExpectedCount()); assertEquals(0, ex.getActualCount()); assertEquals("", ex.getInput()); } }
@Test public void testTokenizeWithUnclosedQuotes() { tokenizer.setQuoteCharacter('\''); FieldSet line = tokenizer.tokenize("a,\"b,c"); assertEquals(3, line.getFieldCount()); assertEquals("\"b", line.readString(1)); assertEquals("c", line.readString(2)); }
@Test(expected = NotWritablePropertyException.class) public void testFuzzyMatchingWithKeyCandidateCollision() throws BindException { BeanWrapperFieldSetMapper<GreenBean> mapper = new BeanWrapperFieldSetMapper<>(); mapper.setStrict(true); mapper.setTargetType(GreenBean.class); DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); String[] names = { "brown", "green", "great", "groin", "braun" }; lineTokenizer.setNames(names); GreenBean bean = mapper.mapFieldSet(lineTokenizer.tokenize("brown,green,great,groin,braun")); Assert.assertEquals("green", bean.getGreen()); }
@Test public void testFuzzyMatchingWithLowerLimit() throws BindException { BeanWrapperFieldSetMapper<GreenBean> mapper = new BeanWrapperFieldSetMapper<>(); mapper.setDistanceLimit(0); mapper.setStrict(false); mapper.setTargetType(GreenBean.class); DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); String[] names = { "brown", "green", "great", "groin", "braun" }; lineTokenizer.setNames(names); GreenBean bean = mapper.mapFieldSet(lineTokenizer.tokenize("brown,green,great,groin,braun")); Assert.assertEquals("green", bean.getGreen()); }