### Question:
TableDesc implements Serializable { public boolean hasRequiredTableInformation() { return tableName != null && !tableName.isEmpty() && columnNames != null && columnNames.length > 0 && columnDefs != null && columnNames.length > 0 && columnDefs.length == columnNames.length ; } TableDesc( String tableName ); @Deprecated  TableDesc( String tableName, String[] columnNames, String[] columnDefs, String[] primaryKeys, String tableExistsQuery );  TableDesc( String tableName, String[] columnNames, String[] columnDefs, String[] primaryKeys ); String getTableName(); String[] getColumnNames(); String[] getColumnDefs(); String[] getPrimaryKeys(); String getCreateTableStatement(); String getTableDropStatement(); boolean hasRequiredTableInformation(); void completeFromFields( Fields fields ); @Override String toString(); @Override boolean equals( Object object ); @Override int hashCode();  }### Answer:
@Test public void testHasRequiredTableInformation() { TableDesc desc = new TableDesc( "name" ); assertFalse( desc.hasRequiredTableInformation() ); desc = new TableDesc( "name", null, null, null ); assertFalse( desc.hasRequiredTableInformation() ); desc = new TableDesc( "name", new String[]{ "id" }, null, null ); assertFalse( desc.hasRequiredTableInformation() ); desc = new TableDesc( "name", new String[]{ "id" }, new String[]{ "int" }, new String[] {"foo"} ); assertTrue( desc.hasRequiredTableInformation() ); }