Package test.sql

Source Code of test.sql.TestSelectSql

package test.sql;

import junit.framework.Assert;

import org.eweb4j.config.EWeb4JConfig;
import org.eweb4j.orm.dao.DAOFactory;
import org.eweb4j.orm.sql.SelectSqlCreator;
import org.eweb4j.orm.sql.SqlFactory;
import org.junit.BeforeClass;
import org.junit.Test;

import test.po.Master;
import test.po.Pet;


/**
* <b>测试SELECT语句</b>
*
* @author CFuture.aw
* @version 2011-05-10
* @since 1.a.433
*
*/
public class TestSelectSql {
  private static SelectSqlCreator<Pet> select;
  private static Pet pet;
  private static Master master;
  private static String fieldAdd;

  @BeforeClass
  public static void prepare() throws Exception {
    String err = EWeb4JConfig.start("start.eweb.xml");
    if (err != null){
      System.out.println(">>>EWeb4J Start Error --> " + err);
      System.exit(-1);
    }
    pet = new Pet();
    master = new Master();
    master.setId(5);
    pet.setMaster(master);
    pet.setName("xiaobai");
    select = SqlFactory.getSelectSql(pet, "mysql");
    fieldAdd = "+0";

  }

  @Test
  public void testSelect() throws Exception {
    Pet _pet = new Pet();
    _pet.setPetId(13);
    Pet pet = DAOFactory.getSelectDAO().selectOne(_pet, "petId");
    System.out.println(">>>>>>>>>>" + pet);
    Assert.assertEquals(true, true);
  }

  @Test
  public void testSelectByField() throws Exception {
    String[] fields = { "master", "name" };
    String sql = select.selectWhere(fields);
    Assert.assertEquals(
        "SELECT * FROM t_pet WHERE master_id  =  '5'  AND name  =  'xiaobai'  ORDER BY id"
            + fieldAdd + " DESC ;", sql);
    String[] values = { "4", "xiaobai" };
    int likeType = 0;
    boolean isLike = true;
    boolean isNot = true;
    boolean isOR = true;
    String orderField = "id+0";
    int oType = -1;
    int currentPage = -1;
    int numPerPage = -1;
    sql = select.selectWhere(fields, values, likeType, isLike, isNot, isOR,
        orderField, oType, currentPage, numPerPage);
    Assert.assertEquals(
        "SELECT * FROM t_pet WHERE master_id  NOT LIKE  '%4%'  OR name  NOT LIKE  '%xiaobai%'  ORDER BY id"
            + fieldAdd + " DESC ;", sql);
  }

  @Test
  public void testNextOne() {
    pet.setPetId(3);
    String sql = select.nextOne();
    Assert.assertEquals("SELECT * FROM t_pet WHERE id" + fieldAdd
         +" > 3 ORDER BY id" + fieldAdd + " ASC LIMIT 1;", sql);
  }

  @Test
  public void testPreOne() {
    pet.setPetId(5);
    String sql = select.preOne();
    Assert.assertEquals("SELECT * FROM t_pet WHERE id" + fieldAdd
        + " < 5 ORDER BY id" + fieldAdd + " DESC LIMIT 1;", sql);
  }

  @Test
  public void testDivPageByWhere() {
    String sql = select.divPage(2, 5, "age+0", 1, "xxx = 'ooo'");
    Assert.assertEquals(
        "SELECT * FROM t_pet  WHERE xxx = 'ooo' ORDER BY age"
            + fieldAdd + " ASC LIMIT 5, 5 ;", sql);
  }

  @Test
  public void testDivPage() {
    String sql = select.divPage(1, 5, "age+0", 1);
    Assert.assertEquals("SELECT * FROM t_pet  ORDER BY age" + fieldAdd
        + " ASC LIMIT 0, 5 ;", sql);
  }

  @Test
  public void testDivPageOrderByIdField() {
    String sql = select.divPage(1, 5, 1);
    Assert.assertEquals("SELECT * FROM t_pet  ORDER BY id" + fieldAdd
        + " ASC LIMIT 0, 5 ;", sql);
  }

  @Test
  public void testDivPageByWhereOrderByIdField() {
    String sql = select.divPage(1, 5, 1, "ooo = 'xxx'");
    Assert.assertEquals(
        "SELECT * FROM t_pet  WHERE ooo = 'xxx' ORDER BY id" + fieldAdd
            + " ASC LIMIT 0, 5 ;", sql);
  }

  @Test
  public void testDivPageOrderByIdFieldDESC() {
    String sql = select.divPage(1, 2);
    Assert.assertEquals("SELECT * FROM t_pet  ORDER BY id" + fieldAdd
        + " DESC LIMIT 0, 2 ;", sql);
  }

  @Test
  public void testDivPageOrderByIdFieldDESCAndByWhere() {
    String sql = select.divPage(1, 2, "xxx = 'ooo'");
    Assert.assertEquals(
        "SELECT * FROM t_pet  WHERE xxx = 'ooo' ORDER BY id" + fieldAdd
            + " DESC LIMIT 0, 2 ;", sql);
  }

  @Test
  public void testDivPageByFieldIsValue() {
    String[] fields = new String[] { "name", "age" };
    String[] values = new String[] { "小黑", "4" };

    String sql = select.selectWhere(fields, values, "age+0", 1, 2, 5);
    Assert.assertEquals(
        "SELECT * FROM t_pet  WHERE name  =  '小黑'  AND age  =  '4'  ORDER BY age"
            + fieldAdd + " ASC LIMIT 5, 5 ;", sql);
  }

  @Test
  public void testDivPageByFieldNotIsValue() {
    String[] fields = new String[] { "name", "age" };
    String[] values = new String[] { "小黑", "4" };

    String sql = select.selectWhereNot(fields, values, "age+0", -1, 1, 2);
    Assert.assertEquals(
        "SELECT * FROM t_pet  WHERE name <> '小黑'  AND age <> '4'  ORDER BY age"
            + fieldAdd + " DESC LIMIT 0, 2 ;", sql);
  }

  @Test
  public void testDivPageByFieldIsValueByPOJO() {
    String[] fields = new String[] { "name", "age", "master" };
    pet.setName("小白");
    pet.setAge(19);
    Master master = new Master();
    master.setId(8);
    pet.setMaster(master);
    String sql = select.selectWhere(fields, "age+0", 1, 2, 5);
    Assert.assertEquals(
        "SELECT * FROM t_pet  WHERE name  =  '小白'  AND age  =  '19'  AND master_id  =  '8'  ORDER BY age"
            + fieldAdd + " ASC LIMIT 5, 5 ;", sql);
  }

  @Test
  public void testDivPageByFieldNotIsValueByPOJO() {
    String[] fields = new String[] { "name", "age" };
    pet.setName("小白");
    pet.setAge(19);
    String sql = select.selectWhereNot(fields, "age+0", 1, 2, 5);
    Assert.assertEquals(
        "SELECT * FROM t_pet  WHERE name <> '小白'  AND age <> '19'  ORDER BY age"
            + fieldAdd + " ASC LIMIT 5, 5 ;", sql);
  }

  @Test
  public void testDivPageByFieldIsValueOrderByIdField() {
    String[] fields = new String[] { "name", "age" };
    String[] values = new String[] { "小黑", "4" };

    String sql = select.selectWhere(fields, values, 1, 2, 5);
    Assert.assertEquals(
        "SELECT * FROM t_pet  WHERE name  =  '小黑'  AND age  =  '4'  ORDER BY id"
            + fieldAdd + " ASC LIMIT 5, 5 ;", sql);
  }

  @Test
  public void testDivPageByFieldNotIsValueOrderByIdField() {
    String[] fields = new String[] { "name", "age" };
    String[] values = new String[] { "小黑", "4" };

    String sql = select.selectWhereNot(fields, values, -1, 1, 2);
    Assert.assertEquals(
        "SELECT * FROM t_pet  WHERE name <> '小黑'  AND age <> '4'  ORDER BY id"
            + fieldAdd + " DESC LIMIT 0, 2 ;", sql);
  }
}
TOP

Related Classes of test.sql.TestSelectSql

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.