blob: 06cedc162217a01ed4421f61ffc972f5fca13851 [file] [log] [blame]
package org.eclipse.basyx.regression.sqlproxy;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import org.eclipse.basyx.tools.sqlproxy.SQLRootElement;
import org.junit.Test;
/**
* Test SQL collection element implementation, and type support
*
* @author kuhn
*
*/
public class SQLProxyTestCollectionTypes {
/**
* Store SQL root element reference
* - An SQL root element is the main gateway to a SQL database
*/
protected SQLRootElement sqlRootElement = null;
/**
* Test basic operations
*/
@Test
public void test() throws Exception {
// Create SQL root element
sqlRootElement = new SQLRootElement(SQLConfig.SQLUSER, SQLConfig.SQLPW, "//localhost/basyx-map?", "org.postgresql.Driver", "jdbc:postgresql:", "root_el_01");
// Drop tables to make sure we start with a fresh database
sqlRootElement.dropTable(1);
sqlRootElement.drop();
// Create new table in database for root element
sqlRootElement.createRootTableIfNotExists();
// Create collection
Collection<Object> sqlColl = sqlRootElement.createCollection(1);
// Test simple collection functions
assertTrue(sqlColl.size() == 0);
// Test simple types
// - Add simple types
sqlColl.add(null);
sqlColl.add(14);
sqlColl.add(-14);
sqlColl.add(14.2f);
sqlColl.add(-14.4f);
sqlColl.add(13.2);
sqlColl.add(-13.4);
sqlColl.add(true);
sqlColl.add(false);
sqlColl.add("");
sqlColl.add("abc");
sqlColl.add('a');
sqlColl.add('b');
// - Check size
assertTrue(sqlColl.size() == 13);
// - Add array types
sqlColl.add(new int[] {1, 2, 3});
sqlColl.add(new float[] {1.2f, 2.2f, 3.4f});
sqlColl.add(new double[] {3.2, -2.7});
sqlColl.add(new boolean[] {true, true, false});
sqlColl.add(new String[] {"x", "y", "z"});
sqlColl.add(new char[] {'x', 'y', 'z'});
// - Check size
assertTrue(sqlColl.size() == 19);
// Iterate elements
Iterator<Object> it = sqlColl.iterator();
assertTrue(it.hasNext() == true); assertTrue(it.next() == null);
assertTrue(it.hasNext() == true); assertTrue((int) it.next() == 14);
assertTrue(it.hasNext() == true); assertTrue((int) it.next() == -14);
assertTrue(it.hasNext() == true); assertTrue((float) it.next() == 14.2f);
assertTrue(it.hasNext() == true); assertTrue((float) it.next() == -14.4f);
assertTrue(it.hasNext() == true); assertTrue((double) it.next() == 13.2);
assertTrue(it.hasNext() == true); assertTrue((double) it.next() == -13.4);
assertTrue(it.hasNext() == true); assertTrue((boolean) it.next() == true);
assertTrue(it.hasNext() == true); assertTrue((boolean) it.next() == false);
assertTrue(it.hasNext() == true); assertTrue(it.next().equals(""));
assertTrue(it.hasNext() == true); assertTrue(it.next().equals("abc"));
assertTrue(it.hasNext() == true); assertTrue((char) it.next() == 'a');
assertTrue(it.hasNext() == true); assertTrue((char) it.next() == 'b');
assertTrue(it.hasNext() == true); assertTrue(Arrays.equals((int[]) it.next(), new int[] {1, 2, 3}));
assertTrue(it.hasNext() == true); assertTrue(Arrays.equals((float[]) it.next(), new float[] {1.2f, 2.2f, 3.4f}));
assertTrue(it.hasNext() == true); assertTrue(Arrays.equals((double[]) it.next(), new double[] {3.2, -2.7}));
assertTrue(it.hasNext() == true); assertTrue(Arrays.equals((boolean[]) it.next(), new boolean[] {true, true, false}));
assertTrue(it.hasNext() == true); assertTrue(Arrays.equals((String[]) it.next(), new String[] {"x", "y", "z"}));
assertTrue(it.hasNext() == true); assertTrue(Arrays.equals((char[]) it.next(), new char[] {'x', 'y', 'z'}));
assertTrue(it.hasNext() == false);
// Drop tables
sqlRootElement.dropTable(1);
// Drop table for root element (= delete it)
sqlRootElement.drop();
}
}