http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e4dfdf81/juneau-core/src/test/java/org/apache/juneau/utils/IOPipeTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/IOPipeTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/IOPipeTest.java deleted file mode 100755 index 7399ca2..0000000 --- a/juneau-core/src/test/java/org/apache/juneau/utils/IOPipeTest.java +++ /dev/null @@ -1,283 +0,0 @@ -// *************************************************************************************************************************** -// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * -// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * -// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * -// * with the License. You may obtain a copy of the License at * -// * * -// * http://www.apache.org/licenses/LICENSE-2.0 * -// * * -// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * -// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * -// * specific language governing permissions and limitations under the License. * -// *************************************************************************************************************************** -package org.apache.juneau.utils; - -import static org.junit.Assert.*; - -import java.io.*; - -import org.apache.juneau.internal.*; -import org.apache.juneau.utils.IOPipe.*; -import org.junit.*; - -@SuppressWarnings("javadoc") -public class IOPipeTest { - - //==================================================================================================== - // IOPipe(Object input, Object output) - //==================================================================================================== - @Test - public void testConstructor() throws Exception { - try { IOPipe.create(null, new StringWriter()); fail(); } catch (IllegalArgumentException e) {} - try { IOPipe.create(new StringReader(""), null); fail(); } catch (IllegalArgumentException e) {} - try { IOPipe.create(new Integer(1), new StringWriter()); fail(); } catch (IllegalArgumentException e) {} - try { IOPipe.create("", new Integer(1)); fail(); } catch (IllegalArgumentException e) {} - } - - //==================================================================================================== - // closeOut() - // close(boolean in, boolean out) - //==================================================================================================== - @Test - public void testClose() throws Exception { - TestReader in; - TestWriter out; - TestInputStream in2; - TestOutputStream out2; - - in = new TestReader("foobar"); - out = new TestWriter(); - IOPipe.create(in, out).run(); - assertTrue(in.closed); - assertFalse(out.closed); - assertEquals("foobar", out.toString()); - - in = new TestReader("foobar"); - out = new TestWriter(); - IOPipe.create(in, out).closeOut().run(); - assertTrue(in.closed); - assertTrue(out.closed); - assertEquals("foobar", out.toString()); - - in = new TestReader("foobar"); - out = new TestWriter(); - IOPipe.create(in, out).close(false, true).run(); - assertFalse(in.closed); - assertTrue(out.closed); - assertEquals("foobar", out.toString()); - - in2 = new TestInputStream("foobar"); - out2 = new TestOutputStream(); - IOPipe.create(in2, out2).run(); - assertTrue(in2.closed); - assertFalse(out2.closed); - assertEquals("foobar", out2.toString()); - - in2 = new TestInputStream("foobar"); - out2 = new TestOutputStream(); - IOPipe.create(in2, out2).closeOut().run(); - assertTrue(in2.closed); - assertTrue(out2.closed); - assertEquals("foobar", out2.toString()); - - in2 = new TestInputStream("foobar"); - out2 = new TestOutputStream(); - IOPipe.create(in2, out2).close(false, true).run(); - assertFalse(in2.closed); - assertTrue(out2.closed); - assertEquals("foobar", out2.toString()); - - in = new TestReader("foobar"); - out2 = new TestOutputStream(); - IOPipe.create(in, out2).run(); - assertTrue(in.closed); - assertFalse(out2.closed); - assertEquals("foobar", out.toString()); - - in = new TestReader("foobar"); - out2 = new TestOutputStream(); - IOPipe.create(in, out2).closeOut().run(); - assertTrue(in.closed); - assertTrue(out2.closed); - assertEquals("foobar", out.toString()); - - in = new TestReader("foobar"); - out2 = new TestOutputStream(); - IOPipe.create(in, out2).close(false, true).run(); - assertFalse(in.closed); - assertTrue(out2.closed); - assertEquals("foobar", out.toString()); - - in2 = new TestInputStream("foobar"); - out = new TestWriter(); - IOPipe.create(in2, out).run(); - assertTrue(in2.closed); - assertFalse(out.closed); - assertEquals("foobar", out2.toString()); - - in2 = new TestInputStream("foobar"); - out = new TestWriter(); - IOPipe.create(in2, out).closeOut().run(); - assertTrue(in2.closed); - assertTrue(out.closed); - assertEquals("foobar", out2.toString()); - - in2 = new TestInputStream("foobar"); - out = new TestWriter(); - IOPipe.create(in2, out).close(false, true).run(); - assertFalse(in2.closed); - assertTrue(out.closed); - assertEquals("foobar", out2.toString()); - } - - - public static class TestReader extends StringReader { - boolean closed; - - public TestReader(String s) { - super(s); - } - - @Override /* Reader */ - public void close() { - closed = true; - } - } - - public static class TestWriter extends StringWriter { - boolean closed; - - public TestWriter() { - super(); - } - - @Override /* Writer */ - public void close() { - closed = true; - } - } - - public static class TestInputStream extends ByteArrayInputStream { - boolean closed; - - public TestInputStream(String s) { - super(s.getBytes()); - } - - @Override /* InputStream */ - public void close() throws IOException { - super.close(); - closed = true; - } - } - - public static class TestOutputStream extends ByteArrayOutputStream { - boolean closed; - - public TestOutputStream() { - super(); - } - - @Override /* OutputStream */ - public void close() throws IOException { - super.close(); - closed = true; - } - - @Override /* Object */ - public String toString() { - return new String(this.toByteArray(), IOUtils.UTF8); - } - } - - //==================================================================================================== - // byLines() - // byLines(boolean) - //==================================================================================================== - @Test - public void testByLines() throws Exception { - TestReader in; - TestWriter out; - - in = new TestReader("foo\nbar"); - out = new TestWriter() { - @Override public void write(String s) { - super.write("["+s+"]"); - } - }; - IOPipe.create(in, out).byLines().run(); - assertEquals("[foo][][bar][]", out.toString().replaceAll("[\\r\\n]", "")); - - in = new TestReader("foo\nbar"); - out = new TestWriter() { - @Override public void write(String s) { - super.write("["+s+"]"); - } - }; - IOPipe.create(in, out).byLines(true).run(); - assertEquals("[foo][][bar][]", out.toString().replaceAll("[\\r\\n]", "")); - - in = new TestReader("foo\nbar"); - out = new TestWriter() { - @Override public void write(String s) { - super.write("["+s+"]"); - } - }; - IOPipe.create(in, out).byLines(false).run(); - assertEquals("foo\nbar", out.toString()); - } - - //==================================================================================================== - // lineProcessor() - //==================================================================================================== - @Test - public void testLineProcessor() throws Exception { - TestReader in; - TestWriter out; - LineProcessor lp = new LineProcessor() { - @Override /* LineProcessor */ - public String process(String line) { - return "[" + line + "]"; - } - }; - - in = new TestReader("foo\nbar"); - out = new TestWriter(); - IOPipe.create(in, out).lineProcessor(lp).run(); - assertEquals("[foo][bar]", out.toString().replaceAll("[\\r\\n]", "")); - - LineProcessor lp2 = new LineProcessor() { - @Override /* LineProcessor */ - public String process(String line) { - return line.equals("foo") ? null : line; - } - }; - in = new TestReader("foo\nbar"); - out = new TestWriter(); - IOPipe.create(in, out).lineProcessor(lp2).run(); - assertEquals("bar", out.toString().replaceAll("[\\r\\n]", "")); - - TestInputStream in2; - TestOutputStream out2; - in2 = new TestInputStream("foo\nbar"); - out2 = new TestOutputStream(); - IOPipe.create(in2, out2).lineProcessor(lp).run(); - assertEquals("[foo][bar]", out2.toString().replaceAll("[\\r\\n]", "")); - } - - //==================================================================================================== - // buffSize() - //==================================================================================================== - @Test - public void testBuffSize() throws Exception { - TestReader in; - TestWriter out; - - in = new TestReader("foobar"); - out = new TestWriter(); - IOPipe.create(in, out).buffSize(1).run(); - assertEquals("foobar", out.toString().replaceAll("[\\r\\n]", "")); - - try { IOPipe.create(in, out).buffSize(0); fail(); } catch (IllegalArgumentException e) {} - } -}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e4dfdf81/juneau-core/src/test/java/org/apache/juneau/utils/IOUtilsTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/IOUtilsTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/IOUtilsTest.java deleted file mode 100755 index 0e63e18..0000000 --- a/juneau-core/src/test/java/org/apache/juneau/utils/IOUtilsTest.java +++ /dev/null @@ -1,104 +0,0 @@ -// *************************************************************************************************************************** -// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * -// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * -// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * -// * with the License. You may obtain a copy of the License at * -// * * -// * http://www.apache.org/licenses/LICENSE-2.0 * -// * * -// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * -// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * -// * specific language governing permissions and limitations under the License. * -// *************************************************************************************************************************** -package org.apache.juneau.utils; - -import static org.junit.Assert.*; - -import java.io.*; - -import org.apache.juneau.internal.*; -import org.junit.*; - -@SuppressWarnings("javadoc") -public class IOUtilsTest { - - //==================================================================================================== - // read(File) - // read(InputStream, Charset) - // read(InputStream) - // read(Reader, int, int) - //==================================================================================================== - @Test - public void testRead() throws Exception { - - TestReader in; - TestWriter out; - - in = new TestReader("foobar"); - out = new TestWriter(); - IOPipe.create(in, out).run(); - assertTrue(in.closed); - assertFalse(out.closed); - assertEquals("foobar", out.toString()); - } - - - public static class TestReader extends StringReader { - boolean closed; - - public TestReader(String s) { - super(s); - } - - @Override /* Reader */ - public void close() { - closed = true; - } - } - - public static class TestWriter extends StringWriter { - boolean closed; - - public TestWriter() { - super(); - } - - @Override /* Writer */ - public void close() { - closed = true; - } - } - - public static class TestInputStream extends ByteArrayInputStream { - boolean closed; - - public TestInputStream(String s) { - super(s.getBytes()); - } - - @Override /* InputStream */ - public void close() throws IOException { - super.close(); - closed = true; - } - } - - public static class TestOutputStream extends ByteArrayOutputStream { - boolean closed; - - public TestOutputStream() { - super(); - } - - @Override /* OutputStream */ - public void close() throws IOException { - super.close(); - closed = true; - } - - @Override /* Object */ - public String toString() { - return new String(this.toByteArray(), IOUtils.UTF8); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e4dfdf81/juneau-core/src/test/java/org/apache/juneau/utils/IdentityListTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/IdentityListTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/IdentityListTest.java deleted file mode 100755 index 9b95f19..0000000 --- a/juneau-core/src/test/java/org/apache/juneau/utils/IdentityListTest.java +++ /dev/null @@ -1,39 +0,0 @@ -// *************************************************************************************************************************** -// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * -// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * -// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * -// * with the License. You may obtain a copy of the License at * -// * * -// * http://www.apache.org/licenses/LICENSE-2.0 * -// * * -// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * -// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * -// * specific language governing permissions and limitations under the License. * -// *************************************************************************************************************************** -package org.apache.juneau.utils; - -import static org.junit.Assert.*; - -import java.util.*; - -import org.apache.juneau.internal.*; -import org.junit.*; - -@SuppressWarnings("javadoc") -public class IdentityListTest { - - //==================================================================================================== - // test - Basic tests - //==================================================================================================== - @Test - public void test() throws Exception { - List<String> l = new IdentityList<String>(); - String a = "a"; - l.add(a); - l.add(a); - l.add("b"); - assertEquals(2, l.size()); - assertTrue(l.contains("a")); - assertFalse(l.contains("c")); - } -} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e4dfdf81/juneau-core/src/test/java/org/apache/juneau/utils/KeywordStoreTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/KeywordStoreTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/KeywordStoreTest.java deleted file mode 100755 index 89ac7b4..0000000 --- a/juneau-core/src/test/java/org/apache/juneau/utils/KeywordStoreTest.java +++ /dev/null @@ -1,46 +0,0 @@ -// *************************************************************************************************************************** -// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * -// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * -// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * -// * with the License. You may obtain a copy of the License at * -// * * -// * http://www.apache.org/licenses/LICENSE-2.0 * -// * * -// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * -// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * -// * specific language governing permissions and limitations under the License. * -// *************************************************************************************************************************** -package org.apache.juneau.utils; - -import static org.junit.Assert.*; - -import org.apache.juneau.internal.*; -import org.junit.*; - -@SuppressWarnings("javadoc") -public class KeywordStoreTest { - - //==================================================================================================== - // test - Basic tests - //==================================================================================================== - @Test - public void test() throws Exception { - KeywordSet ks = new KeywordSet("aaa", "zzz"); - assertTrue(ks.contains("aaa")); - assertTrue(ks.contains("zzz")); - assertFalse(ks.contains("xxx")); - assertFalse(ks.contains("aaaa")); - assertFalse(ks.contains("zzzz")); - assertFalse(ks.contains("\u0000\u1000")); - assertFalse(ks.contains("z")); - assertFalse(ks.contains(null)); - assertFalse(ks.contains("a|")); - assertFalse(ks.contains("|a")); - assertFalse(ks.contains("Aa")); - assertFalse(ks.contains("aA")); - - for (String s : new String[]{"a","aA","Aa","a|","|a"}) { - try { ks = new KeywordSet(s); fail(); } catch (IllegalArgumentException e) {} - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e4dfdf81/juneau-core/src/test/java/org/apache/juneau/utils/MultiIterableTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/MultiIterableTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/MultiIterableTest.java deleted file mode 100755 index a544adc..0000000 --- a/juneau-core/src/test/java/org/apache/juneau/utils/MultiIterableTest.java +++ /dev/null @@ -1,71 +0,0 @@ -// *************************************************************************************************************************** -// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * -// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * -// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * -// * with the License. You may obtain a copy of the License at * -// * * -// * http://www.apache.org/licenses/LICENSE-2.0 * -// * * -// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * -// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * -// * specific language governing permissions and limitations under the License. * -// *************************************************************************************************************************** -package org.apache.juneau.utils; - -import static org.apache.juneau.TestUtils.*; -import static org.junit.Assert.*; - -import java.util.*; - -import org.apache.juneau.*; -import org.apache.juneau.internal.*; -import org.junit.*; - -@SuppressWarnings("javadoc") -public class MultiIterableTest { - - //==================================================================================================== - // Basic tests - //==================================================================================================== - @SuppressWarnings({ "unchecked", "rawtypes" }) - @Test - public void test() throws Exception { - List - l1 = new ObjectList(), - l2 = new ObjectList("['a','b']"), - l3 = new ObjectList("['c']"); - - MultiIterable mi = new MultiIterable(l1.iterator(),l2.iterator()); - mi.append(l3.iterator()); - - assertObjectEquals("['a','b','c']", mi.iterator()); - - mi = new MultiIterable(l1.iterator()); - assertObjectEquals("[]", mi.iterator()); - - mi = new MultiIterable(l2.iterator(), l1.iterator()); - assertObjectEquals("['a','b']", mi.iterator()); - - mi = new MultiIterable(l2.iterator(), l1.iterator(), l3.iterator()); - assertObjectEquals("['a','b','c']", mi.iterator()); - - mi = new MultiIterable(); - assertObjectEquals("[]", mi.iterator()); - - try { mi.append(null); fail(); } catch (IllegalArgumentException e) {} - - mi = new MultiIterable(l1.iterator()); - try { mi.iterator().next(); fail(); } catch (NoSuchElementException e) {} - - mi = new MultiIterable(l1.iterator()); - Iterator i = mi.iterator(); - assertFalse(i.hasNext()); - try { i.remove(); fail(); } catch (NoSuchElementException e) {} - - mi = new MultiIterable(l2.iterator()); - i = mi.iterator(); - assertTrue(i.hasNext()); - assertEquals("a", i.next()); - i.remove(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e4dfdf81/juneau-core/src/test/java/org/apache/juneau/utils/MultiSetTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/MultiSetTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/MultiSetTest.java deleted file mode 100755 index 76d0118..0000000 --- a/juneau-core/src/test/java/org/apache/juneau/utils/MultiSetTest.java +++ /dev/null @@ -1,144 +0,0 @@ -// *************************************************************************************************************************** -// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * -// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * -// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * -// * with the License. You may obtain a copy of the License at * -// * * -// * http://www.apache.org/licenses/LICENSE-2.0 * -// * * -// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * -// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * -// * specific language governing permissions and limitations under the License. * -// *************************************************************************************************************************** -package org.apache.juneau.utils; - -import static org.apache.juneau.TestUtils.*; -import static org.junit.Assert.*; - -import java.util.*; - -import org.apache.juneau.internal.*; -import org.junit.*; - -@SuppressWarnings("javadoc") -public class MultiSetTest { - - @Test - @SuppressWarnings({ "unchecked" }) - public void doTest() throws Exception { - List<String> l1, l2; - MultiSet<String> ms; - Iterator<String> i; - - l1 = Arrays.asList(new String[]{"1","2"}); - l2 = Arrays.asList(new String[]{"3","4"}); - ms = new MultiSet<String>(l1, l2); - i = ms.iterator(); - assertTrue(i.hasNext()); - assertEquals("1", i.next()); - assertTrue(i.hasNext()); - assertEquals("2", i.next()); - assertTrue(i.hasNext()); - assertEquals("3", i.next()); - assertTrue(i.hasNext()); - assertEquals("4", i.next()); - assertFalse(i.hasNext()); - try { - i.next(); - fail("Exception expected"); - } catch (NoSuchElementException e) { - } - - l1 = Arrays.asList(new String[]{"1","2"}); - l2 = Arrays.asList(new String[]{}); - ms = new MultiSet<String>(l1, l2); - i = ms.iterator(); - assertTrue(i.hasNext()); - assertEquals("1", i.next()); - assertTrue(i.hasNext()); - assertEquals("2", i.next()); - assertFalse(i.hasNext()); - try { - i.next(); - fail("Exception expected"); - } catch (NoSuchElementException e) { - } - - l1 = Arrays.asList(new String[]{}); - l2 = Arrays.asList(new String[]{"3","4"}); - ms = new MultiSet<String>(l1, l2); - i = ms.iterator(); - assertTrue(i.hasNext()); - assertEquals("3", i.next()); - assertTrue(i.hasNext()); - assertEquals("4", i.next()); - assertFalse(i.hasNext()); - try { - i.next(); - fail("Exception expected"); - } catch (NoSuchElementException e) { - } - - l1 = Arrays.asList(new String[]{}); - l2 = Arrays.asList(new String[]{}); - ms = new MultiSet<String>(l1, l2); - i = ms.iterator(); - assertFalse(i.hasNext()); - try { - i.next(); - fail("Exception expected"); - } catch (NoSuchElementException e) { - } - - l1 = Arrays.asList(new String[]{"1","2"}); - ms = new MultiSet<String>(l1); - i = ms.iterator(); - assertTrue(i.hasNext()); - assertEquals("1", i.next()); - assertTrue(i.hasNext()); - assertEquals("2", i.next()); - assertFalse(i.hasNext()); - try { - i.next(); - fail("Exception expected"); - } catch (NoSuchElementException e) { - } - - l1 = new LinkedList<String>(Arrays.asList(new String[]{"1","2"})); - l2 = new LinkedList<String>(Arrays.asList(new String[]{"3","4"})); - ms = new MultiSet<String>(l1).append(l2); - assertObjectEquals("['1','2','3','4']", ms); - assertObjectEquals("['1','2','3','4']", ms.enumerator()); - assertEquals(4, ms.size()); - - Iterator<String> t = ms.iterator(); - t.next(); - t.remove(); - assertObjectEquals("['2','3','4']", ms.enumerator()); - - t = ms.iterator(); - t.next(); - t.remove(); - assertObjectEquals("['3','4']", ms.enumerator()); - - t = ms.iterator(); - t.next(); - t.remove(); - assertObjectEquals("['4']", ms.enumerator()); - - t = ms.iterator(); - t.next(); - t.remove(); - assertObjectEquals("[]", ms.enumerator()); - assertEquals(0, ms.size()); - - ms = new MultiSet<String>(); - assertObjectEquals("[]", ms); - assertEquals(0, ms.size()); - - try { ms = new MultiSet<String>((Collection<String>)null); fail(); } catch (IllegalArgumentException e) {} - try { new MultiSet<String>().iterator().next(); fail(); } catch (NoSuchElementException e) {} - try { new MultiSet<String>().iterator().remove(); fail(); } catch (NoSuchElementException e) {} - - } -} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e4dfdf81/juneau-core/src/test/java/org/apache/juneau/utils/ParserReaderTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/ParserReaderTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/ParserReaderTest.java deleted file mode 100755 index 3796e87..0000000 --- a/juneau-core/src/test/java/org/apache/juneau/utils/ParserReaderTest.java +++ /dev/null @@ -1,49 +0,0 @@ -// *************************************************************************************************************************** -// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * -// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * -// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * -// * with the License. You may obtain a copy of the License at * -// * * -// * http://www.apache.org/licenses/LICENSE-2.0 * -// * * -// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * -// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * -// * specific language governing permissions and limitations under the License. * -// *************************************************************************************************************************** -package org.apache.juneau.utils; - -import static org.junit.Assert.*; - -import org.apache.juneau.parser.*; -import org.junit.*; - -@SuppressWarnings("javadoc") -public class ParserReaderTest { - - //==================================================================================================== - // test - //==================================================================================================== - @Test - public void test() throws Exception { - ParserReader r = new ParserReader("abc123"); - try { - assertEquals('a', r.read()); - r.unread(); - assertEquals('a', r.read()); - assertEquals('b', r.read()); - r.unread(); - assertEquals("bc", r.read(2)); - assertEquals('1', r.read()); - r.unread(); - r.read(); - assertEquals('2', r.peek()); - assertEquals('2', r.peek()); - assertEquals('2', r.read()); - assertEquals('3', r.read()); - assertEquals(-1, r.read()); - assertEquals(-1, r.read()); - } finally { - r.close(); - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e4dfdf81/juneau-core/src/test/java/org/apache/juneau/utils/PojoIntrospectorTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/PojoIntrospectorTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/PojoIntrospectorTest.java deleted file mode 100755 index b3e5532..0000000 --- a/juneau-core/src/test/java/org/apache/juneau/utils/PojoIntrospectorTest.java +++ /dev/null @@ -1,54 +0,0 @@ -// *************************************************************************************************************************** -// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * -// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * -// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * -// * with the License. You may obtain a copy of the License at * -// * * -// * http://www.apache.org/licenses/LICENSE-2.0 * -// * * -// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * -// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * -// * specific language governing permissions and limitations under the License. * -// *************************************************************************************************************************** -package org.apache.juneau.utils; - -import static org.junit.Assert.*; - -import org.junit.*; - -@SuppressWarnings("javadoc") -public class PojoIntrospectorTest { - - //==================================================================================================== - // testBasic - //==================================================================================================== - @Test - public void testBasic() throws Exception { - String in = null; - Object r; - - r = new PojoIntrospector(in, null).invokeMethod("substring(int,int)", "[3,6]"); - assertNull(r); - - in = "foobar"; - r = new PojoIntrospector(in).invokeMethod("substring(int,int)", "[3,6]"); - assertEquals("bar", r); - - r = new PojoIntrospector(in).invokeMethod("toString", null); - assertEquals("foobar", r); - - r = new PojoIntrospector(in).invokeMethod("toString", ""); - assertEquals("foobar", r); - - r = new PojoIntrospector(in).invokeMethod("toString", "[]"); - assertEquals("foobar", r); - - try { new PojoIntrospector(in).invokeMethod("noSuchMethod", "[3,6]"); fail(); } catch (NoSuchMethodException e) {} - - r = new PojoIntrospector(null).invokeMethod(String.class.getMethod("toString"), null); - assertNull(r); - - r = new PojoIntrospector("foobar").invokeMethod(String.class.getMethod("toString"), null); - assertEquals("foobar", r); - } -} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e4dfdf81/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java deleted file mode 100755 index 5f451fd..0000000 --- a/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java +++ /dev/null @@ -1,680 +0,0 @@ -// *************************************************************************************************************************** -// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * -// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * -// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * -// * with the License. You may obtain a copy of the License at * -// * * -// * http://www.apache.org/licenses/LICENSE-2.0 * -// * * -// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * -// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * -// * specific language governing permissions and limitations under the License. * -// *************************************************************************************************************************** -package org.apache.juneau.utils; - -import static org.apache.juneau.TestUtils.*; -import static org.junit.Assert.*; - -import java.util.*; - -import org.apache.juneau.*; -import org.apache.juneau.json.*; -import org.apache.juneau.serializer.*; -import org.apache.juneau.transforms.*; -import org.junit.*; - -@SuppressWarnings({"serial","rawtypes","javadoc"}) -public class PojoQueryTest { - - //==================================================================================================== - // filterCollection, string search, 1 level - //==================================================================================================== - @Test - public void testFilterCollectionStringSearchOneLevel() throws Exception { - ObjectMap query = null; - List view = null; - List sort = null; - int pos = 0; - int limit = 0; - boolean ignoreCase = false; - BeanSession session = BeanContext.DEFAULT.createSession(); - List results; - - List<A> in = new LinkedList<A>() {{ - add(new A("foo")); - add(new A("bar")); - add(new A("baz")); - }}; - - PojoQuery filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:'foo'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:'foo'}]", results); - - query = new ObjectMap("{f:'fo*'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:'foo'}]", results); - - query = new ObjectMap("{f:'*ar'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:'bar'}]", results); - - query = new ObjectMap("{f:'foo bar'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:'foo'},{f:'bar'}]", results); - } - - public class A { - public String f; - - A() {} - - A(String f) { - this.f = f; - } - } - - //==================================================================================================== - // filterCollection, date search, 1 level - //==================================================================================================== - @Test - public void testFilterCollectionDateSearchOneLevel() throws Exception { - ObjectMap query = null; - List view = null; - List sort = null; - int pos = 0; - int limit = 0; - boolean ignoreCase = false; - BeanSession session = BeanContext.DEFAULT.createSession(); - WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(CalendarSwap.DateTimeSimple.class); - B[] in; - PojoQuery filter; - - List results; - - in = new B[] { - new B(2010, 0, 1), - new B(2011, 0, 1), - new B(2011, 0, 31), - new B(2012, 0, 1) - }; - filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:'2011'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2011/01/01 00:00:00'},{f:'2011/01/31 00:00:00'}]", s.serialize(results)); - - query = new ObjectMap("{f:'2011.01'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2011/01/01 00:00:00'},{f:'2011/01/31 00:00:00'}]", s.serialize(results)); - - query = new ObjectMap("{f:'2011.01.01'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2011/01/01 00:00:00'}]", s.serialize(results)); - - in = new B[] { - new B(2011, 00, 01, 11, 59, 59), - new B(2011, 00, 01, 12, 00, 00), - new B(2011, 00, 01, 12, 59, 59), - new B(2011, 00, 01, 13, 00, 00) - }; - filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:'2011.01.01.12'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2011/01/01 12:00:00'},{f:'2011/01/01 12:59:59'}]", s.serialize(results)); - - in = new B[] { - new B(2011, 00, 01, 12, 29, 59), - new B(2011, 00, 01, 12, 30, 00), - new B(2011, 00, 01, 12, 30, 59), - new B(2011, 00, 01, 12, 31, 00) - }; - filter = new PojoQuery(in, session); - query = new ObjectMap("{f:'2011.01.01.12.30'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2011/01/01 12:30:00'},{f:'2011/01/01 12:30:59'}]", s.serialize(results)); - - in = new B[] { - new B(2011, 00, 01, 12, 30, 29), - new B(2011, 00, 01, 12, 30, 30), - new B(2011, 00, 01, 12, 30, 31) - }; - filter = new PojoQuery(in, session); - query = new ObjectMap("{f:'2011.01.01.12.30.30'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2011/01/01 12:30:30'}]", s.serialize(results)); - - // Open-ended ranges - - in = new B[] { - new B(2000, 11, 31), - new B(2001, 00, 01) - }; - filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:'>2000'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2001/01/01 00:00:00'}]", s.serialize(results)); - - query = new ObjectMap("{f:'>=2001'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2001/01/01 00:00:00'}]", s.serialize(results)); - - query = new ObjectMap("{f:'<2001'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2000/12/31 00:00:00'}]", s.serialize(results)); - - query = new ObjectMap("{f:'<=2000'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2000/12/31 00:00:00'}]", s.serialize(results)); - - in = new B[] { - new B(2011, 00, 01, 12, 29, 59), - new B(2011, 00, 01, 12, 30, 00) - }; - filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:'>=2011.01.01.12.30'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2011/01/01 12:30:00'}]", s.serialize(results)); - - query = new ObjectMap("{f:'<2011.01.01.12.30'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2011/01/01 12:29:59'}]", s.serialize(results)); - - in = new B[] { - new B(2011, 00, 01, 12, 30, 59), - new B(2011, 00, 01, 12, 31, 00) - }; - filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:'>2011.01.01.12.30'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2011/01/01 12:31:00'}]", s.serialize(results)); - - query = new ObjectMap("{f:'<=2011.01.01.12.30'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2011/01/01 12:30:59'}]", s.serialize(results)); - - // Closed range - - in = new B[] { - new B(2000, 11, 31, 23, 59, 59), - new B(2001, 00, 01, 00, 00, 00), - new B(2003, 05, 30, 23, 59, 59), - new B(2003, 06, 01, 00, 00, 00) - }; - filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:'2001 - 2003.06.30'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2001/01/01 00:00:00'},{f:'2003/06/30 23:59:59'}]", s.serialize(results)); - - // ORed timestamps - - in = new B[] { - new B(2000, 11, 31), - new B(2001, 00, 01), - new B(2001, 11, 31), - new B(2002, 00, 01) - }; - filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:'2001 2003 2005'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2001/01/01 00:00:00'},{f:'2001/12/31 00:00:00'}]", s.serialize(results)); - - in = new B[] { - new B(2002, 11, 31), - new B(2003, 00, 01), - new B(2003, 11, 31), - new B(2004, 00, 01) - }; - filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:'2001 2003 2005'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2003/01/01 00:00:00'},{f:'2003/12/31 00:00:00'}]", s.serialize(results)); - - in = new B[] { - new B(2004, 11, 31), - new B(2005, 00, 01), - new B(2005, 11, 31), - new B(2006, 00, 01) - }; - filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:'2001 2003 2005'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f:'2005/01/01 00:00:00'},{f:'2005/12/31 00:00:00'}]", s.serialize(results)); - } - - public class B { - public Calendar f; - - B() {} - - B(int year, int month, int day) { - this.f = new GregorianCalendar(year, month, day); - } - - B(int year, int month, int day, int hour, int minute, int second) { - this.f = new GregorianCalendar(year, month, day, hour, minute, second); - } - } - - //==================================================================================================== - // filterCollection, int search, 1 level - //==================================================================================================== - @Test - public void testFilterCollectionIntSearchOneLevel() throws Exception { - ObjectMap query = null; - List view = null; - List sort = null; - int pos = 0; - int limit = 0; - boolean ignoreCase = false; - BeanSession session = BeanContext.DEFAULT.createSession(); - List results; - - List<C> in = new LinkedList<C>() {{ - add(new C(1)); - add(new C(2)); - add(new C(3)); - }}; - - PojoQuery filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:'1'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:1}]", results); - - query = new ObjectMap("{f:'>1'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:2},{f:3}]", results); - - query = new ObjectMap("{f:'>=2'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:2},{f:3}]", results); - - query = new ObjectMap("{f:'<=2'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:1},{f:2}]", results); - - query = new ObjectMap("{f:'<2'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:1}]", results); - - query = new ObjectMap("{f:'1 3'}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:1},{f:3}]", results); - } - - public class C { - public int f; - - C() {} - - C(int f) { - this.f = f; - } - } - - //==================================================================================================== - // filterCollection, string search, 2 level - //==================================================================================================== - @Test - public void testFilterCollectionStringSearchTwoLevel() throws Exception { - ObjectMap query = null; - List view = null; - List sort = null; - int pos = 0; - int limit = 0; - boolean ignoreCase = false; - BeanSession session = BeanContext.DEFAULT.createSession(); - List results; - - List<D1> in = new LinkedList<D1>() {{ - add(new D1("foo")); - add(new D1("bar")); - add(new D1("baz")); - }}; - - PojoQuery filter = new PojoQuery(in, session); - - query = new ObjectMap("{f:{f:'foo'}}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:{f:'foo'}}]", results); - - query = new ObjectMap("{f:{f:'fo*'}}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:{f:'foo'}}]", results); - - query = new ObjectMap("{f:{f:'*ar'}}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:{f:'bar'}}]", results); - - query = new ObjectMap("{f:{f:'foo bar'}}"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f:{f:'foo'}},{f:{f:'bar'}}]", results); - } - - public class D1 { - public D2 f; - - D1() {} - - D1(String f) { - this.f = new D2(f); - } - } - public class D2 { - public String f; - - D2() {} - - D2(String f) { - this.f = f; - } - } - - //==================================================================================================== - // filterCollection, view, 1 level - //==================================================================================================== - @Test - public void testFilterCollectionViewOneLevel() throws Exception { - ObjectMap query = null; - List view = null; - List sort = null; - int pos = 0; - int limit = 0; - boolean ignoreCase = false; - BeanSession session = BeanContext.DEFAULT.createSession(); - List results; - - List<E> in = new LinkedList<E>() {{ - add(new E("foo", 1, true)); - add(new E("bar", 2, false)); - add(new E("baz", 3, true)); - }}; - - PojoQuery filter = new PojoQuery(in, session); - - view = new ObjectList("['f1']"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f1:'foo'},{f1:'bar'},{f1:'baz'}]", results); - - view = new ObjectList("['f2']"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f2:1},{f2:2},{f2:3}]", results); - - view = new ObjectList("['f3']"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f3:true},{f3:false},{f3:true}]", results); - - view = new ObjectList("['f3','f2','f1']"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f3:true,f2:1,f1:'foo'},{f3:false,f2:2,f1:'bar'},{f3:true,f2:3,f1:'baz'}]", results); - } - - public class E { - public String f1; - public int f2; - public boolean f3; - - E() {} - - E(String f1, int f2, boolean f3) { - this.f1 = f1; - this.f2 = f2; - this.f3 = f3; - } - } - - //==================================================================================================== - // filterCollection, view, 2 level - //==================================================================================================== - @Test - public void testFilterCollectionViewTwoLevel() throws Exception { - ObjectMap query = null; - List view = null; - List sort = null; - int pos = 0; - int limit = 0; - boolean ignoreCase = false; - BeanSession session = BeanContext.DEFAULT.createSession(); - List results; - - List<F1> in = new LinkedList<F1>() {{ - add(new F1("foo")); - add(new F1("bar")); - add(new F1("baz")); - }}; - - PojoQuery filter = new PojoQuery(in, session); - - view = new ObjectList("['f1']"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f1:'foo'},{f1:'bar'},{f1:'baz'}]", results); - - view = new ObjectList("[{f2:['f1']}]"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f2:{f1:'f2_foo'}},{f2:{f1:'f2_bar'}},{f2:{f1:'f2_baz'}}]", results); - - view = new ObjectList("['f1',{f3:['f1']}]"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertObjectEquals("[{f1:'foo',f3:[{f1:'f31_foo'},{f1:'f32_foo'}]},{f1:'bar',f3:[{f1:'f31_bar'},{f1:'f32_bar'}]},{f1:'baz',f3:[{f1:'f31_baz'},{f1:'f32_baz'}]}]", results); - } - - public class F1 { - public String f1; - public F2 f2; - public List<F2> f3; - - F1() {} - - F1(final String f1) { - this.f1 = f1; - this.f2 = new F2("f2_"+f1); - this.f3 = new LinkedList<F2>() {{ - add(new F2("f31_"+f1)); - add(new F2("f32_"+f1)); - }}; - } - } - - public class F2 { - public String f1; - public String f2; - - F2() {} - - F2(String f1) { - this.f1 = f1; - this.f2 = f1; - } - } - - //==================================================================================================== - // filterMap, 1 level - //=================================================================================================== - @Test - public void testFilterMapOneLevel() throws Exception { - ObjectList view = null; - BeanSession session = BeanContext.DEFAULT.createSession(); - Map results; - - G in = new G("foo", 1, true); - PojoQuery filter = new PojoQuery(in, session); - - view = new ObjectList("['f1']"); - results = filter.filterMap(view); - assertObjectEquals("{f1:'foo'}", results); - - view = new ObjectList("['f2']"); - results = filter.filterMap(view); - assertObjectEquals("{f2:1}", results); - - view = new ObjectList("['f3','f1']"); - results = filter.filterMap(view); - assertObjectEquals("{f3:true,f1:'foo'}", results); - } - - public class G { - public String f1; - public int f2; - public boolean f3; - - G() {} - - G(String f1, int f2, boolean f3) { - this.f1 = f1; - this.f2 = f2; - this.f3 = f3; - } - } - - //==================================================================================================== - // filterMap, 2 level - //==================================================================================================== - @Test - public void testFilterMapTwoLevel() throws Exception { - ObjectList view = null; - BeanSession session = BeanContext.DEFAULT.createSession(); - Map results; - - H1 in = new H1("foo"); - - PojoQuery filter = new PojoQuery(in, session); - - view = new ObjectList("['f1']"); - results = filter.filterMap(view); - assertObjectEquals("{f1:'foo'}", results); - - view = new ObjectList("[{f2:['f1']}]"); - results = filter.filterMap(view); - assertObjectEquals("{f2:{f1:'f2_foo'}}", results); - - view = new ObjectList("['f1',{f3:['f1']}]"); - results = filter.filterMap(view); - assertObjectEquals("{f1:'foo',f3:[{f1:'f31_foo'},{f1:'f32_foo'}]}", results); - } - - public class H1 { - public String f1; - public H2 f2; - public List<H2> f3; - - H1() {} - - H1(final String f1) { - this.f1 = f1; - this.f2 = new H2("f2_"+f1); - this.f3 = new LinkedList<H2>() {{ - add(new H2("f31_"+f1)); - add(new H2("f32_"+f1)); - }}; - } - } - - public class H2 { - public String f1; - public String f2; - - H2() {} - - H2(String f1) { - this.f1 = f1; - this.f2 = f1; - } - } - - //==================================================================================================== - // testSorting - //==================================================================================================== - @Test - public void testSorting() throws Exception { - ObjectMap query = null; - List view = null; - List sort = null; - int pos = 0; - int limit = 0; - boolean ignoreCase = false; - BeanSession session = BeanContext.DEFAULT.createSession(); - WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(CalendarSwap.DateTimeSimple.class); - List results; - - I[] in = new I[] { - new I(1, "foo", true, 2010, 1, 1), - new I(2, "bar", false, 2011, 1, 1), - new I(3, "baz", true, 2012, 1, 1), - }; - - PojoQuery filter = new PojoQuery(in, session); - - sort = new ObjectList("['f2']"); - view = new ObjectList("['f1','f2']"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f1:2,f2:'bar'},{f1:3,f2:'baz'},{f1:1,f2:'foo'}]", s.serialize(results)); - - sort = new ObjectList("[{f2:'d'}]"); - view = new ObjectList("['f1','f2']"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f1:1,f2:'foo'},{f1:3,f2:'baz'},{f1:2,f2:'bar'}]", s.serialize(results)); - - sort = new ObjectList("['f3']"); - view = new ObjectList("['f1','f3']"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f1:2,f3:false},{f1:1,f3:true},{f1:3,f3:true}]", s.serialize(results)); - - sort = new ObjectList("['f3',{f1:'a'}]"); - view = new ObjectList("['f1','f3']"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f1:2,f3:false},{f1:1,f3:true},{f1:3,f3:true}]", s.serialize(results)); - - sort = new ObjectList("['f3',{f1:'d'}]"); - view = new ObjectList("['f1','f3']"); - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f1:2,f3:false},{f1:3,f3:true},{f1:1,f3:true}]", s.serialize(results)); - - sort = new ObjectList("['f1']"); - view = new ObjectList("['f1']"); - limit = 1; - pos = 0; - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f1:1}]", s.serialize(results)); - - limit = 3; - pos = 0; - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f1:1},{f1:2},{f1:3}]", s.serialize(results)); - - limit = 1; - pos = 2; - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f1:3}]", s.serialize(results)); - - limit = 100; - pos = 2; - results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase); - assertEquals("[{f1:3}]", s.serialize(results)); - } - - public class I { - public int f1; - public String f2; - public boolean f3; - public Calendar f4; - - I() {} - - I(int f1, String f2, boolean f3, int year, int month, int day) { - this.f1 = f1; - this.f2 = f2; - this.f3 = f3; - this.f4 = new GregorianCalendar(year, month, day); - } - } -} \ No newline at end of file
