/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package de.cismet.cids.server.ws.rest; import Sirius.server.ServerExit; import Sirius.server.ServerExitError; import Sirius.server.localserver.user.UserStoreTest; import Sirius.server.middleware.impls.domainserver.DomainServerImpl; import Sirius.server.middleware.impls.proxy.StartProxy; import Sirius.server.middleware.types.LightweightMetaObject; import Sirius.server.middleware.types.Link; import Sirius.server.middleware.types.MetaClass; import Sirius.server.middleware.types.MetaObject; import Sirius.server.middleware.types.Node; import Sirius.server.newuser.User; import Sirius.server.newuser.UserGroup; import Sirius.server.property.ServerProperties; import Sirius.server.registry.Registry; import Sirius.server.search.Query; import Sirius.server.search.SearchOption; import Sirius.server.search.SearchResult; import Sirius.server.search.store.Info; import Sirius.server.search.store.QueryData; import Sirius.server.sql.DBConnection; import Sirius.server.sql.DBConnectionPool; import Sirius.server.sql.SystemStatement; import Sirius.util.image.Image; import org.apache.commons.io.FileUtils; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.ResultSet; import java.util.HashMap; import java.util.Properties; import java.util.Vector; import de.cismet.remotetesthelper.RemoteTestHelperService; import de.cismet.remotetesthelper.ws.rest.RemoteTestHelperClient; import de.cismet.tools.ScriptRunner; import static org.junit.Assert.*; /** * DOCUMENT ME! * * @author mscholl * @version $Revision$, $Date$ */ public class RESTfulSerialInterfaceConnectorTest { //~ Static fields/initializers --------------------------------------------- private static final String ROOT_RESOURCE = "http://localhost:9987/callserver/binary/"; // NOI18N private static final String SERVER_CONFIG = "src/test/resources/de/cismet/cids/server/ws/rest/runtime.properties"; // NOI18N private static final String STARTMODE = "notsimple"; // NOI18N private static final String TEST_DB_NAME = "restful_serial_interface_connector_test_db"; private static final RemoteTestHelperService service = new RemoteTestHelperClient(); private static RESTfulSerialInterfaceConnector connector; private static Registry registry; private static StartProxy proxy; private static DomainServerImpl server; //~ Instance fields -------------------------------------------------------- private User admin; //~ Constructors ----------------------------------------------------------- /** * Creates a new PersistenceManagerTest object. */ public RESTfulSerialInterfaceConnectorTest() { } //~ Methods ---------------------------------------------------------------- /** * DOCUMENT ME! * * @throws Throwable DOCUMENT ME! * @throws IllegalStateException DOCUMENT ME! */ @BeforeClass public static void setUpClass() throws Throwable { final Properties p = new Properties(); p.put("log4j.appender.Remote", "org.apache.log4j.net.SocketAppender"); p.put("log4j.appender.Remote.remoteHost", "localhost"); p.put("log4j.appender.Remote.port", "4445"); p.put("log4j.appender.Remote.locationInfo", "true"); p.put("log4j.rootLogger", "ALL,Remote"); org.apache.log4j.PropertyConfigurator.configure(p); if (!Boolean.valueOf(service.initCidsSystem(TEST_DB_NAME))) { throw new IllegalStateException("cannot initialise test db"); } final ServerProperties props = new ServerProperties(UserStoreTest.class.getResourceAsStream( "/de/cismet/cids/server/ws/rest/runtime.properties")); // NOI18N final DBConnectionPool pool = new DBConnectionPool(props); final ScriptRunner runner = new ScriptRunner(pool.getDBConnection().getConnection(), true, false); final InputStream scriptStream = RESTfulSerialInterfaceConnectorTest.class.getResourceAsStream( "/Sirius/server/localserver/user/configAttrTestData.sql"); // NOI18N final InputStream historyServerTestData = RESTfulSerialInterfaceConnectorTest.class.getResourceAsStream( "/Sirius/server/localserver/history/HistoryServerTest.sql"); // NOI18N final InputStream testData = RESTfulSerialInterfaceConnectorTest.class.getResourceAsStream( "/de/cismet/cids/server/ws/rest/testdata.sql"); // NOI18N final BufferedReader scriptReader = new BufferedReader(new InputStreamReader(scriptStream)); final BufferedReader historyReader = new BufferedReader(new InputStreamReader(historyServerTestData)); final BufferedReader testDataReader = new BufferedReader(new InputStreamReader(testData)); try { runner.runScript(scriptReader); runner.runScript(historyReader); runner.runScript(testDataReader); } finally { scriptReader.close(); historyReader.close(); testDataReader.close(); } pool.shutdown(); registry = new Sirius.server.registry.Registry(1099); proxy = StartProxy.getInstance(SERVER_CONFIG); final PropertiesWrapper pw = new PropertiesWrapper(SERVER_CONFIG); pw.setStartMode(STARTMODE); RESTfulService.up(pw); server = new DomainServerImpl(pw); connector = new RESTfulSerialInterfaceConnector(ROOT_RESOURCE); } /** * DOCUMENT ME! * * @throws Throwable DOCUMENT ME! * @throws IllegalStateException DOCUMENT ME! */ @AfterClass public static void tearDownClass() throws Throwable { RESTfulService.down(); try { server.shutdown(); } catch (final ServerExit e) { // success } catch (final ServerExitError e) { System.err.println("exit error"); } try { proxy.shutdown(); } catch (final ServerExit e) { // success } catch (final ServerExitError e) { System.err.println("exit error"); } try { registry.shutdown(); } catch (final ServerExit serverExit) { // success } catch (final ServerExitError e) { System.err.println("exit error"); } if (!Boolean.valueOf(service.dropDatabase(TEST_DB_NAME))) { throw new IllegalStateException("could not drop test db"); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Before public void setUp() throws Exception { } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @After public void tearDown() throws Exception { final File queryStore = new File("querystore"); if (queryStore.exists()) { FileUtils.deleteDirectory(queryStore); } } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ private String getCurrentMethodName() { return new Throwable().getStackTrace()[1].getMethodName(); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetUser() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); assertNotNull(user); System.out.println("user: " + user); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testChangePassword() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); assertNotNull(user); boolean changed = connector.changePassword(user, "cismet", "sbs"); assertTrue(changed); user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "sbs"); assertNotNull(user); changed = connector.changePassword(user, "sbs", "cismet"); assertTrue(changed); user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); assertNotNull(user); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetDomains() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final String[] domains = connector.getDomains(); assertNotNull(domains); for (final String domain : domains) { System.out.println("domain: " + domain); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetUserGroupNames() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final Vector ugNames = connector.getUserGroupNames(); assertNotNull(ugNames); for (final Object o : ugNames) { final String[] ug = (String[])o; System.out.println("ug: " + ug[0] + "@" + ug[1]); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetUserGroupNames_String_String() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final Vector ugNames = connector.getUserGroupNames("admin", "LOCAL"); assertNotNull(ugNames); for (final Object o : ugNames) { final String[] ug = (String[])o; System.out.println("ug: " + ug[0] + "@" + ug[1]); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetDefaultIcons() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final Image[] icons = connector.getDefaultIcons(); assertNotNull(icons); for (final Image icon : icons) { System.out.println("icon: " + icon); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetDefaultIcons_String() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final Image[] icons = connector.getDefaultIcons("LOCAL"); assertNotNull(icons); for (final Image icon : icons) { System.out.println("icon: " + icon); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testSearch() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final SearchResult result = connector.search(user, new String[] { "1", "2", "3" }, new SearchOption[0]); assertNotNull(result); System.out.println("searchresult: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetSearchOptions() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final HashMap result1 = connector.getSearchOptions(user, "LOCAL"); assertNotNull(result1); System.out.println("getsearchoptions: " + result1); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetSearchOptionsByUser() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final HashMap result2 = connector.getSearchOptions(user); assertNotNull(result2); System.out.println("getsearchoptions: " + result2); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testAddQueryParameterAllParam() throws Exception { final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); System.out.println("\nTEST : " + getCurrentMethodName()); final int queryId = 1; final int typeId = 1; final char isQueryResult = 'f'; final int queryPosition = 1; final String paramKey = "testparam"; final String description = "A test parameter"; final boolean result = connector.addQueryParameter( user, queryId, typeId, paramKey, description, isQueryResult, queryPosition); assertNotNull(result); System.out.println("addQueryParameter: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testAddQueryParameter() throws Exception { System.out.println("\nTEST : " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final int queryId = 1; final String paramKey = "testparam2"; final String description = "a second test parameter"; final boolean result2 = connector.addQueryParameter(user, queryId, paramKey, description); assertNotNull(result2); System.out.println("addQueryParameter: " + result2); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testAddQuery() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String name = "testquery"; final String description = "a simple statement"; final String statement = "Select * from cs_query"; final int result = connector.addQuery(user, name, description, statement); assertNotNull(result); System.out.println("addQuery: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testAddQueryAllParam() throws Exception { System.out.println("\nTEST : " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String name = "testquery2"; final String description = "a simple statement"; final String statement = "Select * from cs_query"; final int resultType = 2; final char isUpdate = 't'; final char isUnion = 't'; final char isBatch = 't'; final char isRoot = 't'; final int result = connector.addQuery( user, name, description, statement, resultType, isUpdate, isBatch, isRoot, isUnion); assertNotNull(result); System.out.println("addQuery: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testDelete() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final int id = 24; final String domain = "LOCAL"; final boolean result = connector.delete(id, domain); assertFalse(result); System.out.println("delete: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetQuery() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final int id = 17; final String domain = "LOCAL"; final QueryData result = connector.getQuery(id, domain); assertNotNull(result); System.out.println("getQuery: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testStoreQuery() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final QueryData data = new QueryData("LOCAL", "testQueryStore", STARTMODE, new byte[0]); final boolean result = connector.storeQuery(user, data); assertNotNull(result); System.out.println("storeQuery: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetLightweightMetaObjectsByQuery() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); // just random values ... have to be checked wether they are senseful final int classId = 1; final String query = "Select * from cs_usr"; final String[] representationFields = new String[0]; final LightweightMetaObject[] result = connector.getLightweightMetaObjectsByQuery( classId, user, query, representationFields); assertNotNull(result); System.out.println("testGetLightweightMetaObjectsByQuery: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetLightweightMetaObjectsByQueryWithRepPattern() throws Exception { System.out.println("\nTEST : " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); // just random values ... have to be checked whether they are senseful final int classId = 1; final String query = "Select * from cs_usr"; final String[] representationFields = new String[0]; final String representationPattern = ""; final LightweightMetaObject[] result = connector.getLightweightMetaObjectsByQuery( classId, user, query, representationFields, representationPattern); assertNotNull(result); System.out.println("testGetLightweightMetaObjectsByQuery: " + result); } /** * Check what this method actually does ... b4 testing * * @throws Exception DOCUMENT ME! */ @Test public void testGetAllLightweightMetaObjectsForClass() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); // just random values ... have to be checked wether they are senseful final int classId = 1; final String[] representationFields = new String[0]; final LightweightMetaObject[] result = connector.getAllLightweightMetaObjectsForClass( classId, user, representationFields); assertNotNull(result); System.out.println("getAllLightweightMetaObjectsForClass: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetAllLightweightMetaObjectsForClassRepPattern() throws Exception { System.out.println("\nTEST : " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); // just random values ... have to be checked wether they are senseful final int classId = 1; final String[] representationFields = new String[0]; final String representationPattern = ""; final LightweightMetaObject[] result = connector.getAllLightweightMetaObjectsForClass( classId, user, representationFields, representationPattern); assertNotNull(result); System.out.println("getAllLightweightMetaObjectsForClass: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetClassTreeNodes_User() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final Node[] result = connector.getClassTreeNodes(user); assertNotNull(result); System.out.println("getClassTreeNodes: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetClassTreeNodes_User_String() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final Node[] result = connector.getClassTreeNodes(user, domain); assertNotNull(result); System.out.println("getClassTreeNodes: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetClass() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final Connection con = server.getConnectionPool().getConnection(); final ResultSet set = con.createStatement().executeQuery("select id from cs_class where name like 'test1'"); set.next(); final int classId = set.getInt(1); DBConnection.closeResultSets(set); final String domain = "LOCAL"; final MetaClass result = connector.getClass(user, classId, domain); assertNotNull(result); System.out.println("getClass: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetClassByTableName() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final String tableName = "test1"; final MetaClass result = connector.getClassByTableName(user, tableName, domain); assertNotNull(result); System.out.println("getClassTreeNodes: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetClasses() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final MetaClass[] result = connector.getClasses(user, domain); assertNotNull(result); System.out.println("getClasses: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetMetaObject() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final int objectID = 1; final Connection con = server.getConnectionPool().getConnection(); final ResultSet set = con.createStatement().executeQuery("select id from cs_class where name like 'test1'"); set.next(); final int classId = set.getInt(1); final MetaObject result = connector.getMetaObject(user, objectID, classId, domain); assertNotNull(result); System.out.println("getMetaObject: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetMetaObject_User_Query() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final Connection con = server.getConnectionPool().getConnection(); final ResultSet set = con.createStatement().executeQuery("select id from cs_class where name like 'test1'"); set.next(); final int classId = set.getInt(1); final String queryString = "select " + classId + " as class_id, 1 as object_id"; final Query query = new Query(new SystemStatement(true, -1, "", false, SearchResult.OBJECT, queryString), domain); final MetaObject[] result = connector.getMetaObject(user, query); assertNotNull(result); for (final MetaObject mo : result) { System.out.println("getMetaObject: " + mo); } } @Test public void testGetMetaObject_User_Query_Domain() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final Connection con = server.getConnectionPool().getConnection(); final ResultSet set = con.createStatement().executeQuery("select id from cs_class where name like 'test1'"); set.next(); final int classId = set.getInt(1); final String queryString = "select " + classId + " as class_id, 1 as object_id"; final Query query = new Query(new SystemStatement(true, -1, "", false, SearchResult.OBJECT, queryString), domain); final MetaObject[] result = connector.getMetaObject(user, query, domain); assertNotNull(result); for (final MetaObject mo : result) { System.out.println("getMetaObject: " + mo); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ // TODO: enable and resolve test @Ignore @Test public void testGetMetaObject_User_Query_CorruptAdminPassword() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final String domain = "LOCAL"; final User user = connector.getUser("LOCAL", "Gäste", "LOCAL", "gast", "cismet"); Query query = null; try { query = new Query(new SystemStatement( true, -1, "", false, SearchResult.OBJECT, "update cs_usr set password = 'corrupted' where login_name ilike '%admin%'"), domain); connector.getMetaObject(user, query); } catch (Exception e) { // expected exception Connection con = null; ResultSet set = null; try { con = server.getConnectionPool().getConnection(); set = con.createStatement() .executeQuery("select password from cs_usr where login_name ilike '%admin%'"); assertTrue(set.next()); final String password = set.getString(1); con.createStatement() .executeUpdate("update cs_usr set password = 'cismet' where login_name ilike '%admin%'"); assertFalse("password was corrupted", "corrupted".equals(password)); } finally { DBConnection.closeResultSets(set); } } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetMetaObject_User_String() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final Connection con = server.getConnectionPool().getConnection(); final ResultSet set = con.createStatement().executeQuery("select id from cs_class where name like 'test1'"); set.next(); final int classId = set.getInt(1); final String queryString = "select " + classId + " as class_id, 1 as object_id"; final MetaObject[] result = connector.getMetaObject(user, queryString); assertNotNull(result); for (final MetaObject mo : result) { System.out.println("getMetaObject: " + mo); } } @Test public void testGetMetaObject_User_String_Domain() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final Connection con = server.getConnectionPool().getConnection(); final ResultSet set = con.createStatement().executeQuery("select id from cs_class where name like 'test1'"); set.next(); final int classId = set.getInt(1); final String queryString = "select " + classId + " as class_id, 1 as object_id"; final MetaObject[] result = connector.getMetaObject(user, queryString, domain); assertNotNull(result); for (final MetaObject mo : result) { System.out.println("getMetaObject: " + mo); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testDeleteMetaObject() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final int objectID = 1; final Connection con = server.getConnectionPool().getConnection(); final ResultSet set = con.createStatement().executeQuery("select id from cs_class where name like 'test6'"); set.next(); final int classId = set.getInt(1); DBConnection.closeResultSets(set); final MetaObject mo = connector.getMetaObject(user, objectID, classId, domain); final int result = connector.deleteMetaObject(user, mo, domain); assertNotNull(result); System.out.println("deleteMetaObject: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testUpdate() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final String query = "SELECT * FROM cs_class"; final int result = connector.update(user, query, domain); assertNotNull(result); System.out.println("update: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetMetaObjectNode_User_int_String() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final int nodeID = 1; final Node result = connector.getMetaObjectNode(user, nodeID, domain); assertNotNull(result); System.out.println("update: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetMetaObjectNode_User_String() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String query = "select 1 as class_id, 1 as object_id"; final Node[] result = connector.getMetaObjectNode(user, query); assertNotNull(result); for (final Node node : result) { System.out.println("update: " + node); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetMetaObjectNode_User_Query() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final String queryString = "select 1, 1"; final Query query = new Query( new SystemStatement(true, -1, "", false, SearchResult.NODE, queryString), domain); final Node[] result = connector.getMetaObjectNode(user, query); assertNotNull(result); for (final Node node : result) { System.out.println("update: " + node); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetInstance() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final Connection con = server.getConnectionPool().getConnection(); final ResultSet set = con.createStatement().executeQuery("select id from cs_class where name like 'test6'"); set.next(); final int classId = set.getInt(1); DBConnection.closeResultSets(set); final MetaClass mc = connector.getClass(user, classId, domain); final MetaObject result = connector.getInstance(user, mc); assertNotNull(result); System.out.println("getInstance: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testAddNode() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final int nodeID = 2; final Node node = connector.getMetaObjectNode(user, nodeID, domain); node.setName("new TestNode"); final Link parent = new Link(nodeID, domain); final Node result = connector.addNode(node, parent, user); assertNotNull(result); System.out.println("addNode: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testAddLink() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final int nodeFromID = 1; final int nodeToID = 2; final Node nodeFrom = connector.getMetaObjectNode(user, nodeFromID, domain); final Node nodeTo = connector.getMetaObjectNode(user, nodeToID, domain); final boolean result = connector.addLink(nodeFrom, nodeTo, user); assertNotNull(result); assertTrue(result); System.out.println("addLink: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ // the underlying implementation has obviously never been used as it contains illegal sql @Test public void testDeleteLink() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final int nodeFromID = 1; final int nodeToID = 2; final Node nodeFrom = connector.getMetaObjectNode(user, nodeFromID, domain); final Node nodeTo = connector.getMetaObjectNode(user, nodeToID, domain); final boolean result = connector.deleteLink(nodeFrom, nodeTo, user); assertNotNull(result); assertTrue(result); System.out.println("deleteLink: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testDeleteNode() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final int nodeID = 4; final Node node = connector.getMetaObjectNode(user, nodeID, domain); final boolean result = connector.deleteNode(node, user); assertNotNull(result); assertTrue(result); System.out.println("deleteNode: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetQueryInfo_User() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final Info[] result = connector.getQueryInfos(user); assertNotNull(result); System.out.println("getQueryInfo_User: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetQueryInfo_UserGroup() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final String domain = "LOCAL"; final UserGroup ug = new UserGroup(1, "Administratoren", domain); final Info[] result = connector.getQueryInfos(ug); assertNotNull(result); System.out.println("getQueryInfo_UserGroup: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetChildren_Node_User() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final int nodeID = 2; final Node node = connector.getMetaObjectNode(user, nodeID, domain); final Node[] result = connector.getChildren(node, user); assertNotNull(result); for (final Node n : result) { System.out.println("getChildren " + n); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetRoots_User() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final Node[] result = connector.getRoots(user); assertNotNull(result); for (final Node n : result) { System.out.println("getRoots " + n); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetRoots_User_String() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final Node[] result = connector.getRoots(user, domain); assertNotNull(result); for (final Node n : result) { System.out.println("getRoots " + n); } } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testUpdateMetaObject() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final Connection con = server.getConnectionPool().getConnection(); final ResultSet set = con.createStatement().executeQuery("select id from cs_class where name like 'test7'"); set.next(); final int classId = set.getInt(1); DBConnection.closeResultSets(set); final int objectId = 1; final MetaObject mo = connector.getMetaObject(user, objectId, classId, domain); mo.getAttributeByFieldName("name").setValue("Cismethausen"); final int result = connector.updateMetaObject(user, mo, domain); assertTrue(result > 0); System.out.println("updateMetaObject: " + result); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testInsertMetaObject() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final Connection con = server.getConnectionPool().getConnection(); final ResultSet set = con.createStatement().executeQuery("select id from cs_class where name like 'test7'"); set.next(); final int classId = set.getInt(1); DBConnection.closeResultSets(set); final int objectId = 1; final MetaObject mo = connector.getMetaObject(user, objectId, classId, domain); mo.setID(2); final MetaObject result = connector.insertMetaObject(user, mo, domain); assertNotNull(result); System.out.println("insertMetaObject: " + result.getClassKey()); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testGetConfigAttr() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String key = "abc"; final String result = connector.getConfigAttr(user, key); assertEquals("alphabeth3", result); System.out.println("getConfigAttr done"); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Test public void testHasConfigAttr() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String key = "abc"; final boolean result = connector.hasConfigAttr(user, key); assertTrue(result); System.out.println("hasConfigAttr done"); } /** * DOCUMENT ME! * * @throws Exception DOCUMENT ME! */ @Ignore @Test // could not determine how to specify the query object correctly public void testInsertMetaObjectByQuery() throws Exception { System.out.println("\nTEST: " + getCurrentMethodName()); final User user = connector.getUser("LOCAL", "Administratoren", "LOCAL", "admin", "cismet"); final String domain = "LOCAL"; final String queryString = "Insert into test6 (name) values (\"welle\") "; final Query query = new Query( new SystemStatement(true, -1, "", true, 0, queryString), domain); final int result = connector.insertMetaObject(user, query, domain); assertNotNull(result); System.out.println("insertMetaObject: " + result); } //~ Inner Classes ---------------------------------------------------------- /** * DOCUMENT ME! * * @version $Revision$, $Date$ */ private static final class PropertiesWrapper extends ServerProperties { //~ Instance fields ---------------------------------------------------- private transient String startMode; //~ Constructors ------------------------------------------------------- /** * Creates a new PropertiesWrapper object. * * @param configFile DOCUMENT ME! * * @throws FileNotFoundException DOCUMENT ME! * @throws IOException DOCUMENT ME! */ public PropertiesWrapper(final String configFile) throws FileNotFoundException, IOException { super(configFile); } //~ Methods ------------------------------------------------------------ @Override public String getStartMode() { if (startMode == null) { return super.getStartMode(); } else { return startMode; } } /** * DOCUMENT ME! * * @param startMode DOCUMENT ME! */ public void setStartMode(final String startMode) { this.startMode = startMode; } } }