Package com.ebay.erl.mobius.core.criterion

Source Code of com.ebay.erl.mobius.core.criterion.TupleCriterionTest

package com.ebay.erl.mobius.core.criterion;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import java.sql.Date;
import java.sql.Time;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.TreeMap;

import org.junit.Test;

import com.ebay.erl.mobius.core.model.Tuple;

/**
* <p>
* This product is licensed under the Apache License,  Version 2.0,
* available at http://www.apache.org/licenses/LICENSE-2.0.
*
* This product contains portions derived from Apache hadoop which is
* licensed under the Apache License, Version 2.0, available at
* http://hadoop.apache.org.
*
* © 2007 – 2012 eBay Inc., Evan Chiu, Woody Zhou, Neel Sundaresan
*
*/
public class TupleCriterionTest
{
  @Test
  public void testSimpleCriterion()
  {
    Calendar c = Calendar.getInstance();
    c.set(Calendar.YEAR, 2011);
    c.set(Calendar.MONTH, Calendar.JANUARY);
    c.set(Calendar.DAY_OF_MONTH, 1);
    c.set(Calendar.HOUR_OF_DAY, 23);
    c.set(Calendar.MINUTE, 59);
    c.set(Calendar.SECOND, 59);
    c.set(Calendar.MILLISECOND, 0);
   
    TreeMap<String, String> m = new TreeMap<String, String>();
    m.put("K", "V");
   
   
    Tuple t = new Tuple();
    t.put(Byte.class.getName(), (byte)0x0F);   
    t.put(Short.class.getName(), (short)1);
    t.put(Integer.class.getName(), (int)2);
    t.put(Long.class.getName(), 3L);
    t.put(Float.class.getName(), 4.1F);
    t.put(Double.class.getName(), 5.1D);
   
    t.put(Boolean.class.getName(), false);
   
    t.put(String.class.getName(), "string");
    t.put(java.sql.Date.class.getName(), java.sql.Date.valueOf("2011-01-01"));
    t.put(java.sql.Timestamp.class.getName(), java.sql.Timestamp.valueOf("2012-01-01 13:05:01"));
    t.put(java.sql.Time.class.getName(), java.sql.Time.valueOf("13:05:01"));
   
    // test numbers
    testNumber(Byte.class.getName(), (byte)0x0F, t);
    testNumber(Short.class.getName(), (short)1, t);
    testNumber(Integer.class.getName(), (int)2, t);
    testNumber(Long.class.getName(), 3L, t);
    testNumber(Float.class.getName(), 4.1F, t);
    testNumber(Double.class.getName(), 5.1, t);
   
    // test boolean
    assertTrue(TupleRestrictions.eq(Boolean.class.getName(), false).accept(t, null));
    assertFalse(TupleRestrictions.ne(Boolean.class.getName(), false).accept(t, null));
   
    // test string
    assertTrue(TupleRestrictions.eq(String.class.getName(), "string").accept(t, null));
    assertFalse(TupleRestrictions.ne(String.class.getName(), "string").accept(t, null));
    assertTrue(TupleRestrictions.gt(String.class.getName(), "ssring").accept(t, null));
    assertTrue(TupleRestrictions.ge(String.class.getName(), "ssring").accept(t, null));
    assertTrue(TupleRestrictions.lt(String.class.getName(), "suring").accept(t, null));
    assertTrue(TupleRestrictions.le(String.class.getName(), "suring").accept(t, null));
   
    // test date
    assertTrue(TupleRestrictions.eq(Date.class.getName(), java.sql.Date.valueOf("2011-01-01")).accept(t, null));
    assertTrue(TupleRestrictions.ne(Date.class.getName(), java.sql.Date.valueOf("2011-01-02")).accept(t, null));
    assertTrue(TupleRestrictions.ge(Date.class.getName(), java.sql.Date.valueOf("2011-01-01")).accept(t, null));
    assertTrue(TupleRestrictions.gt(Date.class.getName(), java.sql.Date.valueOf("2010-12-31")).accept(t, null));
    assertTrue(TupleRestrictions.le(Date.class.getName(), java.sql.Date.valueOf("2011-01-01")).accept(t, null));
    assertTrue(TupleRestrictions.lt(Date.class.getName(), java.sql.Date.valueOf("2011-01-02")).accept(t, null));
   
    // test time
    assertTrue(TupleRestrictions.eq(Time.class.getName(), java.sql.Time.valueOf("13:05:01")).accept(t, null));
    assertTrue(TupleRestrictions.ne(Time.class.getName(), java.sql.Time.valueOf("13:05:00")).accept(t, null));
    assertTrue(TupleRestrictions.ge(Time.class.getName(), java.sql.Time.valueOf("13:05:01")).accept(t, null));
    assertTrue(TupleRestrictions.gt(Time.class.getName(), java.sql.Time.valueOf("13:05:00")).accept(t, null));
    assertTrue(TupleRestrictions.le(Time.class.getName(), java.sql.Time.valueOf("13:05:01")).accept(t, null));
    assertTrue(TupleRestrictions.lt(Time.class.getName(), java.sql.Time.valueOf("13:05:02")).accept(t, null));
   
    // test timestamp
   
  }
 
  private void testNumber(String columnName, Number original, Tuple t)
  {
    assertTrue(TupleRestrictions.eq(columnName, original).accept(t, null));
    assertFalse(TupleRestrictions.ne(columnName, original).accept(t, null));
   
    assertFalse(TupleRestrictions.gt(columnName, (original.doubleValue() + 1) ).accept(t, null));
    assertTrue(TupleRestrictions.ge(columnName, original).accept(t, null));
    assertTrue(TupleRestrictions.lt(columnName, (original.doubleValue() + 1) ).accept(t, null));
    assertTrue(TupleRestrictions.le(columnName, original).accept(t, null));
   
    ArrayList<Double> numbers = new ArrayList<Double>();
    numbers.add(original.doubleValue());
    numbers.add(original.doubleValue()+5);
    numbers.add(original.doubleValue()-5);
   
    assertTrue(TupleRestrictions.withinNumber(columnName, numbers).accept(t, null));
    assertFalse(TupleRestrictions.notWithinNumber(columnName, numbers).accept(t, null));
  }
 
 
}
TOP

Related Classes of com.ebay.erl.mobius.core.criterion.TupleCriterionTest

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.