mirror of https://github.com/apache/cloudstack.git
139 lines
4.2 KiB
Java
139 lines
4.2 KiB
Java
// Copyright 2012 Citrix Systems, Inc. Licensed under the
|
|
// Apache License, Version 2.0 (the "License"); you may not use this
|
|
// file except in compliance with the License. Citrix Systems, Inc.
|
|
// reserves all rights not expressly granted by the License.
|
|
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
// Automatically generated by addcopyright.py at 04/03/2012
|
|
package com.cloud.utils.db;
|
|
|
|
import java.sql.Connection;
|
|
import java.sql.PreparedStatement;
|
|
import java.sql.SQLException;
|
|
|
|
import javax.persistence.Column;
|
|
import javax.persistence.Entity;
|
|
import javax.persistence.GeneratedValue;
|
|
import javax.persistence.GenerationType;
|
|
import javax.persistence.Id;
|
|
import javax.persistence.Table;
|
|
|
|
import junit.framework.TestCase;
|
|
|
|
import com.cloud.utils.component.ComponentLocator;
|
|
import com.cloud.utils.exception.CloudRuntimeException;
|
|
|
|
|
|
public class QueryBuilderTest extends TestCase {
|
|
@Entity
|
|
@Table(name="test")
|
|
public static class TestVO {
|
|
@Id
|
|
@GeneratedValue(strategy=GenerationType.IDENTITY)
|
|
long id;
|
|
|
|
@Column(name="int")
|
|
int fieldInt;
|
|
|
|
@Column(name="long")
|
|
Long fieldLong;
|
|
|
|
@Column(name="string")
|
|
String fieldString;
|
|
|
|
public String getFieldString() {
|
|
return fieldString;
|
|
}
|
|
|
|
public int getFieldInt() {
|
|
return fieldInt;
|
|
}
|
|
|
|
public long getFieldLong() {
|
|
return fieldLong;
|
|
}
|
|
|
|
public TestVO() {
|
|
}
|
|
}
|
|
|
|
public static class TestDao extends GenericDaoBase<TestVO, Long> implements GenericDao<TestVO, Long> {
|
|
protected TestDao() {
|
|
}
|
|
}
|
|
|
|
public void setup() {
|
|
Connection conn = null;
|
|
PreparedStatement pstmt = null;
|
|
try {
|
|
conn = Transaction.getStandaloneConnection();
|
|
|
|
pstmt = conn.prepareStatement("CREATE TABLE `cloud`.`test` (" +
|
|
"`id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT," +
|
|
"`int` int unsigned," +
|
|
"`long` bigint unsigned," +
|
|
"`string` varchar(255)," +
|
|
"PRIMARY KEY (`id`)" +
|
|
") ENGINE=InnoDB DEFAULT CHARSET=utf8;");
|
|
|
|
pstmt.execute();
|
|
|
|
} catch (SQLException e) {
|
|
throw new CloudRuntimeException("Problem with sql", e);
|
|
} finally {
|
|
if (pstmt != null) {
|
|
try {
|
|
pstmt.close();
|
|
} catch (SQLException e) {
|
|
}
|
|
}
|
|
if (conn != null) {
|
|
try {
|
|
conn.close();
|
|
} catch (SQLException e) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void teardown() {
|
|
Connection conn = null;
|
|
PreparedStatement pstmt = null;
|
|
try {
|
|
conn = Transaction.getStandaloneConnection();
|
|
|
|
pstmt = conn.prepareStatement("DROP TABLE IF EXISTS `cloud`.`test`");
|
|
pstmt.execute();
|
|
|
|
} catch (SQLException e) {
|
|
throw new CloudRuntimeException("Problem with sql", e);
|
|
} finally {
|
|
if (pstmt != null) {
|
|
try {
|
|
pstmt.close();
|
|
} catch (SQLException e) {
|
|
}
|
|
}
|
|
if (conn != null) {
|
|
try {
|
|
conn.close();
|
|
} catch (SQLException e) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void testSimpleQueryBuilder() {
|
|
TestDao dao = ComponentLocator.inject(TestDao.class);
|
|
SimpleQueryBuilder<TestVO> qb = new QueryBuilder<TestVO, TestVO>(TestVO.class, TestVO.class);
|
|
qb.selectFields(qb.entity().getFieldLong()).where().field(qb.entity().getFieldInt()).eq("abc");
|
|
|
|
}
|
|
|
|
}
|