From: <me...@us...> - 2002-10-01 02:51:47
|
Update of /cvsroot/cayenne/cayenne/src/tests/java/org/objectstyle/cayenne/access/trans In directory usw-pr-cvs1:/tmp/cvs-serv26594/src/tests/java/org/objectstyle/cayenne/access/trans Modified Files: SelectTranslatorTst.java Log Message: added test case checking that translator would not generate unneeded aliases Index: SelectTranslatorTst.java =================================================================== RCS file: /cvsroot/cayenne/cayenne/src/tests/java/org/objectstyle/cayenne/access/trans/SelectTranslatorTst.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SelectTranslatorTst.java 1 Oct 2002 02:47:15 -0000 1.2 --- SelectTranslatorTst.java 1 Oct 2002 02:51:44 -0000 1.3 *************** *** 269,272 **** --- 269,316 ---- } + /** + * Test aliases when the same table used in more then 1 relationship. + * Check translation of relationship path "ArtistExhibit.toArtist.artistName" + * and "ArtistExhibit.toArtist.paintingArray.paintingTitle". + */ + public void testCreateSqlString6() throws Exception { + Connection con = getSharedConnection(); + + try { + // query with qualifier and ordering + q.setObjEntityName("ArtistExhibit"); + q.setQualifier( + ExpressionFactory.binaryPathExp( + Expression.LIKE, + "toArtist.artistName", + "a%")); + q.andQualifier( + ExpressionFactory.binaryPathExp( + Expression.LIKE, + "toArtist.paintingArray.paintingTitle", + "p%")); + + SelectTranslator transl = buildTranslator(con); + String generatedSql = transl.createSqlString(); + // logObj.warn("Query: " + generatedSql); + + // do some simple assertions to make sure all parts are in + assertNotNull(generatedSql); + assertTrue(generatedSql.startsWith("SELECT ")); + assertTrue(generatedSql.indexOf(" FROM ") > 0); + assertTrue(generatedSql.indexOf(" WHERE ") > generatedSql.indexOf(" FROM ")); + + // check that there is only one distinct alias for the ARTIST table + int ind1 = generatedSql.indexOf("ARTIST t", generatedSql.indexOf(" FROM ")); + assertTrue(ind1 > 0); + + int ind2 = generatedSql.indexOf("ARTIST t", ind1 + 1); + assertTrue(ind2 < 0); + } finally { + con.close(); + } + } + + public void testBuildColumnList1() throws Exception { Connection con = getSharedConnection(); |