From bad8e7bb124f1724b68408f4765c923f6d62ffa5 Mon Sep 17 00:00:00 2001 From: Murray Cumming Date: Sun, 2 Dec 2012 22:28:01 +0100 Subject: [PATCH] DetailsPlace: Use a date-formatting API available in GWT client code. * src/main/java/org/glom/web/client/place/DetailsPlace.java: getStringForData(): Use DateTimeFormat.getFormat(), because that works on the client side (but not the server side) instead of String.format() with Date.getYear()/getMonth()/getDate(), because they work only on the server side (but not on the client side). Rather annoying. * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java: Rename to GwtTestDetailsPlace. * src/test/java/org/glom/web/client/place/ListPlaceTest.java: Rename to GwtTestListPlaceTest, so we can run these as client-side (generated Javascript) code so we can catch these problems sooner. It is unfortunate that the code cannot run on the server-side as Java, but it does not need to. --- ChangeLog | 17 ++ .../org/glom/web/client/place/DetailsPlace.java | 16 +- .../glom/web/client/place/DetailsPlaceTest.java | 196 -------------------- .../glom/web/client/place/GwtTestDetailsPlace.java | 200 +++++++++++++++++++++ .../glom/web/client/place/GwtTestListPlace.java | 63 +++++++ .../org/glom/web/client/place/ListPlaceTest.java | 59 ------ 6 files changed, 289 insertions(+), 262 deletions(-) delete mode 100644 src/test/java/org/glom/web/client/place/DetailsPlaceTest.java create mode 100644 src/test/java/org/glom/web/client/place/GwtTestDetailsPlace.java create mode 100644 src/test/java/org/glom/web/client/place/GwtTestListPlace.java delete mode 100644 src/test/java/org/glom/web/client/place/ListPlaceTest.java diff --git a/ChangeLog b/ChangeLog index 976ecaf..0bcf2c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,22 @@ 2012-12-02 Murray Cumming + DetailsPlace: Use a date-formatting API available in GWT client code. + + * src/main/java/org/glom/web/client/place/DetailsPlace.java: + getStringForData(): Use DateTimeFormat.getFormat(), because that works + on the client side (but not the server side) instead of String.format() + with Date.getYear()/getMonth()/getDate(), because they work only on the + server side (but not on the client side). Rather annoying. + * src/test/java/org/glom/web/client/place/DetailsPlaceTest.java: Rename to + GwtTestDetailsPlace. + * src/test/java/org/glom/web/client/place/ListPlaceTest.java: Rename to + GwtTestListPlaceTest, so we can run these as client-side (generated + Javascript) code so we can catch these problems sooner. + It is unfortunate that the code cannot run on the server-side as Java, + but it does not need to. + +2012-12-02 Murray Cumming + In the UI, allow primary keys to be any type, and test it. * src/main/java/org/glom/web/shared/TypedDataItem.java: diff --git a/src/main/java/org/glom/web/client/place/DetailsPlace.java b/src/main/java/org/glom/web/client/place/DetailsPlace.java index f60b913..679fde4 100644 --- a/src/main/java/org/glom/web/client/place/DetailsPlace.java +++ b/src/main/java/org/glom/web/client/place/DetailsPlace.java @@ -26,6 +26,7 @@ import org.glom.web.client.StringUtils; import org.glom.web.shared.TypedDataItem; import org.glom.web.shared.libglom.Field.GlomFieldType; +import com.google.gwt.i18n.shared.DateTimeFormat; import com.google.gwt.place.shared.PlaceTokenizer; import com.google.gwt.place.shared.Prefix; @@ -102,16 +103,17 @@ public class DetailsPlace extends HasTablePlace { if(date == null) { primaryKeyValueString = ""; } else { - //Almost any use of GWT's DateTimeFormat on the server causes an exception + //Note that almost any use of GWT's DateTimeFormat on the server causes an exception //because it is not implemented. //See http://code.google.com/p/google-web-toolkit/issues/detail?id=7671 + + final DateTimeFormat dateTimeFomat = DateTimeFormat.getFormat("yyyy-MM-dd"); + primaryKeyValueString = dateTimeFomat.format(date); + + //We could this manually, but date.getYear(), etc, are not available in client-side GWT code. // - //final DateTimeFormat dateTimeFomat = DateTimeFormat.getFormat("yyyy-MM-dd"); - //primaryKeyValueString = dateTimeFomat.format(date); - // - //Therefore, we do this manually: - primaryKeyValueString = String.format("%04d-%02d-%02d", - date.getYear() + 1900, date.getMonth() + 1, date.getDate()); + //primaryKeyValueString = String.format("%04d-%02d-%02d", + // date.getYear() + 1900, date.getMonth() + 1, date.getDate()); } break; diff --git a/src/test/java/org/glom/web/client/place/DetailsPlaceTest.java b/src/test/java/org/glom/web/client/place/DetailsPlaceTest.java deleted file mode 100644 index d391621..0000000 --- a/src/test/java/org/glom/web/client/place/DetailsPlaceTest.java +++ /dev/null @@ -1,196 +0,0 @@ -package org.glom.web.client.place; - -import static org.junit.Assert.*; - -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; - -import org.glom.web.server.Utils; -import org.glom.web.shared.TypedDataItem; -import org.glom.web.shared.libglom.Field.GlomFieldType; -import org.junit.Test; - -public class DetailsPlaceTest { - - public DetailsPlaceTest() { - } - - @Test - public void testGetPlaceNoParameters() { - checkTokenWithoutParameters(""); - checkTokenWithoutParameters("something"); - checkTokenWithoutParameters("list:a=1"); - checkTokenWithoutParameters("value1=123"); - } - - @Test - public void testGetPlaceParametersTextPrimaryKey() { - // Create a DetailsPlace, testing getPlace(): - final String documentId = "somedocument"; - final String tableName = "sometable"; - final String primaryKeyValue = "123"; - DetailsPlace place = getDetailsPlaceFromToken("document=" + documentId + "&table=" + tableName + "&value=" - + primaryKeyValue); - checkParameters(place, documentId, tableName, primaryKeyValue); - - // Recreate it, testing getToken(), - // checking that the same parameters are read back: - final DetailsPlace.Tokenizer tokenizer = new DetailsPlace.Tokenizer(); - final String token = tokenizer.getToken(place); - place = getDetailsPlaceFromToken(token); - checkParameters(place, documentId, tableName, primaryKeyValue); - } - - @Test - public void testGetPlaceParametersNumericPrimaryKey() { - // Create a DetailsPlace, testing getPlace(): - final String documentId = "somedocument"; - final String tableName = "sometable"; - final double primaryKeyValue = 123; - final String primaryKeyValueText = "123"; - DetailsPlace place = getDetailsPlaceFromToken("document=" + documentId + "&table=" + tableName + "&value=" - + primaryKeyValueText); - checkParameters(place, documentId, tableName, primaryKeyValue); - - // Recreate it, testing getToken(), - // checking that the same parameters are read back: - final DetailsPlace.Tokenizer tokenizer = new DetailsPlace.Tokenizer(); - final String token = tokenizer.getToken(place); - place = getDetailsPlaceFromToken(token); - checkParameters(place, documentId, tableName, primaryKeyValue); - } - - @Test - public void testGetPlaceParametersBooleanPrimaryKey() { - // Create a DetailsPlace, testing getPlace(): - final String documentId = "somedocument"; - final String tableName = "sometable"; - final boolean primaryKeyValue = false; - final String primaryKeyValueText = "false"; - DetailsPlace place = getDetailsPlaceFromToken("document=" + documentId + "&table=" + tableName + "&value=" - + primaryKeyValueText); - checkParameters(place, documentId, tableName, primaryKeyValue); - - // Recreate it, testing getToken(), - // checking that the same parameters are read back: - final DetailsPlace.Tokenizer tokenizer = new DetailsPlace.Tokenizer(); - final String token = tokenizer.getToken(place); - place = getDetailsPlaceFromToken(token); - checkParameters(place, documentId, tableName, primaryKeyValue); - } - - @Test - public void testGetPlaceParametersDatePrimaryKey() { - // Create a DetailsPlace, testing getPlace(): - final String documentId = "somedocument"; - final String tableName = "sometable"; - - //TODO: Is there no easier (and non-deprecated) way to create - //a Date intance? - Calendar cal = new GregorianCalendar(); - cal.setTime(new Date()); - cal.set(Calendar.HOUR_OF_DAY, 0); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - cal.set(Calendar.YEAR, 1973); - cal.set(Calendar.MONTH, 4); /* The month is 0 indexed. */ - cal.set(Calendar.DAY_OF_MONTH, 11); - final Date primaryKeyValue = cal.getTime(); - //final Date primaryKeyValue = new Date(1973, 4, 11); /* The month is 0-indexed. */ - - final String primaryKeyValueText = "1973-05-11"; - DetailsPlace place = getDetailsPlaceFromToken("document=" + documentId + "&table=" + tableName + "&value=" - + primaryKeyValueText); - checkParameters(place, documentId, tableName, primaryKeyValue); - - // Recreate it, testing getToken(), - // checking that the same parameters are read back: - final DetailsPlace.Tokenizer tokenizer = new DetailsPlace.Tokenizer(); - final String token = tokenizer.getToken(place); - place = getDetailsPlaceFromToken(token); - checkParameters(place, documentId, tableName, primaryKeyValue); - } - - /** - * @param place - * @param documentId - * @param tableName - * @param primaryKeyValue - */ - private void checkParameters(final DetailsPlace place, final String documentID, final String tableName, double primaryKeyValue) { - checkParametersBasic(place, documentID, tableName); - - //Check the value as a number: - final TypedDataItem dataItem = place.getPrimaryKeyValue(); - Utils.transformUnknownToActualType(dataItem, GlomFieldType.TYPE_NUMERIC); - assertEquals(primaryKeyValue, dataItem.getNumber(), 0.1); - } - - private void checkParameters(final DetailsPlace place, final String documentID, final String tableName, - final String primaryKeyValue) { - checkParametersBasic(place, documentID, tableName); - - //Check the value as a string: - final TypedDataItem dataItem = place.getPrimaryKeyValue(); - Utils.transformUnknownToActualType(dataItem, GlomFieldType.TYPE_TEXT); - assertEquals(primaryKeyValue, dataItem.getText()); - } - - private void checkParameters(final DetailsPlace place, final String documentID, final String tableName, - final Date primaryKeyValue) { - checkParametersBasic(place, documentID, tableName); - - //Check the value as a string: - final TypedDataItem dataItem = place.getPrimaryKeyValue(); - Utils.transformUnknownToActualType(dataItem, GlomFieldType.TYPE_DATE); - assertEquals(primaryKeyValue, dataItem.getDate()); - } - - private void checkParameters(final DetailsPlace place, final String documentID, final String tableName, - final boolean primaryKeyValue) { - checkParametersBasic(place, documentID, tableName); - - //Check the value as a string: - final TypedDataItem dataItem = place.getPrimaryKeyValue(); - Utils.transformUnknownToActualType(dataItem, GlomFieldType.TYPE_BOOLEAN); - assertEquals(primaryKeyValue, dataItem.getBoolean()); - } - - /** - * @param place - * @param documentID - * @param tableName - */ - private void checkParametersBasic(final DetailsPlace place, final String documentID, final String tableName) { - assertNotNull(place); - - assertEquals(documentID, place.getDocumentID()); - assertEquals(tableName, place.getTableName()); - } - - private DetailsPlace getDetailsPlaceFromToken(final String token) { - final DetailsPlace.Tokenizer tokenizer = new DetailsPlace.Tokenizer(); - final DetailsPlace place = tokenizer.getPlace(token); - assertNotNull(place); - return place; - } - - private void checkTokenWithoutParameters(final String token) { - final DetailsPlace place = getDetailsPlaceFromToken(token); - - assertNotNull(place.getDocumentID()); - assertTrue(place.getDocumentID().isEmpty()); - - assertNotNull(place.getTableName()); - assertTrue(place.getTableName().isEmpty()); - - assertNotNull(place.getPrimaryKeyValue()); - assertTrue(place.getPrimaryKeyValue().isEmpty()); - assertEquals(null, place.getPrimaryKeyValue().getUnknown()); - assertEquals(0.0, place.getPrimaryKeyValue().getNumber(), 0.0); //TODO: Handle other types. - assertEquals(null, place.getPrimaryKeyValue().getText()); - } - -} diff --git a/src/test/java/org/glom/web/client/place/GwtTestDetailsPlace.java b/src/test/java/org/glom/web/client/place/GwtTestDetailsPlace.java new file mode 100644 index 0000000..75280b3 --- /dev/null +++ b/src/test/java/org/glom/web/client/place/GwtTestDetailsPlace.java @@ -0,0 +1,200 @@ +package org.glom.web.client.place; + +import static org.junit.Assert.*; + +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; + +import org.glom.web.server.Utils; +import org.glom.web.shared.TypedDataItem; +import org.glom.web.shared.libglom.Field.GlomFieldType; +import org.junit.Test; + +import com.googlecode.gwt.test.GwtModule; +import com.googlecode.gwt.test.GwtTest; + +@GwtModule("org.glom.web.OnlineGlom") +public class GwtTestDetailsPlace extends GwtTest { + + public GwtTestDetailsPlace() { + } + + @Test + public void testGetPlaceNoParameters() { + checkTokenWithoutParameters(""); + checkTokenWithoutParameters("something"); + checkTokenWithoutParameters("list:a=1"); + checkTokenWithoutParameters("value1=123"); + } + + @Test + public void testGetPlaceParametersTextPrimaryKey() { + // Create a DetailsPlace, testing getPlace(): + final String documentId = "somedocument"; + final String tableName = "sometable"; + final String primaryKeyValue = "123"; + DetailsPlace place = getDetailsPlaceFromToken("document=" + documentId + "&table=" + tableName + "&value=" + + primaryKeyValue); + checkParameters(place, documentId, tableName, primaryKeyValue); + + // Recreate it, testing getToken(), + // checking that the same parameters are read back: + final DetailsPlace.Tokenizer tokenizer = new DetailsPlace.Tokenizer(); + final String token = tokenizer.getToken(place); + place = getDetailsPlaceFromToken(token); + checkParameters(place, documentId, tableName, primaryKeyValue); + } + + @Test + public void testGetPlaceParametersNumericPrimaryKey() { + // Create a DetailsPlace, testing getPlace(): + final String documentId = "somedocument"; + final String tableName = "sometable"; + final double primaryKeyValue = 123; + final String primaryKeyValueText = "123"; + DetailsPlace place = getDetailsPlaceFromToken("document=" + documentId + "&table=" + tableName + "&value=" + + primaryKeyValueText); + checkParameters(place, documentId, tableName, primaryKeyValue); + + // Recreate it, testing getToken(), + // checking that the same parameters are read back: + final DetailsPlace.Tokenizer tokenizer = new DetailsPlace.Tokenizer(); + final String token = tokenizer.getToken(place); + place = getDetailsPlaceFromToken(token); + checkParameters(place, documentId, tableName, primaryKeyValue); + } + + @Test + public void testGetPlaceParametersBooleanPrimaryKey() { + // Create a DetailsPlace, testing getPlace(): + final String documentId = "somedocument"; + final String tableName = "sometable"; + final boolean primaryKeyValue = false; + final String primaryKeyValueText = "false"; + DetailsPlace place = getDetailsPlaceFromToken("document=" + documentId + "&table=" + tableName + "&value=" + + primaryKeyValueText); + checkParameters(place, documentId, tableName, primaryKeyValue); + + // Recreate it, testing getToken(), + // checking that the same parameters are read back: + final DetailsPlace.Tokenizer tokenizer = new DetailsPlace.Tokenizer(); + final String token = tokenizer.getToken(place); + place = getDetailsPlaceFromToken(token); + checkParameters(place, documentId, tableName, primaryKeyValue); + } + + @Test + public void testGetPlaceParametersDatePrimaryKey() { + // Create a DetailsPlace, testing getPlace(): + final String documentId = "somedocument"; + final String tableName = "sometable"; + + //TODO: Is there no easier (and non-deprecated) way to create + //a Date intance? + Calendar cal = new GregorianCalendar(); + cal.setTime(new Date()); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + cal.set(Calendar.YEAR, 1973); + cal.set(Calendar.MONTH, 4); /* The month is 0 indexed. */ + cal.set(Calendar.DAY_OF_MONTH, 11); + final Date primaryKeyValue = cal.getTime(); + //final Date primaryKeyValue = new Date(1973, 4, 11); /* The month is 0-indexed. */ + + final String primaryKeyValueText = "1973-05-11"; + DetailsPlace place = getDetailsPlaceFromToken("document=" + documentId + "&table=" + tableName + "&value=" + + primaryKeyValueText); + checkParameters(place, documentId, tableName, primaryKeyValue); + + // Recreate it, testing getToken(), + // checking that the same parameters are read back: + final DetailsPlace.Tokenizer tokenizer = new DetailsPlace.Tokenizer(); + final String token = tokenizer.getToken(place); + place = getDetailsPlaceFromToken(token); + checkParameters(place, documentId, tableName, primaryKeyValue); + } + + /** + * @param place + * @param documentId + * @param tableName + * @param primaryKeyValue + */ + private void checkParameters(final DetailsPlace place, final String documentID, final String tableName, double primaryKeyValue) { + checkParametersBasic(place, documentID, tableName); + + //Check the value as a number: + final TypedDataItem dataItem = place.getPrimaryKeyValue(); + Utils.transformUnknownToActualType(dataItem, GlomFieldType.TYPE_NUMERIC); + assertEquals(primaryKeyValue, dataItem.getNumber(), 0.1); + } + + private void checkParameters(final DetailsPlace place, final String documentID, final String tableName, + final String primaryKeyValue) { + checkParametersBasic(place, documentID, tableName); + + //Check the value as a string: + final TypedDataItem dataItem = place.getPrimaryKeyValue(); + Utils.transformUnknownToActualType(dataItem, GlomFieldType.TYPE_TEXT); + assertEquals(primaryKeyValue, dataItem.getText()); + } + + private void checkParameters(final DetailsPlace place, final String documentID, final String tableName, + final Date primaryKeyValue) { + checkParametersBasic(place, documentID, tableName); + + //Check the value as a string: + final TypedDataItem dataItem = place.getPrimaryKeyValue(); + Utils.transformUnknownToActualType(dataItem, GlomFieldType.TYPE_DATE); + assertEquals(primaryKeyValue, dataItem.getDate()); + } + + private void checkParameters(final DetailsPlace place, final String documentID, final String tableName, + final boolean primaryKeyValue) { + checkParametersBasic(place, documentID, tableName); + + //Check the value as a string: + final TypedDataItem dataItem = place.getPrimaryKeyValue(); + Utils.transformUnknownToActualType(dataItem, GlomFieldType.TYPE_BOOLEAN); + assertEquals(primaryKeyValue, dataItem.getBoolean()); + } + + /** + * @param place + * @param documentID + * @param tableName + */ + private void checkParametersBasic(final DetailsPlace place, final String documentID, final String tableName) { + assertNotNull(place); + + assertEquals(documentID, place.getDocumentID()); + assertEquals(tableName, place.getTableName()); + } + + private DetailsPlace getDetailsPlaceFromToken(final String token) { + final DetailsPlace.Tokenizer tokenizer = new DetailsPlace.Tokenizer(); + final DetailsPlace place = tokenizer.getPlace(token); + assertNotNull(place); + return place; + } + + private void checkTokenWithoutParameters(final String token) { + final DetailsPlace place = getDetailsPlaceFromToken(token); + + assertNotNull(place.getDocumentID()); + assertTrue(place.getDocumentID().isEmpty()); + + assertNotNull(place.getTableName()); + assertTrue(place.getTableName().isEmpty()); + + assertNotNull(place.getPrimaryKeyValue()); + assertTrue(place.getPrimaryKeyValue().isEmpty()); + assertEquals(null, place.getPrimaryKeyValue().getUnknown()); + assertEquals(0.0, place.getPrimaryKeyValue().getNumber(), 0.0); //TODO: Handle other types. + assertEquals(null, place.getPrimaryKeyValue().getText()); + } + +} diff --git a/src/test/java/org/glom/web/client/place/GwtTestListPlace.java b/src/test/java/org/glom/web/client/place/GwtTestListPlace.java new file mode 100644 index 0000000..29a6bb5 --- /dev/null +++ b/src/test/java/org/glom/web/client/place/GwtTestListPlace.java @@ -0,0 +1,63 @@ +package org.glom.web.client.place; + +import static org.junit.Assert.*; +import org.junit.Test; + +import com.googlecode.gwt.test.GwtModule; +import com.googlecode.gwt.test.GwtTest; + +@GwtModule("org.glom.web.OnlineGlom") +public class GwtTestListPlace extends GwtTest { + + public GwtTestListPlace() { + } + + @Test + public void testGetPlaceNoParameters() { + checkTokenWithoutParameters(""); + checkTokenWithoutParameters("something"); + checkTokenWithoutParameters("list:a=1"); + checkTokenWithoutParameters("value1=123"); + } + + @Test + public void testGetPlaceParameters() { + // Create a ListPlace, testing getPlace(): + final String documentId = "somedocument"; + final String tableName = "sometable"; + ListPlace place = getListPlaceFromToken("document=" + documentId + "&table=" + tableName); + checkParameters(place, documentId, tableName); + + // Recreate it, testing getToken(), + // checking that the same parameters are read back: + final ListPlace.Tokenizer tokenizer = new ListPlace.Tokenizer(); + final String token = tokenizer.getToken(place); + place = getListPlaceFromToken(token); + checkParameters(place, documentId, tableName); + } + + private void checkParameters(final ListPlace place, final String documentID, final String tableName) { + assertTrue(place != null); + + assertEquals(documentID, place.getDocumentID()); + assertEquals(tableName, place.getTableName()); + } + + private ListPlace getListPlaceFromToken(final String token) { + final ListPlace.Tokenizer tokenizer = new ListPlace.Tokenizer(); + final ListPlace place = tokenizer.getPlace(token); + assertTrue(place != null); + return place; + } + + private void checkTokenWithoutParameters(final String token) { + final ListPlace place = getListPlaceFromToken(token); + + assertTrue(place.getDocumentID() != null); + assertTrue(place.getDocumentID().isEmpty()); + + assertTrue(place.getTableName() != null); + assertTrue(place.getTableName().isEmpty()); + } + +} diff --git a/src/test/java/org/glom/web/client/place/ListPlaceTest.java b/src/test/java/org/glom/web/client/place/ListPlaceTest.java deleted file mode 100644 index b7fec58..0000000 --- a/src/test/java/org/glom/web/client/place/ListPlaceTest.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.glom.web.client.place; - -import static org.junit.Assert.*; -import org.junit.Test; - -public class ListPlaceTest { - - public ListPlaceTest() { - } - - @Test - public void testGetPlaceNoParameters() { - checkTokenWithoutParameters(""); - checkTokenWithoutParameters("something"); - checkTokenWithoutParameters("list:a=1"); - checkTokenWithoutParameters("value1=123"); - } - - @Test - public void testGetPlaceParameters() { - // Create a ListPlace, testing getPlace(): - final String documentId = "somedocument"; - final String tableName = "sometable"; - ListPlace place = getListPlaceFromToken("document=" + documentId + "&table=" + tableName); - checkParameters(place, documentId, tableName); - - // Recreate it, testing getToken(), - // checking that the same parameters are read back: - final ListPlace.Tokenizer tokenizer = new ListPlace.Tokenizer(); - final String token = tokenizer.getToken(place); - place = getListPlaceFromToken(token); - checkParameters(place, documentId, tableName); - } - - private void checkParameters(final ListPlace place, final String documentID, final String tableName) { - assertTrue(place != null); - - assertEquals(documentID, place.getDocumentID()); - assertEquals(tableName, place.getTableName()); - } - - private ListPlace getListPlaceFromToken(final String token) { - final ListPlace.Tokenizer tokenizer = new ListPlace.Tokenizer(); - final ListPlace place = tokenizer.getPlace(token); - assertTrue(place != null); - return place; - } - - private void checkTokenWithoutParameters(final String token) { - final ListPlace place = getListPlaceFromToken(token); - - assertTrue(place.getDocumentID() != null); - assertTrue(place.getDocumentID().isEmpty()); - - assertTrue(place.getTableName() != null); - assertTrue(place.getTableName().isEmpty()); - } - -} -- 2.1.4