package com.taobao.tddl.rule.utils;
import java.util.Calendar;
import java.util.Date;
import org.junit.Assert;
import org.junit.Test;
import com.taobao.tddl.rule.model.sqljep.Comparative;
/**
* @author <a href="junyu@taobao.com">junyu</a>
* @version 1.0
* @since 1.6
* @date 2011-9-16 11:00:47
*/
public class ComparativeStringAnalyserUnitTest {
@Test
public void testDecodeComparative_Date() {
String conditionStr = "gmt_create = 2011-11-11 11:11:11.0 : date";
Comparative comp = ComparativeStringAnalyser.decodeComparative(conditionStr, null);
Calendar cal = Calendar.getInstance();
cal.setTime((Date) comp.getValue());
Assert.assertEquals(2011, cal.get(Calendar.YEAR));
Assert.assertEquals(10, cal.get(Calendar.MONTH));
Assert.assertEquals(11, cal.get(Calendar.DATE));
Assert.assertEquals(11, cal.get(Calendar.HOUR_OF_DAY));
Assert.assertEquals(11, cal.get(Calendar.MINUTE));
Assert.assertEquals(11, cal.get(Calendar.SECOND));
String conditionStr2 = "gmt_create = 2011-11-11 11:11:11.0 : d";
Comparative comp2 = ComparativeStringAnalyser.decodeComparative(conditionStr2, null);
Calendar cal2 = Calendar.getInstance();
cal2.setTime((Date) comp2.getValue());
Assert.assertEquals(2011, cal2.get(Calendar.YEAR));
Assert.assertEquals(10, cal2.get(Calendar.MONTH));
Assert.assertEquals(11, cal2.get(Calendar.DATE));
Assert.assertEquals(11, cal2.get(Calendar.HOUR_OF_DAY));
Assert.assertEquals(11, cal2.get(Calendar.MINUTE));
Assert.assertEquals(11, cal2.get(Calendar.SECOND));
String conditionStr3 = "gmt_create=2011-11-11:d";
Comparative comp3 = ComparativeStringAnalyser.decodeComparative(conditionStr3, null);
Calendar cal3 = Calendar.getInstance();
cal3.setTime((Date) comp3.getValue());
Assert.assertEquals(2011, cal3.get(Calendar.YEAR));
Assert.assertEquals(10, cal3.get(Calendar.MONTH));
Assert.assertEquals(11, cal3.get(Calendar.DATE));
Assert.assertEquals(0, cal3.get(Calendar.HOUR_OF_DAY));
Assert.assertEquals(0, cal3.get(Calendar.MINUTE));
Assert.assertEquals(0, cal3.get(Calendar.SECOND));
}
@Test
public void testDecodeComparative_string() {
String conditionStr = "message in(hi:hi,hi:hi2,hi:hi3):s";
Comparative comp = ComparativeStringAnalyser.decodeComparative(conditionStr, null);
Assert.assertEquals("(=HI:HI) OR (=HI:HI2) OR (=HI:HI3)", comp.toString());
String conditionStr2 = "message in (hi:hi,hi:hi2,hi:hi3):string";
Comparative comp2 = ComparativeStringAnalyser.decodeComparative(conditionStr2, null);
Assert.assertEquals("(=HI:HI) OR (=HI:HI2) OR (=HI:HI3)", comp2.toString());
}
@Test
public void testDecodeComparative_int() {
String conditionStr = "message_id in(1,2,3):int";
Comparative comp = ComparativeStringAnalyser.decodeComparative(conditionStr, null);
Assert.assertEquals("(=1) OR (=2) OR (=3)", comp.toString());
String conditionStr2 = "message_id in(1,2,3):i";
Comparative comp2 = ComparativeStringAnalyser.decodeComparative(conditionStr2, null);
Assert.assertEquals("(=1) OR (=2) OR (=3)", comp2.toString());
}
@Test
public void testDecodeComparative_long() {
String conditionStr = "message_id in(1,2,3):long";
Comparative comp = ComparativeStringAnalyser.decodeComparative(conditionStr, null);
Assert.assertEquals("(=1) OR (=2) OR (=3)", comp.toString());
String conditionStr2 = "message_id in(1,2,3):l";
Comparative comp2 = ComparativeStringAnalyser.decodeComparative(conditionStr2, null);
Assert.assertEquals("(=1) OR (=2) OR (=3)", comp2.toString());
}
@Test
public void testDecodeComparative_null() {
String conditionStr = "message_id in(1,2,3)";
Comparative comp = ComparativeStringAnalyser.decodeComparative(conditionStr, null);
Assert.assertEquals("(=1) OR (=2) OR (=3)", comp.toString());
String conditionStr2 = "message_id in(1,2,3)";
Comparative comp2 = ComparativeStringAnalyser.decodeComparative(conditionStr2, null);
Assert.assertEquals("(=1) OR (=2) OR (=3)", comp2.toString());
}
}