package com.redspr.redquerybuilder.core.client;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.junit.Test;
import com.google.gwt.dom.client.Element;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.ui.MultiWordSuggestOracle.MultiWordSuggestion;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.SuggestOracle.Response;
import com.google.gwt.user.client.ui.SuggestOracle.Suggestion;
import com.redspr.redquerybuilder.core.client.command.CommandBuilder;
import com.redspr.redquerybuilder.core.client.command.Parser;
import com.redspr.redquerybuilder.core.client.command.Prepared;
import com.redspr.redquerybuilder.core.client.command.dml.Select;
import com.redspr.redquerybuilder.core.client.engine.Session;
import com.redspr.redquerybuilder.core.client.engine.TableEvent;
import com.redspr.redquerybuilder.core.client.engine.TableEventHandler;
import com.redspr.redquerybuilder.core.client.expression.Comparison;
import com.redspr.redquerybuilder.core.client.expression.ConditionAndOr;
import com.redspr.redquerybuilder.core.client.expression.ExpressionColumn;
import com.redspr.redquerybuilder.core.client.expression.Nop;
import com.redspr.redquerybuilder.core.client.expression.Parameter;
import com.redspr.redquerybuilder.core.client.expression.SelectEditorWidget;
import com.redspr.redquerybuilder.core.client.table.JoinHelper;
import com.redspr.redquerybuilder.core.client.table.TableFilter;
import com.redspr.redquerybuilder.core.client.util.ObjectArray;
import com.redspr.redquerybuilder.core.shared.meta.ConstraintReferential;
import com.redspr.redquerybuilder.core.shared.meta.Editor;
import com.redspr.redquerybuilder.core.shared.meta.Table;
public class GwtTestBasics extends AbstractTest {
@Test
public void testComparison() throws Exception {
Parser p = new Parser(getSession());
Comparison c = (Comparison) p.parseExpression("id = ?");
ExpressionColumn left = (ExpressionColumn) c.getLeft();
Parameter param = (Parameter) c.getRight();
}
@Test
public void testSimpleSelect() throws Exception {
Parser p = new Parser(getSession());
Prepared prep = p.parseOnly("SELECT id FROM Person WHERE sex = ?");
Select s = (Select) prep;
assertTrue(s != null);
ExpressionColumn ec = (ExpressionColumn) s.getExpressions().get(0);
assertEquals("ID", ec.getSQL(new ArrayList()));
assertEquals(1, s.getFilters().size());
TableFilter tf = s.getFilters().get(0);
assertTrue(tf != null);
assertEquals("PERSON", tf.getTable().getName());
Comparison c = (Comparison) s.getCondition();
assertEquals("SELECT ID\nFROM PERSON\nWHERE (SEX = ?)", s.getSQL(new ArrayList()));
}
@Test
public void testParseLike() throws Exception {
Parser p = new Parser(getSession());
Prepared prep = p.parseOnly("SELECT id FROM Person WHERE owner LIKE ?");
Select s = (Select) prep;
assertEquals("SELECT ID\nFROM PERSON\nWHERE (OWNER LIKE ?)", s.getSQL(new ArrayList()));
}
@Test
public void testParseCustom() throws Exception {
Parser p = new Parser(getSession());
Prepared prep = p.parseOnly("SELECT id FROM Person WHERE sex CUSTOM_OP ?");
Select s = (Select) prep;
assertEquals("SELECT ID\nFROM PERSON\nWHERE (SEX CUSTOM_OP ?)", s.getSQL(new ArrayList()));
}
@Test
public void testInitialArgValue() throws Exception {
CommandBuilder cb = new CommandBuilder(getSession(),
"SELECT id FROM Person WHERE sex = ?", new ArrayList());
List args = new ArrayList();
cb.getSelect().getSQL(args);
assertEquals(null, args.get(0));
}
@Test
public void testIsNull() throws Exception {
Session sess = getSession();
Parser p = new Parser(sess);
Prepared prep = p.parseOnly("SELECT id FROM Person x1 WHERE x1.sex IS NULL");
Select s = (Select) prep;
Comparison c = (Comparison) s.getCondition();
// test output
List outArgs = new ArrayList();
String outSql = s.getSQL(new ArrayList());
assertEquals("SELECT ID\nFROM PERSON X1\nWHERE (X1.SEX IS NULL)", outSql);
}
@Test
public void testParseAlias() throws Exception {
Session sess = getSession();
Parser p = new Parser(sess);
sess.getValueRegistry().add("foo");
Prepared prep = p.parseOnly("SELECT id FROM Person x1 WHERE x1.sex = ?");
Select s = (Select) prep;
assertTrue(s != null);
ExpressionColumn ec = (ExpressionColumn) s.getExpressions().get(0);
assertEquals("ID", ec.getSQL(new ArrayList()));
assertEquals(1, s.getFilters().size());
TableFilter tf = s.getFilters().get(0);
assertTrue(tf != null);
assertEquals("PERSON", tf.getTable().getName());
assertEquals("X1", tf.getAlias());
Comparison c = (Comparison) s.getCondition();
// test output
List outArgs = new ArrayList();
String outSql = s.getSQL(outArgs);
assertEquals("SELECT ID\nFROM PERSON X1\nWHERE (X1.SEX = ?)", outSql);
assertEquals("foo", outArgs.get(0));
}
@Test
public void testParseAliasWithBrackets() throws Exception {
Session sess = getSession();
Parser p = new Parser(sess);
sess.getValueRegistry().add("foo");
Prepared prep = p.parseOnly("SELECT id FROM Person x1 WHERE (x1.sex = ?)");
Select s = (Select) prep;
assertTrue(s != null);
ExpressionColumn ec = (ExpressionColumn) s.getExpressions().get(0);
assertEquals("ID", ec.getSQL(new ArrayList()));
assertEquals(1, s.getFilters().size());
TableFilter tf = s.getFilters().get(0);
assertTrue(tf != null);
assertEquals("PERSON", tf.getTable().getName());
assertEquals("X1", tf.getAlias());
Comparison c = (Comparison) s.getCondition();
// test output
List outArgs = new ArrayList();
String outSql = s.getSQL(outArgs);
assertEquals("SELECT ID\nFROM PERSON X1\nWHERE (X1.SEX = ?)", outSql);
assertEquals("foo", outArgs.get(0));
}
@Test
public void testAndOrRemove() throws Exception {
Session s = getSession();
Nop a = new Nop();
Nop b = new Nop();
ConditionAndOr toGo = new ConditionAndOr(s, 0, a, b);
ConditionAndOr root = new ConditionAndOr(s, 0, toGo, new Nop());
toGo.remove(a);
assertTrue(root.getLeft() == b);
assertEquals("(1=1 AND 1=1)", root.getSQL(new ArrayList()));
}
@Test
public void testSetTableAddCondRemoveCond() throws Exception {
Session s = getSession();
CommandBuilder cb = new CommandBuilder(s);
cb.getSelect().updateTable(
s.getDatabase().getMainSchema().findTableOrView("PERSON"));
cb.getSelect().getSQL(new ArrayList());
Comparison c = new Comparison(s);
cb.getSelect().addCondition(c);
cb.fireDirty();
cb.getSelect().remove(c);
cb.fireDirty();
}
@Test
public void testSetTableAddCondRemoveCond2() throws Exception {
Session s = getSession();
CommandBuilder cb = new CommandBuilder(s);
cb.getSelect().updateTable(
s.getDatabase().getMainSchema().findTableOrView("Log"));
cb.getSelect().getSQL(new ArrayList());
Comparison c = new Comparison(s);
cb.getSelect().addCondition(c);
cb.fireDirty();
cb.getSelect().remove(c);
cb.fireDirty();
}
@Test
public void testChangeTableWithCondition() throws Exception {
Session s = getSession();
CommandBuilder cb = new CommandBuilder(s);
// RootPanel.get().add(cb);
cb.getSelect().updateTable(
s.getDatabase().getMainSchema().findTableOrView("PERSON"));
cb.fireDirty();
Comparison c = new Comparison(s);
cb.getSelect().addCondition(c);
cb.fireDirty();
cb.getSelect().updateTable(
s.getDatabase().getMainSchema().findTableOrView("Log"));
cb.fireDirty();
}
@Test
public void testSimpleJoin() throws Exception {
Session s = getSession();
CommandBuilder cb = new CommandBuilder(s);
cb.getSelect().updateTable(
s.getDatabase().getMainSchema().findTableOrView("Log"));
s.getMsgBus().fireEvent(new TableEvent()); // XXX encapsulation
cb.fireDirty();
Comparison c = new Comparison(s);
cb.getSelect().addCondition(c);
cb.fireDirty();
ExpressionColumn left = (ExpressionColumn) c.getLeft();
TableFilter log = cb.getSelect().getFilters().get(0);
assertEquals("Log", log.getTable().getName());
assertEquals("x0", log.getAlias());
for (int i = 0; i < 2; i++) {
left.selectConstraintRef((ConstraintReferential) log.getTable()
.getConstraints().get(0));
left.updateColumn("x1", s.getDatabase().getMainSchema().findTableOrView(
"PERSON").getColumn("sex"));
{
JoinHelper thing = JoinHelper.getParent(cb.getSelect()
.getTableFilter("x1"));
assertTrue(log.getTable().getConstraints().get(0) == thing
.getConstraint());
assertEquals("x0", thing.getParent().getAlias());
}
{
JoinHelper thing = JoinHelper.getParent(cb.getSelect()
.getTableFilter("x0"));
assertTrue(thing == null);
}
assertEquals(
"try " + i,
"SELECT \nFROM Log x0\nINNER JOIN PERSON x1 ON x0.parent = x1.id\nWHERE (x1.sex = ?)",
cb.getSelect().getSQL(new ArrayList()));
}
}
@Test
public void testSelectAndUnselectJoin() throws Exception {
Session s = getSession();
CommandBuilder cb = new CommandBuilder(s);
cb.getSelect().updateTable(
s.getDatabase().getMainSchema().findTableOrView("Log"));
cb.fireDirty();
Comparison c = new Comparison(s);
cb.getSelect().addCondition(c);
cb.fireDirty();
ExpressionColumn left = (ExpressionColumn) c.getLeft();
TableFilter log = cb.getSelect().getFilters().get(0);
left.selectConstraintRef((ConstraintReferential) log.getTable()
.getConstraints().get(0));
cb.fireDirty();
left.updateColumn("x1", s.getDatabase().getMainSchema().findTableOrView(
"PERSON").getColumn("sex"));
cb.fireDirty();
assertEquals(
"SELECT \nFROM Log x0\nINNER JOIN PERSON x1 ON x0.parent = x1.id\nWHERE (x1.sex = ?)",
cb.getSelect().getSQL(new ArrayList()));
// change back to simple column
left.updateColumn("x0", log.getTable().getColumn("date"));
cb.fireDirty();
}
// select Log -> Person -> Log
@Test
public void testSelectAndThenReverseJoin() throws Exception {
Session s = getSession();
s.getDatabase().getMainSchema().addReverseConstraints();
CommandBuilder cb = new CommandBuilder(s);
Table log = s.getDatabase().getMainSchema().findTableOrView("Log");
ConstraintReferential logToPerson = (ConstraintReferential) log
.getConstraintByName("parentfk");
Table person = s.getDatabase().getMainSchema().findTableOrView("PERSON");
ConstraintReferential personToLog = (ConstraintReferential) person
.getConstraintByName("Rev parentfk");
cb.getSelect().updateTable(log);
cb.fireDirty();
Comparison c = new Comparison(s);
cb.getSelect().addCondition(c);
cb.fireDirty();
ExpressionColumn left = (ExpressionColumn) c.getLeft();
left.selectConstraintRef(logToPerson);
cb.fireDirty();
assertEquals(
"SELECT \nFROM Log x0\nINNER JOIN PERSON x1 ON x0.parent = x1.id\nWHERE (x1.id = ?)",
cb.getSelect().getSQL(new ArrayList()));
left.selectConstraintRef(personToLog);
// ValueChangeEvent.fire(left, left.getColumn());
cb.getSelect().onDirty(); // TODO 20 need this to make unit test work, async issue?
cb.fireDirty(); // XXX bad encapsulation, causes garbage collection
assertEquals(
"SELECT \nFROM Log x0\nWHERE (x0.id = ?)",
cb.getSelect().getSQL(new ArrayList()));
}
// SELECT x1.id FROM "Contact" x1 JOIN "Org" x0 ON x1."parent" = x0."id" WHERE (x0."owner" = ?)
@Test
public void testParseJoin() throws Exception {
Session sess = getSession();
Parser p = new Parser(sess);
sess.getValueRegistry().add("foo");
Prepared prep = p.parseOnly("SELECT x1.id FROM \"Log\" x1 JOIN \"PERSON\" x0 ON x1.\"parent\" = x0.\"id\" WHERE (x0.\"owner\" = ?)");
Select s = (Select) prep;
assertEquals(2, s.getFilters().size());
TableFilter tf0 = s.getFilters().get(0);
TableFilter tf1 = s.getFilters().get(1);
assertTrue(tf0.getJoin() == tf1);
// assertTrue(s != null);
// ExpressionColumn ec = (ExpressionColumn) s.getExpressions().get(0);
//
// assertEquals("ID", ec.getSQL(new ArrayList()));
//
// assertEquals(1, s.getFilters().size());
// TableFilter tf = s.getFilters().get(0);
// assertTrue(tf != null);
// assertEquals("PERSON", tf.getTable().getName());
// assertEquals("X1", tf.getAlias());
//
// Comparison c = (Comparison) s.getCondition();
// test output
List outArgs = new ArrayList();
String outSql = s.getSQL(outArgs);
assertEquals("SELECT X1.ID\nFROM Log X1\nINNER JOIN PERSON X0 ON X1.parent = X0.id\nWHERE (X0.owner = ?)", outSql);
assertEquals("foo", outArgs.get(0));
}
@Test
public void testAddThirdDuplicateJoin() throws Exception {
Session s = getSession();
CommandBuilder cb = new CommandBuilder(s);
Table person = s.getDatabase().getMainSchema().findTableOrView("PERSON");
s.getDatabase().getMainSchema().addReverseConstraints();
cb.getSelect().updateTable(person);
JoinHelper.getOrCreateFor(s, (ConstraintReferential) person.getConstraints().get(0));
TableFilter b = JoinHelper.getOrCreateFor(s, (ConstraintReferential) person.getConstraints().get(1));
assertTrue(b.getJoin() == null);
TableFilter c = JoinHelper.getOrCreateFor(s, (ConstraintReferential) person.getConstraints().get(1));
assertTrue(b == c);
}
@Test
public void testTableChangeUpdatingExpression() throws Exception {
final Session s = getSession();
final CommandBuilder cb = new CommandBuilder(s);
s.getMsgBus().addHandler(TableEvent.TYPE, new TableEventHandler() {
@Override
public void onTable(TableEvent e) {
ObjectArray expr = ObjectArray.newInstance();
String alias = s.getFilters().get(0).getAlias();
expr.add(new ExpressionColumn(s, null, alias, "id"));
cb.getSelect().setExpressions(expr);
}
});
Table person = s.getDatabase().getMainSchema().findTableOrView("PERSON");
cb.getSelect().updateTable(person);
assertEquals(
"SELECT x0.id\nFROM PERSON x0",
cb.getSelect().getSQL(new ArrayList()));
}
@Test
public void testTableFilterGarbageCollect() throws Exception {
Parser p = new Parser(getSession());
String sql0 = "SELECT x.id FROM Person x"
+ " LEFT JOIN Person x0 ON x0.id=x.id"
+ " LEFT JOIN Log x1 ON x1.parent=x0.id"
+ " LEFT JOIN Log x2 ON x2.parent=x0.id"
+ " LEFT JOIN Log x4 ON x4.parent=x0.id"
+ " LEFT JOIN Person x3 ON x2.parent=x3.id"
+ " WHERE x1.id=?";
Prepared prep = p.parseOnly(sql0);
Select s = (Select) prep;
s.garbageCollectFilters();
// collect initial non-sense...
String sql1 = "SELECT X.ID\nFROM PERSON X\n"
+ "LEFT OUTER JOIN PERSON X0 ON X0.ID = X.ID\n"
+ "LEFT OUTER JOIN Log X1 ON X1.PARENT = X0.ID\n"
+ "WHERE (X1.ID = ?)";
assertEquals(sql1, s.getSQL(new ArrayList()));
Comparison c = (Comparison) s.getCondition();
s.remove(c);
s.garbageCollectFilters();
String sql2 = "SELECT X.ID\nFROM PERSON X";
assertEquals(sql2, s.getSQL(new ArrayList()));
}
@Test
public void testParseAndGenerateIn() throws Exception {
String sql0 = "SELECT x.id FROM Person x"
+ " WHERE x.category IN (?, ?)";
List<Object> args0 = args("1", "2");
CommandBuilder cb = new CommandBuilder(getSession(), sql0, args0);
Select s = cb.getSelect();
cb.fireDirty(); // XXX encapsulation
// collect initial non-sense...
String sql1 = "SELECT X.ID\nFROM PERSON X\n"
+ "WHERE (X.CATEGORY IN (?, ?))";
List<Object> args1 = new ArrayList<Object>();
assertEquals(sql1, s.getSQL(args1));
assertEquals(args0, args1);
}
@Test
public void testParseAndGenerateNotIn() throws Exception {
String sql0 = "SELECT x.id FROM Person x"
+ " WHERE x.category NOT IN (?, ?)";
List<Object> args0 = args("1", "2");
CommandBuilder cb = new CommandBuilder(getSession(), sql0, args0);
Select s = cb.getSelect();
cb.fireDirty(); // XXX encapsulation
// collect initial non-sense...
String sql1 = "SELECT X.ID\nFROM PERSON X\n"
+ "WHERE (X.CATEGORY NOT IN (?, ?))";
List<Object> args1 = new ArrayList<Object>();
assertEquals(sql1, s.getSQL(args1));
assertEquals(args0, args1);
}
@Test
public void testParseAndGenerateEmptyIn() throws Exception {
Parser p = new Parser(getSession());
String sql0 = "SELECT x.id FROM Person x"
+ " WHERE x.category IN (NULL)";
Prepared prep = p.parseOnly(sql0);
Select s = (Select) prep;
// collect initial non-sense...
String sql1 = "SELECT X.ID\nFROM PERSON X\n"
+ "WHERE (X.CATEGORY IN (NULL))";
List args = args();
assertEquals(sql1, s.getSQL(args));
assertEquals(0, args.size());
}
private List<Object> args(Object... args) {
List<Object> result = new ArrayList<Object>();
for (Object a : args) {
result.add(a);
}
return result;
}
@Test
public void testMultiToSingle() throws Exception {
Session sess = getSession();
String sql0 = "SELECT x.id FROM Person x"
+ " WHERE x.category IN (?, ?)";
CommandBuilder cb = new CommandBuilder(sess, sql0, args("A", "B"));
RootPanel.get().add(cb);
Select s = cb.getSelect();
cb.fireDirty();
{
Comparison comp = (Comparison) s.getCondition();
Parameter right = (Parameter) comp.getRight();
Element selectElmt = right.getElement();
String html = "<select class='gwt-ListBox' multiple='multiple' size='2'>"
+ "<option value='A'>A</option>"
+ "<option value='B'>B</option>"
+ "<option value='C'>C</option>" + "</select>";
assertEquals(html, selectElmt);
assertEquals("SELECT X.ID\nFROM PERSON X\nWHERE (X.CATEGORY IN (?, ?))", s.getSQL(args()));
// change to sex
ExpressionColumn left2 = (ExpressionColumn) comp.getLeft();
left2.updateColumn("X", sess.getDatabase().getMainSchema()
.findTableOrView("PERSON").getColumn("category2"));
cb.fireDirty();
}
{
Comparison comp = (Comparison) s.getCondition();
Parameter right = (Parameter) comp.getRight();
Element selectElmt = right.getElement();
String html = "<select class='gwt-ListBox' multiple='multiple' size='2'>"
+ "<option value='X'>X</option>"
+ "<option value='Y'>Y</option>"
+ "<option value='Z'>Z</option>" + "</select>";
assertEquals(html, selectElmt);
assertEquals("SELECT X.ID\nFROM PERSON X\nWHERE (X.category2 IN ?)", s.getSQL(args()));
// change to sex
ExpressionColumn left2 = (ExpressionColumn) comp.getLeft();
left2.updateColumn("X", sess.getDatabase().getMainSchema()
.findTableOrView("PERSON").getColumn("sex"));
cb.fireDirty();
}
{
Comparison comp = (Comparison) s.getCondition();
Parameter right = (Parameter) comp.getRight();
Element selectElmt = right.getElement();
String html = "<select class='gwt-ListBox'>"
+ "<option value='Please select...'>Please select...</option>"
+ "<option value='M'>M</option>"
+ "<option value='F'>F</option>"
+ "</select>";
assertEquals(html, selectElmt);
assertEquals("SELECT X.ID\nFROM PERSON X\nWHERE (X.sex = ?)", s.getSQL(args()));
}
// check options in ListBox please, male, female
}
@Test
public void testChangeFromStringToDateEditor() throws Exception {
Session sess = getSession();
String sql0 = "SELECT x.id FROM Log x"
+ " WHERE x.id = ?";
CommandBuilder cb = new CommandBuilder(sess, sql0, args("A"));
RootPanel.get().add(cb);
Select s = cb.getSelect();
cb.fireDirty();
{
Comparison comp = (Comparison) s.getCondition();
// change to sex
ExpressionColumn left2 = (ExpressionColumn) comp.getLeft();
left2.updateColumn("X", sess.getDatabase().getMainSchema()
.findTableOrView("LOG").getColumn("date"));
final List<Object> args = new ArrayList<Object>();
cb.addValueChangeHandler(new ValueChangeHandler<Select>() {
@Override
public void onValueChange(ValueChangeEvent<Select> event) {
event.getValue().getSQL(args);
}
});
left2.fireDirty();
assertEquals(1, args.size());
assertEquals(null, args.get(0));
}
}
@Test
public void testSingleSelectCorrectOptionsWithEditorOnColumn() throws Exception {
Session sess = getSession();
sess.getDatabase().getMainSchema()
.findTableOrView("PERSON").getColumn("owner").setEditor(new Editor.SelectEditor());
CommandBuilder cb = new CommandBuilder(sess, "SELECT x.id FROM Person x", null);
RootPanel.get().add(cb);
Select s = cb.getSelect();
Comparison c = s.addFirstCondition();
s.fireDirty();
ExpressionColumn left2 = (ExpressionColumn) c.getLeft();
left2.updateColumn("X", sess.getDatabase().getMainSchema()
.findTableOrView("PERSON").getColumn("owner"));
c.fireDirty();
assertEquals("<select class='gwt-ListBox'>"
+ "<option value='Please select...'>Please select...</option>"
+ "<option value='M'>M</option>"
+ "<option value='F'>F</option>"
+ "</select>", c.getRight());
}
@Test
public void testOptionSelectedFromBootstrap() throws Exception {
Session sess = getSession();
List<Object> args = new ArrayList<Object>();
args.add("M");
CommandBuilder cb = new CommandBuilder(sess, "SELECT x.id FROM Person x WHERE sex = ?", args);
RootPanel.get().add(cb);
Select s = cb.getSelect();
Comparison c = (Comparison) s.getCondition();
Parameter p = (Parameter) c.getRight();
SelectEditorWidget sew = (SelectEditorWidget) p.getEditorWidget();
assertEquals("M", sew.getValue());
}
@Test
public void testAsyncOptionSelectedFromBootstrap() throws Exception {
CapturingConfiguration config = new CapturingConfiguration();
Session sess = createSession(config);
List<Object> args = new ArrayList<Object>();
args.add("M");
CommandBuilder cb = new CommandBuilder(sess, "SELECT x.id FROM Person x WHERE sex = ?", args);
RootPanel.get().add(cb);
Select s = cb.getSelect();
// only now give them the enumeration
Collection<Suggestion> s2 = new ArrayList();
s2.add(new MultiWordSuggestion("M", "M"));
s2.add(new MultiWordSuggestion("F", "F"));
config.getEnumerateCallback().onSuccess(new Response(s2));
Comparison c = (Comparison) s.getCondition();
Parameter p = (Parameter) c.getRight();
SelectEditorWidget sew = (SelectEditorWidget) p.getEditorWidget();
assertEquals("M", sew.getValue());
}
@Test
public void testDirtyKeepsValue() throws Exception {
Session sess = getSession();
String sql0 = "SELECT x.id FROM Person x"
+ " WHERE x.id=? OR x.id=?";
List<Object> args = new ArrayList<Object>();
args.add("13");
args.add("15");
CommandBuilder cb = new CommandBuilder(sess, sql0, args);
RootPanel.get().add(cb);
Select s = cb.getSelect();
// cb.fireDirty();
ConditionAndOr andOr = (ConditionAndOr) s.getCondition();
Comparison comp = (Comparison) andOr.getLeft();
Parameter right = (Parameter) comp.getRight();
Element selectElmt = right.getElement();
String html = "<input type='text' class='gwt-TextBox' value='13'>";
assertEquals(html, selectElmt);
}
}