Package com.google.code.hs4j.impl

Source Code of com.google.code.hs4j.impl.IndexSessionImplUnitTest

package com.google.code.hs4j.impl;

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

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import org.junit.Before;
import org.junit.Test;

import com.google.code.hs4j.Filter;
import com.google.code.hs4j.Filter.FilterType;
import com.google.code.hs4j.FindOperator;
import com.google.code.hs4j.Hs4jTestBase;
import com.google.code.hs4j.IndexSession;
import com.google.code.hs4j.ModifyStatement;

public class IndexSessionImplUnitTest extends Hs4jTestBase {
  private IndexSession session;
  private final String[] columns = { "user_id", "user_name", "user_email", "age" };
  private final String tableName = "test_user";
  private final String indexName = "NAME_MAIL_INDEX";
  @Before
  public void setUp() throws Exception {
    super.setUp();
    this.session = this.hsClient.openIndexSession(dbname, tableName,
        indexName, columns);
  }

  @Test
  public void insertByHS4J_FindByJDBC_DeleteByJDBC_FindByHS4J()
      throws Exception {
    assertTrue(this.session.insert(new String[] { "0", "阿丹", "阿丹@中国", "27",
        "2010-11-28 13:24:00" }));

    // find by jdbc
    Connection conn = getConnection();
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt
        .executeQuery("select * from test_user where user_name='阿丹'");

    assertTrue(rs.next());

    System.out.println(rs.getInt(1));
    assertEquals("阿丹", rs.getString(2));
    assertEquals("阿丹@中国", rs.getString(3));
    assertEquals(27, rs.getInt(4));
    assertFalse(rs.next());
    rs.close();
    stmt.close();

    // find by hs4j
    final String[] keys = { "阿丹", "阿丹@中国" };
    rs = this.session.find(keys);
    assertTrue(rs.next());

    System.out.println(rs.getInt(1));
    assertEquals("阿丹", rs.getString(2));
    assertEquals("阿丹@中国", rs.getString(3));
    assertEquals(27, rs.getInt(4));
    assertFalse(rs.next());

    stmt = conn.createStatement();
    assertEquals(1, stmt
        .executeUpdate("delete from test_user where user_name='阿丹'"));
    stmt.close();
    rs = this.session.find(keys);
    assertFalse(rs.next());

  }

  @Test
  public void insertFindDelete_Chinese_ByHS4j() throws Exception {
    // find null
    final String[] keys = { "阿丹", "阿丹@中国" };
    ResultSet rs = this.session.find(keys);
    assertFalse(rs.next());

    // insert
    assertTrue(this.session.insert(new String[] { "0", "阿丹", "阿丹@中国", "27",
        "2010-11-28 13:24:00" }));

    // find once
    rs = this.session.find(keys);
    assertTrue(rs.next());

    System.out.println(rs.getInt(1));
    assertEquals("阿丹", rs.getString(2));
    assertEquals("阿丹@中国", rs.getString(3));
    assertEquals(27, rs.getInt(4));
    assertFalse(rs.next());

    // update
    assertEquals(1, this.session.update(keys, new String[] { "1", "阿丹",
        "阿丹@杭州", "109" }, FindOperator.EQ));

    // find twice
    rs = this.session.find(new String[] { "阿丹" });
    assertTrue(rs.next());

    System.out.println(rs.getInt("user_id"));
    assertEquals("阿丹", rs.getString("user_name"));
    assertEquals("阿丹@杭州", rs.getString("user_email"));
    assertEquals(109, rs.getInt("age"));
    assertFalse(rs.next());

    // delete
    assertEquals(1, this.session.delete(new String[] { "阿丹" }));
    // find null
    rs = this.session.find(keys);
    assertFalse(rs.next());
  }

  @Test
  public void testFindInsertFindUpdateFindDeleteFind_ByHS4j()
      throws Exception {
    // find null
    final String[] keys = { "dennis", "killme2008@\tgmail.com" };
    ResultSet rs = this.session.find(keys);
    assertFalse(rs.next());

    // insert
    assertTrue(this.session.insert(new String[] { "0", "dennis",
        "killme2008@\tgmail.com", "27", "2010-11-28 13:24:00" }));

    // find once
    rs = this.session.find(keys);
    assertTrue(rs.next());

    System.out.println(rs.getInt(1));
    assertEquals("dennis", rs.getString(2));
    assertEquals("killme2008@\tgmail.com", rs.getString(3));
    assertEquals(27, rs.getInt(4));
    assertFalse(rs.next());

    // update
    assertEquals(1, this.session.update(keys, new String[] { "1", "dennis",
        "test@163.com", "109" }, FindOperator.EQ));

    // find twice
    rs = this.session.find(new String[] { "dennis" });
    assertTrue(rs.next());

    System.out.println(rs.getInt("user_id"));
    assertEquals("dennis", rs.getString("user_name"));
    assertEquals("test@163.com", rs.getString("user_email"));
    assertEquals(109, rs.getInt("age"));
    assertFalse(rs.next());

    // delete
    assertEquals(1, this.session.delete(new String[] { "dennis" },
        FindOperator.EQ));
    // find null
    rs = this.session.find(keys);
    assertFalse(rs.next());
  }

  @Test
  public void testFindInsertFindUpdateFindDeleteFind_ByModifyStatement_ByHS4j()
      throws Exception {
    // find null
    final String[] keys = { "dennis", "killme2008@\tgmail.com" };
    ResultSet rs = this.session.find(keys);
    assertFalse(rs.next());

    ModifyStatement stmt = this.session.createStatement();
    stmt.setInt(1, 0);
    stmt.setString(2, "dennis");
    stmt.setString(3, "killme2008@\tgmail.com");
    stmt.setInt(4, 27);
    stmt.setString(5, "2010-11-28 13:24:00");

    // insert
    assertTrue(stmt.insert());

    // find once
    rs = this.session.find(keys);
    assertTrue(rs.next());

    System.out.println(rs.getInt(1));
    assertEquals("dennis", rs.getString(2));
    assertEquals("killme2008@\tgmail.com", rs.getString(3));
    assertEquals(27, rs.getInt(4));
    assertFalse(rs.next());

    // update
    stmt = this.session.createStatement();
    stmt.setInt(1, 1);
    stmt.setString(2, "dennis");
    stmt.setString(3, "test@163.com");
    stmt.setInt(4, 109);
    assertEquals(1, stmt.update(keys, FindOperator.EQ));

    // find twice
    rs = this.session.find(new String[] { "dennis" });
    assertTrue(rs.next());

    System.out.println(rs.getInt("user_id"));
    assertEquals("dennis", rs.getString("user_name"));
    assertEquals("test@163.com", rs.getString("user_email"));
    assertEquals(109, rs.getInt("age"));
    assertFalse(rs.next());

    // delete
    assertEquals(1, this.session.delete(new String[] { "dennis" },
        FindOperator.EQ));
    // find null
    rs = this.session.find(keys);
    assertFalse(rs.next());
  }

  @Test
  public void testInsertByJDBC_FindByHS4J() throws Exception {
    Connection conn = getConnection();
    Statement stmt = conn.createStatement();
    assertEquals(
        1,
        stmt
            .executeUpdate("insert into test_user values(0,'dennis','test@163.com','27','2010-11-28 13:24:00')"));

    final String[] keys = { "dennis", "test@163.com" };
    ResultSet rs = this.session.find(keys);
    assertTrue(rs.next());

    System.out.println(rs.getInt(1));
    assertEquals("dennis", rs.getString(2));
    assertEquals("test@163.com", rs.getString(3));
    assertEquals(27, rs.getInt(4));
    assertFalse(rs.next());
  }
  @Test
  public void testInsertByJDBC_FindFilterByHS4J() throws Exception {
    Connection conn = getConnection();
    Statement stmt = conn.createStatement();
    String[] fcolumn = {"age"};
    IndexSession session = this.hsClient.openIndexSession(dbname, tableName,
        indexName, columns, fcolumn);

    assertEquals(
        1,
        stmt
            .executeUpdate("insert into test_user values(0,'dennis','test@163.com','27','2010-11-28 13:24:00')"));

    final String[] keys = { "dennis", "test@163.com" };
    Filter[] filters ={new Filter(FilterType.FILTER,FindOperator.EQ, 0, "27")};
    ResultSet rs = session.find(keys,FindOperator.EQ,1,0,filters);
    assertTrue(rs.next());

    System.out.println(rs.getInt(1));
    assertEquals("dennis", rs.getString(2));
    assertEquals("test@163.com", rs.getString(3));
    assertEquals(27, rs.getInt(4));
    assertFalse(rs.next());

    filters = new Filter[]{new Filter(FilterType.FILTER,FindOperator.GT, 0, "27")};
    rs = session.find(keys,FindOperator.EQ,1,0,filters);
    assertFalse(rs.next());   
  }

}
TOP

Related Classes of com.google.code.hs4j.impl.IndexSessionImplUnitTest

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.