Package org.geomajas.layer.hibernate

Source Code of org.geomajas.layer.hibernate.HibernateFilterManyToOneTest

/*
* This is part of Geomajas, a GIS framework, http://www.geomajas.org/.
*
* Copyright 2008-2011 Geosparc nv, http://www.geosparc.com/, Belgium.
*
* The program is available in open source according to the GNU Affero
* General Public License. All contributions in this program are covered
* by the Geomajas Contributors License Agreement. For full licensing
* details, see LICENSE.txt in the project root.
*/
package org.geomajas.layer.hibernate;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;

import org.geomajas.layer.LayerException;
import org.geomajas.layer.hibernate.pojo.HibernateTestFeature;
import org.geomajas.layer.hibernate.pojo.HibernateTestManyToOne;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opengis.filter.Filter;

/**
* TestCase for Hibernate's ManyToOne association. All possible filters we can imagine on such an association must be
* put to the test here.
*
* @author Pieter De Graef
*/
public class HibernateFilterManyToOneTest extends AbstractHibernateLayerModelTest {

  static boolean initialised = false;

  @Before
  public void setUpTestDataWithinTransaction() throws LayerException {
    HibernateTestFeature f1 = HibernateTestFeature.getDefaultInstance1(null);
    f1.setManyToOne(HibernateTestManyToOne.getDefaultInstance1(null));
    layer.create(f1);
    HibernateTestFeature f2 = HibernateTestFeature.getDefaultInstance2(null);
    f2.setManyToOne(HibernateTestManyToOne.getDefaultInstance2(null));
    layer.create(f2);
    HibernateTestFeature f3 = HibernateTestFeature.getDefaultInstance3(null);
    f3.setManyToOne(HibernateTestManyToOne.getDefaultInstance3(null));
    layer.create(f3);
    HibernateTestFeature f4 = HibernateTestFeature.getDefaultInstance4(null);
    f4.setManyToOne(HibernateTestManyToOne.getDefaultInstance4(null));
    layer.create(f4);
  }

  @Test
  public void betweenFilterOnInteger() throws Exception {
    Filter filter = filterCreator.createBetweenFilter(ATTR__MANY_TO_ONE__DOT__INT, "50", "250");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void betweenFilterOnFloat() throws Exception {
    Filter filter = filterCreator.createBetweenFilter(ATTR__MANY_TO_ONE__DOT__FLOAT, "50", "250");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void betweenFilterOnDouble() throws Exception {
    Filter filter = filterCreator.createBetweenFilter(ATTR__MANY_TO_ONE__DOT__DOUBLE, "50", "250");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void ltFilterOnInt() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__INT, "<", "250");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void leFilterOnInt() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__INT, "<=", "200");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void gtFilterOnInt() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__INT, ">", "250");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void geFilterOnInt() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__INT, ">=", "300");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void eqFilterOnInt() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__INT, "==", "200");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(1, t);
  }

  @Test
  public void neFilterOnInt() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__INT, "<>", "200");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(3, t);
  }

  @Test
  public void ltFilterOnFloat() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__FLOAT, "<", "250");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void leFilterOnFloat() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__FLOAT, "<=", "200");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void gtFilterOnFloat() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__FLOAT, ">", "250");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void geFilterOnFloat() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__FLOAT, ">=", "300");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void eqFilterOnFloat() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__FLOAT, "==", "200");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(1, t);
  }

  @Test
  public void neFilterOnFloat() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__FLOAT, "<>", "200");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(3, t);
  }

  @Test
  public void ltFilterOnDouble() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DOUBLE, "<", "250");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void leFilterOnDouble() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DOUBLE, "<=", "200");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void gtFilterOnDouble() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DOUBLE, ">", "250");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void geFilterOnDouble() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DOUBLE, ">=", "300");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void eqFilterOnDouble() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DOUBLE, "==", "200");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(1, t);
  }

  @Test
  public void neFilterOnDouble() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DOUBLE, "<>", "200");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(3, t);
  }

  @Test
  public void ltFilterOnDate() throws Exception {
    DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
    Date date;
    date = format.parse("01/01/2008");
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DATE, "<", date);
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void leFilterOnDate() throws Exception {
    DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
    Date date;
    date = format.parse("01/01/2007");
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DATE, "<=", date);
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void gtFilterOnDate() throws Exception {
    DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
    Date date;
    date = format.parse("01/01/2007");
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DATE, ">", date);
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void geFilterOnDate() throws Exception {
    DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
    Date date;
    date = format.parse("01/01/2007");
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DATE, ">=", date);
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(3, t);
  }

  @Test
  public void eqFilterOnDate() throws Exception {
    DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
    Date date;
    date = format.parse("01/01/2008");
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DATE, "==", date);
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(1, t);
  }

  @Test
  public void neFilterOnDate() throws Exception {
    DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
    Date date;
    date = format.parse("01/01/2008");
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__DATE, "<>", date);
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(3, t);
  }

  @Test
  public void eqFilterOnBoolean() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__BOOLEAN, "==", "true");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void neFilterOnBoolean() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__BOOLEAN, "<>", "true");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(2, t);
  }

  @Test
  public void eqFilterOnString() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__TEXT, "==", "manyToOne-1");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(1, t);
  }

  @Test
  public void neFilterOnString() throws Exception {
    Filter filter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__TEXT, "<>", "manyToOne-1");
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(3, t);
  }

  @Test
  public void likeFilter() throws Exception {
    Filter wildCardFilter = filterCreator.createLikeFilter(ATTR__MANY_TO_ONE__DOT__TEXT, "*-1");
    Iterator<?> it = layer.getElements(wildCardFilter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(1, t);

    Filter singleCharFilter = filterCreator.createLikeFilter(ATTR__MANY_TO_ONE__DOT__TEXT, "manyToOne-?");
    it = layer.getElements(singleCharFilter, 0, 0);
    t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(4, t);
  }

  @Test
  public void andFilter() throws Exception {
    Filter textFilter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__TEXT, "==", "manyToOne-1");
    Filter intFilter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__INT, "<", "250");
    Filter filter = filterCreator.createLogicFilter(textFilter, "and", intFilter);
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(1, t);
  }

  @Test
  public void orFilter() throws Exception {
    Filter textFilter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__TEXT, "==", "manyToOne-1");
    Filter intFilter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__INT, ">", "250");
    Filter filter = filterCreator.createLogicFilter(textFilter, "or", intFilter);
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(3, t);
  }

  @Test
  public void notFilter() throws Exception {
    Filter textFilter = filterCreator.createCompareFilter(ATTR__MANY_TO_ONE__DOT__TEXT, "==", "manyToOne-1");
    Filter filter = filterCreator.createLogicFilter(textFilter, "NOT", null);
    Iterator<?> it = layer.getElements(filter, 0, 0);
    int t = 0;
    while (it.hasNext()) {
      Assert.assertTrue("Returned object must be a HibernateTestFeature",
          it.next() instanceof HibernateTestFeature);
      t++;
    }
    Assert.assertEquals(3, t);
  }
}
TOP

Related Classes of org.geomajas.layer.hibernate.HibernateFilterManyToOneTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.