diff options
author | James Ahlborn <jtahlborn@yahoo.com> | 2008-10-21 01:19:46 +0000 |
---|---|---|
committer | James Ahlborn <jtahlborn@yahoo.com> | 2008-10-21 01:19:46 +0000 |
commit | a71be1bae382c212666a2c0f037d1444c1fb0e9f (patch) | |
tree | 3a92d49f31a6419130bc6dd29cd731d8cee035ec /test/src/java/com/healthmarketscience | |
parent | ea777f454917a3c4174911f2e004a933bed4ac5d (diff) | |
download | jackcess-a71be1bae382c212666a2c0f037d1444c1fb0e9f.tar.gz jackcess-a71be1bae382c212666a2c0f037d1444c1fb0e9f.zip |
Add RowFilter contributed by Patricia Donaldson
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@378 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'test/src/java/com/healthmarketscience')
3 files changed, 112 insertions, 8 deletions
diff --git a/test/src/java/com/healthmarketscience/jackcess/BigIndexTest.java b/test/src/java/com/healthmarketscience/jackcess/BigIndexTest.java index 628fc05..212bae8 100644 --- a/test/src/java/com/healthmarketscience/jackcess/BigIndexTest.java +++ b/test/src/java/com/healthmarketscience/jackcess/BigIndexTest.java @@ -45,10 +45,6 @@ public class BigIndexTest extends TestCase { private String _oldBigIndexValue = null; - /** - * Creates a new <code>IndexTest</code> instance. - * - */ public BigIndexTest(String name) { super(name); } diff --git a/test/src/java/com/healthmarketscience/jackcess/IndexTest.java b/test/src/java/com/healthmarketscience/jackcess/IndexTest.java index 351e2d4..d746844 100644 --- a/test/src/java/com/healthmarketscience/jackcess/IndexTest.java +++ b/test/src/java/com/healthmarketscience/jackcess/IndexTest.java @@ -46,10 +46,6 @@ import static com.healthmarketscience.jackcess.DatabaseTest.*; */ public class IndexTest extends TestCase { - /** - * Creates a new <code>IndexTest</code> instance. - * - */ public IndexTest(String name) { super(name); } diff --git a/test/src/java/com/healthmarketscience/jackcess/RowFilterTest.java b/test/src/java/com/healthmarketscience/jackcess/RowFilterTest.java new file mode 100644 index 0000000..8d9b510 --- /dev/null +++ b/test/src/java/com/healthmarketscience/jackcess/RowFilterTest.java @@ -0,0 +1,112 @@ +/* +Copyright (c) 2008 Health Market Science, Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +USA + +You can contact Health Market Science at info@healthmarketscience.com +or at the following address: + +Health Market Science +2700 Horizon Drive +Suite 200 +King of Prussia, PA 19406 +*/ + +package com.healthmarketscience.jackcess; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import junit.framework.TestCase; + +import static com.healthmarketscience.jackcess.DatabaseTest.*; + +/** + * @author James Ahlborn + */ +public class RowFilterTest extends TestCase +{ + private static final String ID_COL = "id"; + private static final String COL1 = "col1"; + private static final String COL2 = "col2"; + private static final String COL3 = "col3"; + + + public RowFilterTest(String name) { + super(name); + } + + @SuppressWarnings("unchecked") + public void testFilter() throws Exception + { + Map<String,Object> row0 = createExpectedRow(ID_COL, 0, COL1, "foo", COL2, 13, COL3, "bar"); + Map<String,Object> row1 = createExpectedRow(ID_COL, 1, COL1, "bar", COL2, 42, COL3, null); + Map<String,Object> row2 = createExpectedRow(ID_COL, 2, COL1, "foo", COL2, 55, COL3, "bar"); + Map<String,Object> row3 = createExpectedRow(ID_COL, 3, COL1, "baz", COL2, 42, COL3, "bar"); + Map<String,Object> row4 = createExpectedRow(ID_COL, 4, COL1, "foo", COL2, 13, COL3, null); + Map<String,Object> row5 = createExpectedRow(ID_COL, 5, COL1, "bla", COL2, 13, COL3, "bar"); + + + List<Map<String,Object>> rows = Arrays.asList(row0, row1, row2, row3, row4, row5); + + assertEquals(Arrays.asList(row0, row2, row4), + toList(RowFilter.matchPattern( + new ColumnBuilder(COL1, DataType.TEXT).toColumn(), + "foo").apply(rows))); + assertEquals(Arrays.asList(row1, row3, row5), + toList(RowFilter.invert( + RowFilter.matchPattern( + new ColumnBuilder(COL1, DataType.TEXT).toColumn(), + "foo")).apply(rows))); + + assertEquals(Arrays.asList(row0, row2, row4), + toList(RowFilter.matchPattern( + createExpectedRow(COL1, "foo")) + .apply(rows))); + assertEquals(Arrays.asList(row0, row2), + toList(RowFilter.matchPattern( + createExpectedRow(COL1, "foo", COL3, "bar")) + .apply(rows))); + assertEquals(Arrays.asList(row4), + toList(RowFilter.matchPattern( + createExpectedRow(COL1, "foo", COL3, null)) + .apply(rows))); + assertEquals(Arrays.asList(row0, row4, row5), + toList(RowFilter.matchPattern( + createExpectedRow(COL2, 13)) + .apply(rows))); + assertEquals(Arrays.asList(row1), + toList(RowFilter.matchPattern(row1) + .apply(rows))); + + assertEquals(rows, toList(RowFilter.apply(null, rows))); + assertEquals(Arrays.asList(row1), + toList(RowFilter.apply(RowFilter.matchPattern(row1), + rows))); + } + + private List<Map<String,Object>> toList(Iterable<Map<String,Object>> rows) + { + List<Map<String,Object>> rowList = new ArrayList<Map<String,Object>>(); + for(Map<String,Object> row : rows) { + rowList.add(row); + } + return rowList; + } + +} |