From 732c59fff667a9999d633b735db5b8d74da25051 Mon Sep 17 00:00:00 2001 From: Tglman Date: Thu, 7 Dec 2023 13:16:42 +0100 Subject: [PATCH] refactor: removed used of some deprecated API, generalized server tests setup/teardown --- .../orient/core/record/impl/ODocument.java | 4 +- .../server/BaseMemoryInternalDatabase.java | 35 ++ .../server/BaseServerMemoryDatabase.java | 49 +++ .../orient/server/OClientConnectionTest.java | 18 +- .../server/network/OLiveQueryRemoteTest.java | 50 +-- .../server/network/ORemoteImportTest.java | 76 +---- .../TestNetworkSerializerIndipendency.java | 19 +- .../server/query/RemoteDropClusterTest.java | 58 +--- .../query/RemoteGraphLiveQueryTest.java | 61 +--- .../server/query/RemoteGraphTXTest.java | 66 +--- .../server/query/RemoteQuerySupportTest.java | 120 +++---- .../server/token/OTokenHandlerImplTest.java | 172 ++++------ .../server/tx/RemoteTransactionHookTest.java | 38 +-- .../tx/RemoteTransactionSupportTest.java | 315 ++++++++---------- 14 files changed, 452 insertions(+), 629 deletions(-) create mode 100644 server/src/test/java/com/orientechnologies/orient/server/BaseMemoryInternalDatabase.java create mode 100644 server/src/test/java/com/orientechnologies/orient/server/BaseServerMemoryDatabase.java diff --git a/core/src/main/java/com/orientechnologies/orient/core/record/impl/ODocument.java b/core/src/main/java/com/orientechnologies/orient/core/record/impl/ODocument.java index 40060229463..c5effe8a81e 100755 --- a/core/src/main/java/com/orientechnologies/orient/core/record/impl/ODocument.java +++ b/core/src/main/java/com/orientechnologies/orient/core/record/impl/ODocument.java @@ -31,7 +31,7 @@ import com.orientechnologies.orient.core.db.ODatabaseRecordThreadLocal; import com.orientechnologies.orient.core.db.ODatabaseSession; import com.orientechnologies.orient.core.db.document.ODatabaseDocument; -import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx; +import com.orientechnologies.orient.core.db.document.ODatabaseDocumentAbstract; import com.orientechnologies.orient.core.db.record.OAutoConvertToRecord; import com.orientechnologies.orient.core.db.record.ODetachable; import com.orientechnologies.orient.core.db.record.OIdentifiable; @@ -3366,7 +3366,7 @@ protected void setup(ODatabaseDocumentInternal db) { if (recordFormat == null) // GET THE DEFAULT ONE - recordFormat = ODatabaseDocumentTx.getDefaultSerializer(); + recordFormat = ODatabaseDocumentAbstract.getDefaultSerializer(); } protected String checkFieldName(final String iFieldName) { diff --git a/server/src/test/java/com/orientechnologies/orient/server/BaseMemoryInternalDatabase.java b/server/src/test/java/com/orientechnologies/orient/server/BaseMemoryInternalDatabase.java new file mode 100644 index 00000000000..a1e444cde0b --- /dev/null +++ b/server/src/test/java/com/orientechnologies/orient/server/BaseMemoryInternalDatabase.java @@ -0,0 +1,35 @@ +package com.orientechnologies.orient.server; + +import com.orientechnologies.orient.core.db.ODatabaseDocumentInternal; +import com.orientechnologies.orient.core.db.OrientDB; +import com.orientechnologies.orient.core.db.OrientDBConfig; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.rules.TestName; + +public class BaseMemoryInternalDatabase { + + protected ODatabaseDocumentInternal db; + protected OrientDB context; + @Rule public TestName name = new TestName(); + + @Before + public void beforeTest() { + context = new OrientDB("embedded:", OrientDBConfig.defaultConfig()); + context + .execute( + "create database " + + name.getMethodName() + + " memory users(admin identified by 'adminpwd' role admin) ") + .close(); + db = (ODatabaseDocumentInternal) context.open(name.getMethodName(), "admin", "adminpwd"); + } + + @After + public void afterTest() { + db.close(); + context.drop(name.getMethodName()); + context.close(); + } +} diff --git a/server/src/test/java/com/orientechnologies/orient/server/BaseServerMemoryDatabase.java b/server/src/test/java/com/orientechnologies/orient/server/BaseServerMemoryDatabase.java new file mode 100644 index 00000000000..baa316c617c --- /dev/null +++ b/server/src/test/java/com/orientechnologies/orient/server/BaseServerMemoryDatabase.java @@ -0,0 +1,49 @@ +package com.orientechnologies.orient.server; + +import com.orientechnologies.common.io.OFileUtils; +import com.orientechnologies.orient.core.db.ODatabaseDocumentInternal; +import com.orientechnologies.orient.core.db.OrientDB; +import com.orientechnologies.orient.core.db.OrientDBConfig; +import java.io.File; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.rules.TestName; + +public class BaseServerMemoryDatabase { + + protected ODatabaseDocumentInternal db; + protected OrientDB context; + @Rule public TestName name = new TestName(); + protected OServer server; + + @Before + public void beforeTest() { + server = new OServer(false); + try { + server.startup(getClass().getResourceAsStream("orientdb-server-config.xml")); + server.activate(); + } catch (Exception e) { + throw new RuntimeException(e); + } + + context = new OrientDB("remote:localhost", "root", "root", OrientDBConfig.defaultConfig()); + context + .execute( + "create database " + + name.getMethodName() + + " memory users(admin identified by 'adminpwd' role admin) ") + .close(); + db = (ODatabaseDocumentInternal) context.open(name.getMethodName(), "admin", "adminpwd"); + } + + @After + public void afterTest() { + db.close(); + context.drop(name.getMethodName()); + context.close(); + String directory = server.getDatabaseDirectory(); + server.shutdown(); + OFileUtils.deleteRecursively(new File(directory)); + } +} diff --git a/server/src/test/java/com/orientechnologies/orient/server/OClientConnectionTest.java b/server/src/test/java/com/orientechnologies/orient/server/OClientConnectionTest.java index 5ef3edfd823..6eaf2d5ccbb 100644 --- a/server/src/test/java/com/orientechnologies/orient/server/OClientConnectionTest.java +++ b/server/src/test/java/com/orientechnologies/orient/server/OClientConnectionTest.java @@ -7,23 +7,18 @@ import com.orientechnologies.orient.core.config.OContextConfiguration; import com.orientechnologies.orient.core.config.OGlobalConfiguration; -import com.orientechnologies.orient.core.db.ODatabaseDocumentInternal; -import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx; import com.orientechnologies.orient.enterprise.channel.binary.OTokenSecurityException; import com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary; import com.orientechnologies.orient.server.token.OTokenHandlerImpl; import java.io.IOException; -import org.junit.After; -import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; /** Created by tglman on 27/12/15. */ -public class OClientConnectionTest { +public class OClientConnectionTest extends BaseMemoryInternalDatabase { - private ODatabaseDocumentInternal db; @Mock private ONetworkProtocolBinary protocol; @Mock private ONetworkProtocolBinary protocol1; @@ -32,19 +27,12 @@ public class OClientConnectionTest { @Mock private OServer server; - @Before - public void before() { + public void beforeTest() { + super.beforeTest(); MockitoAnnotations.initMocks(this); Mockito.when(protocol.getServer()).thenReturn(server); Mockito.when(server.getClientConnectionManager()).thenReturn(manager); Mockito.when(server.getContextConfiguration()).thenReturn(new OContextConfiguration()); - db = new ODatabaseDocumentTx("memory:" + OClientConnectionTest.class.getSimpleName()); - db.create(); - } - - @After - public void after() { - db.drop(); } @Test diff --git a/server/src/test/java/com/orientechnologies/orient/server/network/OLiveQueryRemoteTest.java b/server/src/test/java/com/orientechnologies/orient/server/network/OLiveQueryRemoteTest.java index 90c29472582..d909d6dc7cd 100755 --- a/server/src/test/java/com/orientechnologies/orient/server/network/OLiveQueryRemoteTest.java +++ b/server/src/test/java/com/orientechnologies/orient/server/network/OLiveQueryRemoteTest.java @@ -40,7 +40,7 @@ public class OLiveQueryRemoteTest { private OServer server; private OrientDB orientDB; - private ODatabaseDocument database; + private ODatabaseDocument db; @Before public void before() throws Exception { @@ -56,12 +56,12 @@ public void before() throws Exception { orientDB.execute( "create database ? memory users (admin identified by 'admin' role admin)", OLiveQueryRemoteTest.class.getSimpleName()); - database = orientDB.open(OLiveQueryRemoteTest.class.getSimpleName(), "admin", "admin"); + db = orientDB.open(OLiveQueryRemoteTest.class.getSimpleName(), "admin", "admin"); } @After public void after() { - database.close(); + db.close(); orientDB.close(); server.shutdown(); @@ -111,9 +111,9 @@ public void onEnd(ODatabaseDocument database) { @Test public void testRidSelect() throws InterruptedException { MyLiveQueryListener listener = new MyLiveQueryListener(new CountDownLatch(1)); - OVertex item = database.newVertex(); + OVertex item = db.newVertex(); item.save(); - OLiveQueryMonitor live = database.live("LIVE SELECT FROM " + item.getIdentity(), listener); + OLiveQueryMonitor live = db.live("LIVE SELECT FROM " + item.getIdentity(), listener); item.setProperty("x", "z"); item.save(); Assert.assertTrue(listener.latch.await(10, TimeUnit.SECONDS)); @@ -122,25 +122,25 @@ public void testRidSelect() throws InterruptedException { @Test public void testLiveInsert() throws InterruptedException { - database.getMetadata().getSchema().createClass("test"); - database.getMetadata().getSchema().createClass("test2"); + db.getMetadata().getSchema().createClass("test"); + db.getMetadata().getSchema().createClass("test2"); MyLiveQueryListener listener = new MyLiveQueryListener(new CountDownLatch(2)); - OLiveQueryMonitor monitor = database.live("select from test", listener); + OLiveQueryMonitor monitor = db.live("select from test", listener); Assert.assertNotNull(monitor); - database.command("insert into test set name = 'foo', surname = 'bar'").close(); - database.command("insert into test set name = 'foo', surname = 'baz'").close(); - database.command("insert into test2 set name = 'foo'").close(); + db.command("insert into test set name = 'foo', surname = 'bar'").close(); + db.command("insert into test set name = 'foo', surname = 'baz'").close(); + db.command("insert into test2 set name = 'foo'").close(); Assert.assertTrue(listener.latch.await(1, TimeUnit.MINUTES)); monitor.unSubscribe(); Assert.assertTrue(listener.ended.await(1, TimeUnit.MINUTES)); - database.command("insert into test set name = 'foo', surname = 'bax'"); - database.command("insert into test2 set name = 'foo'"); - database.command("insert into test set name = 'foo', surname = 'baz'"); + db.command("insert into test set name = 'foo', surname = 'bax'"); + db.command("insert into test2 set name = 'foo'"); + db.command("insert into test set name = 'foo', surname = 'baz'"); Assert.assertEquals(listener.ops.size(), 2); for (OResult doc : listener.ops) { @@ -154,15 +154,15 @@ public void testLiveInsert() throws InterruptedException { @Test @Ignore public void testRestrictedLiveInsert() throws ExecutionException, InterruptedException { - OSchema schema = database.getMetadata().getSchema(); + OSchema schema = db.getMetadata().getSchema(); OClass oRestricted = schema.getClass("ORestricted"); schema.createClass("test", oRestricted); int liveMatch = 1; - OResultSet query = database.query("select from OUSer where name = 'reader'"); + OResultSet query = db.query("select from OUSer where name = 'reader'"); final OIdentifiable reader = query.next().getIdentity().orElse(null); - final OIdentifiable current = database.getUser().getIdentity(); + final OIdentifiable current = db.getUser().getIdentity(); ExecutorService executorService = Executors.newSingleThreadExecutor(); @@ -216,9 +216,9 @@ public void onEnd(ODatabaseDocument database) {} latch.await(); query.close(); - database.command("insert into test set name = 'foo', surname = 'bar'"); + db.command("insert into test set name = 'foo', surname = 'bar'"); - database.command( + db.command( "insert into test set name = 'foo', surname = 'bar', _allow=?", new ArrayList() { { @@ -234,24 +234,24 @@ public void onEnd(ODatabaseDocument database) {} @Test public void testBatchWithTx() throws InterruptedException { - database.getMetadata().getSchema().createClass("test"); - database.getMetadata().getSchema().createClass("test2"); + db.getMetadata().getSchema().createClass("test"); + db.getMetadata().getSchema().createClass("test2"); int txSize = 100; MyLiveQueryListener listener = new MyLiveQueryListener(new CountDownLatch(txSize)); - OLiveQueryMonitor monitor = database.live("select from test", listener); + OLiveQueryMonitor monitor = db.live("select from test", listener); Assert.assertNotNull(monitor); - database.begin(); + db.begin(); for (int i = 0; i < txSize; i++) { - OElement elem = database.newElement("test"); + OElement elem = db.newElement("test"); elem.setProperty("name", "foo"); elem.setProperty("surname", "bar" + i); elem.save(); } - database.commit(); + db.commit(); Assert.assertTrue(listener.latch.await(1, TimeUnit.MINUTES)); diff --git a/server/src/test/java/com/orientechnologies/orient/server/network/ORemoteImportTest.java b/server/src/test/java/com/orientechnologies/orient/server/network/ORemoteImportTest.java index 992c556d3d6..f9ec628dce0 100755 --- a/server/src/test/java/com/orientechnologies/orient/server/network/ORemoteImportTest.java +++ b/server/src/test/java/com/orientechnologies/orient/server/network/ORemoteImportTest.java @@ -2,73 +2,33 @@ import static org.junit.Assert.assertTrue; -import com.orientechnologies.common.io.OFileUtils; -import com.orientechnologies.orient.client.remote.OServerAdmin; import com.orientechnologies.orient.client.remote.OStorageRemote; -import com.orientechnologies.orient.core.Orient; import com.orientechnologies.orient.core.command.OCommandOutputListener; -import com.orientechnologies.orient.core.db.ODatabaseDocumentInternal; -import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx; -import com.orientechnologies.orient.server.OServer; +import com.orientechnologies.orient.server.BaseServerMemoryDatabase; import java.io.ByteArrayInputStream; -import java.io.File; import java.io.UnsupportedEncodingException; -import org.junit.After; -import org.junit.Before; import org.junit.Test; /** Created by tglman on 19/07/16. */ -public class ORemoteImportTest { - - private static final String SERVER_DIRECTORY = "./target/db"; - private OServer server; - - @Before - public void before() throws Exception { - server = new OServer(false); - server.setServerRootDirectory(SERVER_DIRECTORY); - server.startup(getClass().getResourceAsStream("orientdb-server-config.xml")); - server.activate(); - - OServerAdmin server = new OServerAdmin("remote:localhost"); - server.connect("root", "root"); - server.createDatabase(ORemoteImportTest.class.getSimpleName(), "graph", "memory"); - server.close(); - } - +public class ORemoteImportTest extends BaseServerMemoryDatabase { @Test public void testImport() throws UnsupportedEncodingException { - ODatabaseDocumentInternal db = - new ODatabaseDocumentTx("remote:localhost/" + ORemoteImportTest.class.getSimpleName()); - db.open("admin", "admin"); - try { - String content = - "{\"records\": [{\"@type\": \"d\", \"@rid\": \"#9:0\",\"@version\": 1,\"@class\": \"V\"}]}"; - - OStorageRemote storage = (OStorageRemote) db.getStorage(); - final StringBuffer buff = new StringBuffer(); - storage.importDatabase( - "-merge=true", - new ByteArrayInputStream(content.getBytes("UTF8")), - "data.json", - new OCommandOutputListener() { - @Override - public void onMessage(String iText) { - buff.append(iText); - } - }); - assertTrue(buff.toString().contains("Database import completed")); - } finally { - db.close(); - } - } - - @After - public void after() { - server.shutdown(); - Orient.instance().shutdown(); - OFileUtils.deleteRecursively(new File(SERVER_DIRECTORY)); - Orient.instance().startup(); + String content = + "{\"records\": [{\"@type\": \"d\", \"@rid\": \"#9:0\",\"@version\": 1,\"@class\": \"V\"}]}"; + + OStorageRemote storage = (OStorageRemote) db.getStorage(); + final StringBuffer buff = new StringBuffer(); + storage.importDatabase( + "-merge=true", + new ByteArrayInputStream(content.getBytes("UTF8")), + "data.json", + new OCommandOutputListener() { + @Override + public void onMessage(String iText) { + buff.append(iText); + } + }); + assertTrue(buff.toString().contains("Database import completed")); } } diff --git a/server/src/test/java/com/orientechnologies/orient/server/network/TestNetworkSerializerIndipendency.java b/server/src/test/java/com/orientechnologies/orient/server/network/TestNetworkSerializerIndipendency.java index 29cd7037e03..dca8e2fffe4 100755 --- a/server/src/test/java/com/orientechnologies/orient/server/network/TestNetworkSerializerIndipendency.java +++ b/server/src/test/java/com/orientechnologies/orient/server/network/TestNetworkSerializerIndipendency.java @@ -7,6 +7,7 @@ import com.orientechnologies.orient.core.Orient; import com.orientechnologies.orient.core.db.ODatabaseDocumentInternal; import com.orientechnologies.orient.core.db.document.ODatabaseDocument; +import com.orientechnologies.orient.core.db.document.ODatabaseDocumentAbstract; import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx; import com.orientechnologies.orient.core.exception.OConfigurationException; import com.orientechnologies.orient.core.exception.OStorageException; @@ -34,13 +35,13 @@ public void before() throws Exception { @Test(expected = OStorageException.class) public void createCsvDatabaseConnectBinary() throws IOException { - ORecordSerializer prev = ODatabaseDocumentTx.getDefaultSerializer(); - ODatabaseDocumentTx.setDefaultSerializer(ORecordSerializerSchemaAware2CSV.INSTANCE); + ORecordSerializer prev = ODatabaseDocumentAbstract.getDefaultSerializer(); + ODatabaseDocumentAbstract.setDefaultSerializer(ORecordSerializerSchemaAware2CSV.INSTANCE); createDatabase(); ODatabaseDocument dbTx = null; try { - ODatabaseDocumentTx.setDefaultSerializer(ORecordSerializerBinary.INSTANCE); + ODatabaseDocumentAbstract.setDefaultSerializer(ORecordSerializerBinary.INSTANCE); dbTx = new ODatabaseDocumentTx("remote:localhost/test"); dbTx.open("admin", "admin"); ODocument document = new ODocument(); @@ -59,7 +60,7 @@ public void createCsvDatabaseConnectBinary() throws IOException { } dropDatabase(); - ODatabaseDocumentTx.setDefaultSerializer(prev); + ODatabaseDocumentAbstract.setDefaultSerializer(prev); } } @@ -77,13 +78,13 @@ private void createDatabase() throws IOException { @Test public void createBinaryDatabaseConnectCsv() throws IOException { - ORecordSerializer prev = ODatabaseDocumentTx.getDefaultSerializer(); - ODatabaseDocumentTx.setDefaultSerializer(ORecordSerializerBinary.INSTANCE); + ORecordSerializer prev = ODatabaseDocumentAbstract.getDefaultSerializer(); + ODatabaseDocumentAbstract.setDefaultSerializer(ORecordSerializerBinary.INSTANCE); createDatabase(); ODatabaseDocument dbTx = null; try { - ODatabaseDocumentTx.setDefaultSerializer(ORecordSerializerSchemaAware2CSV.INSTANCE); + ODatabaseDocumentAbstract.setDefaultSerializer(ORecordSerializerSchemaAware2CSV.INSTANCE); dbTx = new ODatabaseDocumentTx("remote:localhost/test"); dbTx.open("admin", "admin"); ODocument document = new ODocument(); @@ -102,7 +103,7 @@ public void createBinaryDatabaseConnectCsv() throws IOException { } dropDatabase(); - ODatabaseDocumentTx.setDefaultSerializer(prev); + ODatabaseDocumentAbstract.setDefaultSerializer(prev); } } @@ -113,7 +114,7 @@ public void after() { Orient.instance().shutdown(); File directory = new File(server.getDatabaseDirectory()); OFileUtils.deleteRecursively(directory); - ODatabaseDocumentTx.setDefaultSerializer( + ODatabaseDocumentAbstract.setDefaultSerializer( ORecordSerializerFactory.instance().getFormat(ORecordSerializerBinary.NAME)); Orient.instance().startup(); } diff --git a/server/src/test/java/com/orientechnologies/orient/server/query/RemoteDropClusterTest.java b/server/src/test/java/com/orientechnologies/orient/server/query/RemoteDropClusterTest.java index 539c58c359e..086fa1e0f0c 100755 --- a/server/src/test/java/com/orientechnologies/orient/server/query/RemoteDropClusterTest.java +++ b/server/src/test/java/com/orientechnologies/orient/server/query/RemoteDropClusterTest.java @@ -1,72 +1,38 @@ package com.orientechnologies.orient.server.query; -import com.orientechnologies.common.io.OFileUtils; -import com.orientechnologies.orient.core.Orient; import com.orientechnologies.orient.core.config.OGlobalConfiguration; -import com.orientechnologies.orient.core.db.OrientDB; -import com.orientechnologies.orient.core.db.OrientDBConfig; -import com.orientechnologies.orient.core.db.document.ODatabaseDocument; -import com.orientechnologies.orient.server.OServer; -import java.io.File; -import org.junit.After; -import org.junit.Before; +import com.orientechnologies.orient.server.BaseServerMemoryDatabase; import org.junit.Test; /** Created by tglman on 03/01/17. */ -public class RemoteDropClusterTest { +public class RemoteDropClusterTest extends BaseServerMemoryDatabase { - private static final String SERVER_DIRECTORY = "./target/cluster"; - private OServer server; - private OrientDB orientDB; - private ODatabaseDocument session; - - @Before - public void before() throws Exception { + public void beforeTest() { OGlobalConfiguration.CLASS_MINIMUM_CLUSTERS.setValue(1); - server = new OServer(false); - server.setServerRootDirectory(SERVER_DIRECTORY); - server.startup(getClass().getResourceAsStream("orientdb-server-config.xml")); - server.activate(); - - orientDB = new OrientDB("remote:localhost", "root", "root", OrientDBConfig.defaultConfig()); - orientDB.execute( - "create database ? memory users (admin identified by 'admin' role admin)", - RemoteDropClusterTest.class.getSimpleName()); - session = orientDB.open(RemoteDropClusterTest.class.getSimpleName(), "admin", "admin"); + super.beforeTest(); } @Test public void simpleDropCluster() { - int cl = session.addCluster("one"); - session.dropCluster(cl); + int cl = db.addCluster("one"); + db.dropCluster(cl); } @Test public void simpleDropClusterTruncate() { - int cl = session.addCluster("one"); - session.dropCluster(cl); + int cl = db.addCluster("one"); + db.dropCluster(cl); } @Test public void simpleDropClusterName() { - session.addCluster("one"); - session.dropCluster("one"); + db.addCluster("one"); + db.dropCluster("one"); } @Test public void simpleDropClusterNameTruncate() { - session.addCluster("one"); - session.dropCluster("one"); - } - - @After - public void after() { - session.close(); - orientDB.close(); - server.shutdown(); - - Orient.instance().shutdown(); - OFileUtils.deleteRecursively(new File(SERVER_DIRECTORY)); - Orient.instance().startup(); + db.addCluster("one"); + db.dropCluster("one"); } } diff --git a/server/src/test/java/com/orientechnologies/orient/server/query/RemoteGraphLiveQueryTest.java b/server/src/test/java/com/orientechnologies/orient/server/query/RemoteGraphLiveQueryTest.java index 47557be9a0e..98e889b5dee 100644 --- a/server/src/test/java/com/orientechnologies/orient/server/query/RemoteGraphLiveQueryTest.java +++ b/server/src/test/java/com/orientechnologies/orient/server/query/RemoteGraphLiveQueryTest.java @@ -1,56 +1,32 @@ package com.orientechnologies.orient.server.query; import com.orientechnologies.common.exception.OException; -import com.orientechnologies.common.io.OFileUtils; -import com.orientechnologies.orient.core.Orient; import com.orientechnologies.orient.core.db.OLiveQueryResultListener; -import com.orientechnologies.orient.core.db.OrientDB; -import com.orientechnologies.orient.core.db.OrientDBConfig; import com.orientechnologies.orient.core.db.document.ODatabaseDocument; import com.orientechnologies.orient.core.sql.executor.OResult; import com.orientechnologies.orient.core.sql.executor.OResultSet; -import com.orientechnologies.orient.server.OServer; -import java.io.File; +import com.orientechnologies.orient.server.BaseServerMemoryDatabase; import java.util.HashMap; import java.util.concurrent.atomic.AtomicLong; -import org.junit.After; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; -public class RemoteGraphLiveQueryTest { - - private static final String SERVER_DIRECTORY = "./target/remoteGraph"; - private OServer server; - private OrientDB orientDB; - private ODatabaseDocument session; - - @Before - public void before() throws Exception { - server = new OServer(false); - server.setServerRootDirectory(SERVER_DIRECTORY); - server.startup(getClass().getResourceAsStream("orientdb-server-config.xml")); - - server.activate(); - - orientDB = new OrientDB("remote:localhost", "root", "root", OrientDBConfig.defaultConfig()); - orientDB.execute( - "create database ? memory users (admin identified by 'admin' role admin)", - RemoteGraphLiveQueryTest.class.getSimpleName()); - session = orientDB.open(RemoteGraphLiveQueryTest.class.getSimpleName(), "admin", "admin"); - session.createClassIfNotExist("FirstV", "V"); - session.createClassIfNotExist("SecondV", "V"); - session.createClassIfNotExist("TestEdge", "E"); +public class RemoteGraphLiveQueryTest extends BaseServerMemoryDatabase { + + public void beforeTest() { + super.beforeTest(); + db.createClassIfNotExist("FirstV", "V"); + db.createClassIfNotExist("SecondV", "V"); + db.createClassIfNotExist("TestEdge", "E"); } @Test public void testLiveQuery() throws InterruptedException { - session.command("create vertex FirstV set id = '1'").close(); - session.command("create vertex SecondV set id = '2'").close(); + db.command("create vertex FirstV set id = '1'").close(); + db.command("create vertex SecondV set id = '2'").close(); try (OResultSet resultSet = - session.command( - "create edge TestEdge from (select from FirstV) to (select from SecondV)")) { + db.command("create edge TestEdge from (select from FirstV) to (select from SecondV)")) { OResult result = resultSet.stream().iterator().next(); Assert.assertEquals(true, result.isEdge()); @@ -58,7 +34,7 @@ public void testLiveQuery() throws InterruptedException { AtomicLong l = new AtomicLong(0); - session.live( + db.live( "select from SecondV", new OLiveQueryResultListener() { @@ -81,21 +57,10 @@ public void onCreate(ODatabaseDocument database, OResult data) {} }, new HashMap()); - session.command("update SecondV set id = 3"); + db.command("update SecondV set id = 3"); Thread.sleep(100); Assert.assertEquals(1L, l.get()); } - - @After - public void after() { - session.close(); - orientDB.close(); - server.shutdown(); - - Orient.instance().shutdown(); - OFileUtils.deleteRecursively(new File(SERVER_DIRECTORY)); - Orient.instance().startup(); - } } diff --git a/server/src/test/java/com/orientechnologies/orient/server/query/RemoteGraphTXTest.java b/server/src/test/java/com/orientechnologies/orient/server/query/RemoteGraphTXTest.java index 99db64fb5af..c581e205827 100755 --- a/server/src/test/java/com/orientechnologies/orient/server/query/RemoteGraphTXTest.java +++ b/server/src/test/java/com/orientechnologies/orient/server/query/RemoteGraphTXTest.java @@ -1,64 +1,40 @@ package com.orientechnologies.orient.server.query; -import com.orientechnologies.common.io.OFileUtils; -import com.orientechnologies.orient.core.Orient; -import com.orientechnologies.orient.core.db.OrientDB; -import com.orientechnologies.orient.core.db.OrientDBConfig; -import com.orientechnologies.orient.core.db.document.ODatabaseDocument; import com.orientechnologies.orient.core.sql.executor.OResult; import com.orientechnologies.orient.core.sql.executor.OResultSet; -import com.orientechnologies.orient.server.OServer; -import java.io.File; +import com.orientechnologies.orient.server.BaseServerMemoryDatabase; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; -import org.junit.After; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; /** Created by wolf4ood on 1/03/19. */ -public class RemoteGraphTXTest { +public class RemoteGraphTXTest extends BaseServerMemoryDatabase { - private static final String SERVER_DIRECTORY = "./target/remoteGraph"; - private OServer server; - private OrientDB orientDB; - private ODatabaseDocument session; - - @Before - public void before() throws Exception { - server = new OServer(false); - server.setServerRootDirectory(SERVER_DIRECTORY); - server.startup(getClass().getResourceAsStream("orientdb-server-config.xml")); - - server.activate(); - - orientDB = new OrientDB("remote:localhost", "root", "root", OrientDBConfig.defaultConfig()); - orientDB.execute( - "create database ? memory users (admin identified by 'admin' role admin)", - RemoteGraphTXTest.class.getSimpleName()); - session = orientDB.open(RemoteGraphTXTest.class.getSimpleName(), "admin", "admin"); - session.createClassIfNotExist("FirstV", "V"); - session.createClassIfNotExist("SecondV", "V"); - session.createClassIfNotExist("TestEdge", "E"); + public void beforeTest() { + super.beforeTest(); + db.createClassIfNotExist("FirstV", "V"); + db.createClassIfNotExist("SecondV", "V"); + db.createClassIfNotExist("TestEdge", "E"); } @Test public void itShouldDeleteEdgesInTx() { - session.command("create vertex FirstV set id = '1'").close(); - session.command("create vertex SecondV set id = '2'").close(); + db.command("create vertex FirstV set id = '1'").close(); + db.command("create vertex SecondV set id = '2'").close(); try (OResultSet resultSet = - session.command( + db.command( "create edge TestEdge from ( select from FirstV where id = '1') to ( select from SecondV where id = '2')")) { OResult result = resultSet.stream().iterator().next(); Assert.assertEquals(true, result.isEdge()); } - session.begin(); + db.begin(); - session + db .command( "delete edge TestEdge from (select from FirstV where id = :param1) to (select from SecondV where id = :param2)", new HashMap() { @@ -70,27 +46,15 @@ public void itShouldDeleteEdgesInTx() { .stream() .collect(Collectors.toList()); - session.commit(); + db.commit(); - Assert.assertEquals(0, session.query("select from TestEdge").stream().count()); + Assert.assertEquals(0, db.query("select from TestEdge").stream().count()); List results = - session.query("select bothE().size() as count from V").stream() - .collect(Collectors.toList()); + db.query("select bothE().size() as count from V").stream().collect(Collectors.toList()); for (OResult result : results) { Assert.assertEquals(0, (int) result.getProperty("count")); } } - - @After - public void after() { - session.close(); - orientDB.close(); - server.shutdown(); - - Orient.instance().shutdown(); - OFileUtils.deleteRecursively(new File(SERVER_DIRECTORY)); - Orient.instance().startup(); - } } diff --git a/server/src/test/java/com/orientechnologies/orient/server/query/RemoteQuerySupportTest.java b/server/src/test/java/com/orientechnologies/orient/server/query/RemoteQuerySupportTest.java index e325bc71b8c..6c71977847e 100755 --- a/server/src/test/java/com/orientechnologies/orient/server/query/RemoteQuerySupportTest.java +++ b/server/src/test/java/com/orientechnologies/orient/server/query/RemoteQuerySupportTest.java @@ -5,12 +5,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import com.orientechnologies.common.io.OFileUtils; -import com.orientechnologies.orient.core.Orient; -import com.orientechnologies.orient.core.config.OGlobalConfiguration; -import com.orientechnologies.orient.core.db.OrientDB; -import com.orientechnologies.orient.core.db.OrientDBConfig; -import com.orientechnologies.orient.core.db.document.ODatabaseDocument; import com.orientechnologies.orient.core.exception.ODatabaseException; import com.orientechnologies.orient.core.exception.OSerializationException; import com.orientechnologies.orient.core.id.ORecordId; @@ -19,43 +13,25 @@ import com.orientechnologies.orient.core.record.impl.ODocument; import com.orientechnologies.orient.core.sql.executor.OResult; import com.orientechnologies.orient.core.sql.executor.OResultSet; +import com.orientechnologies.orient.server.BaseServerMemoryDatabase; import com.orientechnologies.orient.server.OClientConnection; -import com.orientechnologies.orient.server.OServer; -import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import org.junit.After; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; /** Created by tglman on 03/01/17. */ -public class RemoteQuerySupportTest { +public class RemoteQuerySupportTest extends BaseServerMemoryDatabase { - private static final String SERVER_DIRECTORY = "./target/query"; - private OServer server; - private OrientDB orientDB; - private ODatabaseDocument session; private int oldPageSize; - @Before - public void before() throws Exception { - OGlobalConfiguration.CLASS_MINIMUM_CLUSTERS.setValue(1); - server = new OServer(false); - server.setServerRootDirectory(SERVER_DIRECTORY); - server.startup(getClass().getResourceAsStream("orientdb-server-config.xml")); - server.activate(); - - orientDB = new OrientDB("remote:localhost", "root", "root", OrientDBConfig.defaultConfig()); - orientDB.execute( - "create database ? memory users (admin identified by 'admin' role admin)", - RemoteQuerySupportTest.class.getSimpleName()); - session = orientDB.open(RemoteQuerySupportTest.class.getSimpleName(), "admin", "admin"); - session.createClass("Some"); + public void beforeTest() { + super.beforeTest(); + db.createClass("Some"); oldPageSize = QUERY_REMOTE_RESULTSET_PAGE_SIZE.getValueAsInteger(); QUERY_REMOTE_RESULTSET_PAGE_SIZE.setValue(10); } @@ -65,9 +41,9 @@ public void testQuery() { for (int i = 0; i < 150; i++) { ODocument doc = new ODocument("Some"); doc.setProperty("prop", "value"); - session.save(doc); + db.save(doc); } - OResultSet res = session.query("select from Some"); + OResultSet res = db.query("select from Some"); for (int i = 0; i < 150; i++) { assertTrue(res.hasNext()); OResult item = res.next(); @@ -80,9 +56,9 @@ public void testCommandSelect() { for (int i = 0; i < 150; i++) { ODocument doc = new ODocument("Some"); doc.setProperty("prop", "value"); - session.save(doc); + db.save(doc); } - OResultSet res = session.command("select from Some"); + OResultSet res = db.command("select from Some"); for (int i = 0; i < 150; i++) { assertTrue(res.hasNext()); OResult item = res.next(); @@ -95,10 +71,10 @@ public void testCommandInsertWithPageOverflow() { for (int i = 0; i < 150; i++) { ODocument doc = new ODocument("Some"); doc.setProperty("prop", "value"); - session.save(doc); + db.save(doc); } - OResultSet res = session.command("insert into V from select from Some"); + OResultSet res = db.command("insert into V from select from Some"); for (int i = 0; i < 150; i++) { assertTrue(res.hasNext()); OResult item = res.next(); @@ -111,14 +87,14 @@ public void testQueryKilledSession() { for (int i = 0; i < 150; i++) { ODocument doc = new ODocument("Some"); doc.setProperty("prop", "value"); - session.save(doc); + db.save(doc); } - OResultSet res = session.query("select from Some"); + OResultSet res = db.query("select from Some"); for (OClientConnection conn : server.getClientConnectionManager().getConnections()) { conn.close(); } - session.activateOnCurrentThread(); + db.activateOnCurrentThread(); for (int i = 0; i < 150; i++) { assertTrue(res.hasNext()); @@ -134,8 +110,8 @@ public void testQueryEmbedded() { ODocument emb = new ODocument(); emb.setProperty("one", "value"); doc.setProperty("emb", emb, OType.EMBEDDED); - session.save(doc); - OResultSet res = session.query("select emb from Some"); + db.save(doc); + OResultSet res = db.query("select emb from Some"); OResult item = res.next(); assertNotNull(item.getProperty("emb")); @@ -153,8 +129,8 @@ public void testQueryDoubleEmbedded() { emb.setProperty("secEmb", emb1, OType.EMBEDDED); doc.setProperty("emb", emb, OType.EMBEDDED); - session.save(doc); - OResultSet res = session.query("select emb from Some"); + db.save(doc); + OResultSet res = db.query("select emb from Some"); OResult item = res.next(); assertNotNull(item.getProperty("emb")); @@ -172,8 +148,8 @@ public void testQueryEmbeddedList() { List list = new ArrayList<>(); list.add(emb); doc.setProperty("list", list, OType.EMBEDDEDLIST); - session.save(doc); - OResultSet res = session.query("select list from Some"); + db.save(doc); + OResultSet res = db.query("select list from Some"); OResult item = res.next(); assertNotNull(item.getProperty("list")); @@ -190,8 +166,8 @@ public void testQueryEmbeddedSet() { Set set = new HashSet<>(); set.add(emb); doc.setProperty("set", set, OType.EMBEDDEDSET); - session.save(doc); - OResultSet res = session.query("select set from Some"); + db.save(doc); + OResultSet res = db.query("select set from Some"); OResult item = res.next(); assertNotNull(item.getProperty("set")); @@ -209,8 +185,8 @@ public void testQueryEmbeddedMap() { Map map = new HashMap<>(); map.put("key", emb); doc.setProperty("map", map, OType.EMBEDDEDMAP); - session.save(doc); - OResultSet res = session.query("select map from Some"); + db.save(doc); + OResultSet res = db.query("select map from Some"); OResult item = res.next(); assertNotNull(item.getProperty("map")); @@ -222,17 +198,17 @@ public void testQueryEmbeddedMap() { @Test public void testCommandWithTX() { - session.begin(); + db.begin(); - session.command("insert into Some set prop = 'value'"); + db.command("insert into Some set prop = 'value'"); ORecord record; - try (OResultSet resultSet = session.command("insert into Some set prop = 'value'")) { + try (OResultSet resultSet = db.command("insert into Some set prop = 'value'")) { record = resultSet.next().getRecord().get(); } - session.commit(); + db.commit(); Assert.assertTrue(record.getIdentity().isPersistent()); } @@ -240,22 +216,22 @@ record = resultSet.next().getRecord().get(); @Test(expected = OSerializationException.class) public void testBrokenParameter() { try { - session.query("select from Some where prop= ?", new Object()).close(); + db.query("select from Some where prop= ?", new Object()).close(); } catch (RuntimeException e) { // should be possible to run a query after without getting the server stuck - session.query("select from Some where prop= ?", new ORecordId(10, 10)).close(); + db.query("select from Some where prop= ?", new ORecordId(10, 10)).close(); throw e; } } @Test public void testScriptWithRidbags() { - session.command("create class testScriptWithRidbagsV extends V"); - session.command("create class testScriptWithRidbagsE extends E"); - session.command("create vertex testScriptWithRidbagsV set name = 'a'"); - session.command("create vertex testScriptWithRidbagsV set name = 'b'"); + db.command("create class testScriptWithRidbagsV extends V"); + db.command("create class testScriptWithRidbagsE extends E"); + db.command("create vertex testScriptWithRidbagsV set name = 'a'"); + db.command("create vertex testScriptWithRidbagsV set name = 'b'"); - session.command( + db.command( "create edge testScriptWithRidbagsE from (select from testScriptWithRidbagsV where name = 'a') TO (select from testScriptWithRidbagsV where name = 'b');"); String script = ""; @@ -265,7 +241,7 @@ public void testScriptWithRidbags() { script += "COMMIT ;"; script += "RETURN [$q1,$q2]"; - OResultSet rs = session.execute("sql", script); + OResultSet rs = db.execute("sql", script); rs.forEachRemaining(x -> System.out.println(x)); rs.close(); @@ -273,28 +249,20 @@ public void testScriptWithRidbags() { @Test public void testLetOut() { - session.command("create class letVertex extends V"); - session.command("create class letEdge extends E"); - session.command("create vertex letVertex set name = 'a'"); - session.command("create vertex letVertex set name = 'b'"); - session.command( + db.command("create class letVertex extends V"); + db.command("create class letEdge extends E"); + db.command("create vertex letVertex set name = 'a'"); + db.command("create vertex letVertex set name = 'b'"); + db.command( "create edge letEdge from (select from letVertex where name = 'a') TO (select from letVertex where name = 'b');"); OResultSet rs = - session.query( - "select $someNode.in('letEdge') from letVertex LET $someNode =out('letEdge');"); + db.query("select $someNode.in('letEdge') from letVertex LET $someNode =out('letEdge');"); assertEquals(rs.stream().count(), 2); } - @After - public void after() { + public void afterTest() { + super.afterTest(); QUERY_REMOTE_RESULTSET_PAGE_SIZE.setValue(oldPageSize); - session.close(); - orientDB.close(); - server.shutdown(); - - Orient.instance().shutdown(); - OFileUtils.deleteRecursively(new File(SERVER_DIRECTORY)); - Orient.instance().startup(); } } diff --git a/server/src/test/java/com/orientechnologies/orient/server/token/OTokenHandlerImplTest.java b/server/src/test/java/com/orientechnologies/orient/server/token/OTokenHandlerImplTest.java index 3fa62ee387a..cb942078105 100755 --- a/server/src/test/java/com/orientechnologies/orient/server/token/OTokenHandlerImplTest.java +++ b/server/src/test/java/com/orientechnologies/orient/server/token/OTokenHandlerImplTest.java @@ -6,8 +6,6 @@ import static org.junit.Assert.assertTrue; import com.orientechnologies.orient.core.db.ODatabaseDocumentInternal; -import com.orientechnologies.orient.core.db.document.ODatabaseDocument; -import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx; import com.orientechnologies.orient.core.id.ORecordId; import com.orientechnologies.orient.core.metadata.security.OSecurityUser; import com.orientechnologies.orient.core.metadata.security.OToken; @@ -15,45 +13,39 @@ import com.orientechnologies.orient.core.metadata.security.jwt.OJwtPayload; import com.orientechnologies.orient.core.metadata.security.jwt.OTokenHeader; import com.orientechnologies.orient.core.metadata.security.jwt.OrientJwtHeader; +import com.orientechnologies.orient.server.BaseMemoryInternalDatabase; import com.orientechnologies.orient.server.network.protocol.ONetworkProtocolData; import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import org.junit.Test; -public class OTokenHandlerImplTest { +public class OTokenHandlerImplTest extends BaseMemoryInternalDatabase { @Test public void testWebTokenCreationValidation() throws InvalidKeyException, NoSuchAlgorithmException, IOException { - ODatabaseDocument db = - new ODatabaseDocumentTx("memory:" + OTokenHandlerImplTest.class.getSimpleName()); - db.create(); - try { - OSecurityUser original = db.getUser(); - OTokenHandlerImpl handler = new OTokenHandlerImpl("any key".getBytes(), 60, "HmacSHA256"); - byte[] token = handler.getSignedWebToken(db, original); + OSecurityUser original = db.getUser(); + OTokenHandlerImpl handler = new OTokenHandlerImpl("any key".getBytes(), 60, "HmacSHA256"); + byte[] token = handler.getSignedWebToken(db, original); - try { - // Make this thread wait at least 10 milliseconds before check the validity - Thread.sleep(10); - } catch (InterruptedException e) { - } + try { + // Make this thread wait at least 10 milliseconds before check the validity + Thread.sleep(10); + } catch (InterruptedException e) { + } - OToken tok = handler.parseWebToken(token); + OToken tok = handler.parseWebToken(token); - assertNotNull(tok); + assertNotNull(tok); - assertTrue(tok.getIsVerified()); + assertTrue(tok.getIsVerified()); - OUser user = tok.getUser((ODatabaseDocumentInternal) db); - assertEquals(user.getName(), original.getName()); - boolean boole = handler.validateToken(tok, "open", db.getName()); - assertTrue(boole); - assertTrue(tok.getIsValid()); - } finally { - db.drop(); - } + OUser user = tok.getUser((ODatabaseDocumentInternal) db); + assertEquals(user.getName(), original.getName()); + boolean boole = handler.validateToken(tok, "open", db.getName()); + assertTrue(boole); + assertTrue(tok.getIsValid()); } @Test(expected = Exception.class) @@ -108,113 +100,83 @@ public void testSerializeDeserializeWebPayload() throws Exception { @Test public void testTokenForge() throws InvalidKeyException, NoSuchAlgorithmException, IOException { - ODatabaseDocument db = - new ODatabaseDocumentTx("memory:" + OTokenHandlerImplTest.class.getSimpleName()); - db.create(); - try { - OSecurityUser original = db.getUser(); - OTokenHandlerImpl handler = new OTokenHandlerImpl("any key".getBytes(), 60, "HmacSHA256"); + OSecurityUser original = db.getUser(); + OTokenHandlerImpl handler = new OTokenHandlerImpl("any key".getBytes(), 60, "HmacSHA256"); - byte[] token = handler.getSignedWebToken(db, original); - byte[] token2 = handler.getSignedWebToken(db, original); - String s = new String(token); - String s2 = new String(token2); + byte[] token = handler.getSignedWebToken(db, original); + byte[] token2 = handler.getSignedWebToken(db, original); + String s = new String(token); + String s2 = new String(token2); - String newS = s.substring(0, s.lastIndexOf('.')) + s2.substring(s2.lastIndexOf('.')); + String newS = s.substring(0, s.lastIndexOf('.')) + s2.substring(s2.lastIndexOf('.')); - OToken tok = handler.parseWebToken(newS.getBytes()); + OToken tok = handler.parseWebToken(newS.getBytes()); - assertNotNull(tok); + assertNotNull(tok); - assertFalse(tok.getIsVerified()); - } finally { - db.drop(); - } + assertFalse(tok.getIsVerified()); } @Test public void testBinartTokenCreationValidation() throws InvalidKeyException, NoSuchAlgorithmException, IOException { - ODatabaseDocument db = - new ODatabaseDocumentTx("memory:" + OTokenHandlerImplTest.class.getSimpleName()); - db.create(); - try { - OSecurityUser original = db.getUser(); - OTokenHandlerImpl handler = new OTokenHandlerImpl("any key".getBytes(), 60, "HmacSHA256"); - ONetworkProtocolData data = new ONetworkProtocolData(); - data.driverName = "aa"; - data.driverVersion = "aa"; - data.setSerializationImpl("a"); - data.protocolVersion = 2; + OSecurityUser original = db.getUser(); + OTokenHandlerImpl handler = new OTokenHandlerImpl("any key".getBytes(), 60, "HmacSHA256"); + ONetworkProtocolData data = new ONetworkProtocolData(); + data.driverName = "aa"; + data.driverVersion = "aa"; + data.setSerializationImpl("a"); + data.protocolVersion = 2; - byte[] token = handler.getSignedBinaryToken((ODatabaseDocumentInternal) db, original, data); + byte[] token = handler.getSignedBinaryToken((ODatabaseDocumentInternal) db, original, data); - OToken tok = handler.parseBinaryToken(token); + OToken tok = handler.parseBinaryToken(token); - assertNotNull(tok); + assertNotNull(tok); - assertTrue(tok.getIsVerified()); + assertTrue(tok.getIsVerified()); - OUser user = tok.getUser((ODatabaseDocumentInternal) db); - assertEquals(user.getName(), original.getName()); - boolean boole = handler.validateBinaryToken(tok); - assertTrue(boole); - assertTrue(tok.getIsValid()); - } finally { - db.drop(); - } + OUser user = tok.getUser((ODatabaseDocumentInternal) db); + assertEquals(user.getName(), original.getName()); + boolean boole = handler.validateBinaryToken(tok); + assertTrue(boole); + assertTrue(tok.getIsValid()); } @Test public void testTokenNotRenew() { - ODatabaseDocument db = - new ODatabaseDocumentTx("memory:" + OTokenHandlerImplTest.class.getSimpleName()); - db.create(); - try { - OSecurityUser original = db.getUser(); - OTokenHandlerImpl handler = new OTokenHandlerImpl("any key".getBytes(), 60, "HmacSHA256"); - ONetworkProtocolData data = new ONetworkProtocolData(); - data.driverName = "aa"; - data.driverVersion = "aa"; - data.setSerializationImpl("a"); - data.protocolVersion = 2; - - byte[] token = handler.getSignedBinaryToken((ODatabaseDocumentInternal) db, original, data); + OSecurityUser original = db.getUser(); + OTokenHandlerImpl handler = new OTokenHandlerImpl("any key".getBytes(), 60, "HmacSHA256"); + ONetworkProtocolData data = new ONetworkProtocolData(); + data.driverName = "aa"; + data.driverVersion = "aa"; + data.setSerializationImpl("a"); + data.protocolVersion = 2; - OToken tok = handler.parseBinaryToken(token); - token = handler.renewIfNeeded(tok); + byte[] token = handler.getSignedBinaryToken((ODatabaseDocumentInternal) db, original, data); - assertEquals(0, token.length); + OToken tok = handler.parseBinaryToken(token); + token = handler.renewIfNeeded(tok); - } finally { - db.drop(); - } + assertEquals(0, token.length); } @Test public void testTokenRenew() { - ODatabaseDocument db = - new ODatabaseDocumentTx("memory:" + OTokenHandlerImplTest.class.getSimpleName()); - db.create(); - try { - OSecurityUser original = db.getUser(); - OTokenHandlerImpl handler = new OTokenHandlerImpl("any key".getBytes(), 60, "HmacSHA256"); - ONetworkProtocolData data = new ONetworkProtocolData(); - data.driverName = "aa"; - data.driverVersion = "aa"; - data.setSerializationImpl("a"); - data.protocolVersion = 2; - - byte[] token = handler.getSignedBinaryToken((ODatabaseDocumentInternal) db, original, data); + OSecurityUser original = db.getUser(); + OTokenHandlerImpl handler = new OTokenHandlerImpl("any key".getBytes(), 60, "HmacSHA256"); + ONetworkProtocolData data = new ONetworkProtocolData(); + data.driverName = "aa"; + data.driverVersion = "aa"; + data.setSerializationImpl("a"); + data.protocolVersion = 2; - OToken tok = handler.parseBinaryToken(token); - tok.setExpiry(System.currentTimeMillis() + (handler.getSessionInMills() / 2) - 1); - token = handler.renewIfNeeded(tok); + byte[] token = handler.getSignedBinaryToken((ODatabaseDocumentInternal) db, original, data); - assertTrue(token.length != 0); + OToken tok = handler.parseBinaryToken(token); + tok.setExpiry(System.currentTimeMillis() + (handler.getSessionInMills() / 2) - 1); + token = handler.renewIfNeeded(tok); - } finally { - db.drop(); - } + assertTrue(token.length != 0); } } diff --git a/server/src/test/java/com/orientechnologies/orient/server/tx/RemoteTransactionHookTest.java b/server/src/test/java/com/orientechnologies/orient/server/tx/RemoteTransactionHookTest.java index 6d50aa3f584..d39c43ebe12 100755 --- a/server/src/test/java/com/orientechnologies/orient/server/tx/RemoteTransactionHookTest.java +++ b/server/src/test/java/com/orientechnologies/orient/server/tx/RemoteTransactionHookTest.java @@ -24,7 +24,7 @@ public class RemoteTransactionHookTest { private static final String SERVER_DIRECTORY = "./target/hook-transaction"; private OServer server; private OrientDB orientDB; - private ODatabaseDocument database; + private ODatabaseDocument db; @Before public void before() throws Exception { @@ -40,13 +40,13 @@ public void before() throws Exception { orientDB.execute( "create database ? memory users (admin identified by 'admin' role admin)", RemoteTransactionHookTest.class.getSimpleName()); - database = orientDB.open(RemoteTransactionHookTest.class.getSimpleName(), "admin", "admin"); - database.createClass("SomeTx"); + db = orientDB.open(RemoteTransactionHookTest.class.getSimpleName(), "admin", "admin"); + db.createClass("SomeTx"); } @After public void after() { - database.close(); + db.close(); orientDB.close(); server.shutdown(); @@ -58,19 +58,19 @@ public void after() { @Test @Ignore public void testCalledInTx() { - CountCallHook calls = new CountCallHook(database); - database.registerHook(calls); + CountCallHook calls = new CountCallHook(db); + db.registerHook(calls); - database.begin(); + db.begin(); ODocument doc = new ODocument("SomeTx"); doc.setProperty("name", "some"); - database.save(doc); - database.command("insert into SomeTx set name='aa' ").close(); - OResultSet res = database.command("update SomeTx set name='bb' where name=\"some\""); + db.save(doc); + db.command("insert into SomeTx set name='aa' ").close(); + OResultSet res = db.command("update SomeTx set name='bb' where name=\"some\""); assertEquals((Long) 1L, (Long) res.next().getProperty("count")); res.close(); - database.command("delete from SomeTx where name='aa'").close(); - database.commit(); + db.command("delete from SomeTx where name='aa'").close(); + db.commit(); assertEquals(2, calls.getBeforeCreate()); assertEquals(2, calls.getAfterCreate()); @@ -107,22 +107,22 @@ public void testCalledInClientTx() { assertEquals(1, calls.getAfterDelete()); database.close(); orientDB.close(); - this.database.activateOnCurrentThread(); + this.db.activateOnCurrentThread(); } @Test public void testCalledInTxServer() { - database.begin(); + db.begin(); CountCallHookServer calls = CountCallHookServer.instance; ODocument doc = new ODocument("SomeTx"); doc.setProperty("name", "some"); - database.save(doc); - database.command("insert into SomeTx set name='aa' ").close(); - OResultSet res = database.command("update SomeTx set name='bb' where name=\"some\""); + db.save(doc); + db.command("insert into SomeTx set name='aa' ").close(); + OResultSet res = db.command("update SomeTx set name='bb' where name=\"some\""); assertEquals((Long) 1L, (Long) res.next().getProperty("count")); res.close(); - database.command("delete from SomeTx where name='aa'").close(); - database.commit(); + db.command("delete from SomeTx where name='aa'").close(); + db.commit(); assertEquals(2, calls.getBeforeCreate()); assertEquals(2, calls.getAfterCreate()); assertEquals(1, calls.getBeforeUpdate()); diff --git a/server/src/test/java/com/orientechnologies/orient/server/tx/RemoteTransactionSupportTest.java b/server/src/test/java/com/orientechnologies/orient/server/tx/RemoteTransactionSupportTest.java index 1615a8b1c75..081191d4e9a 100755 --- a/server/src/test/java/com/orientechnologies/orient/server/tx/RemoteTransactionSupportTest.java +++ b/server/src/test/java/com/orientechnologies/orient/server/tx/RemoteTransactionSupportTest.java @@ -4,12 +4,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import com.orientechnologies.common.io.OFileUtils; -import com.orientechnologies.orient.core.Orient; import com.orientechnologies.orient.core.config.OGlobalConfiguration; -import com.orientechnologies.orient.core.db.OrientDB; -import com.orientechnologies.orient.core.db.OrientDBConfig; -import com.orientechnologies.orient.core.db.document.ODatabaseDocument; import com.orientechnologies.orient.core.db.record.OIdentifiable; import com.orientechnologies.orient.core.db.record.ridbag.ORidBag; import com.orientechnologies.orient.core.metadata.schema.OClass; @@ -23,46 +18,27 @@ import com.orientechnologies.orient.core.sql.executor.OResultSet; import com.orientechnologies.orient.core.storage.ORecordDuplicatedException; import com.orientechnologies.orient.core.tx.OTransaction; +import com.orientechnologies.orient.server.BaseServerMemoryDatabase; import com.orientechnologies.orient.server.OClientConnection; -import com.orientechnologies.orient.server.OServer; -import java.io.File; import java.util.ArrayList; -import org.junit.After; -import org.junit.Before; import org.junit.Test; /** Created by tglman on 03/01/17. */ -public class RemoteTransactionSupportTest { +public class RemoteTransactionSupportTest extends BaseServerMemoryDatabase { - private static final String CLASS_1 = "SomeClass"; - private static final String CLASS_2 = "AnotherClass"; - private static final String EDGE = "SomeEdge"; private static final String FIELD_VALUE = "VALUE"; - private static final String SERVER_DIRECTORY = "./target/transaction"; - private OServer server; - private OrientDB orientDB; - private ODatabaseDocument database; - @Before - public void before() throws Exception { + public void beforeTest() { OGlobalConfiguration.CLASS_MINIMUM_CLUSTERS.setValue(1); - server = new OServer(false); - server.setServerRootDirectory(SERVER_DIRECTORY); - server.startup(getClass().getResourceAsStream("orientdb-server-config.xml")); - server.activate(); - - orientDB = new OrientDB("remote:localhost", "root", "root", OrientDBConfig.defaultConfig()); - orientDB.execute( - "create database ? memory users (admin identified by 'admin' role admin)", - RemoteTransactionSupportTest.class.getSimpleName()); - database = orientDB.open(RemoteTransactionSupportTest.class.getSimpleName(), "admin", "admin"); - database.createClass("SomeTx"); - database.createClass("SomeTx2"); - - OClass klass = database.createClass("IndexedTx"); + super.beforeTest(); + + db.createClass("SomeTx"); + db.createClass("SomeTx2"); + + OClass klass = db.createClass("IndexedTx"); klass.createProperty("name", OType.STRING).createIndex(OClass.INDEX_TYPE.NOTUNIQUE); - OClass uniqueClass = database.createClass("UniqueIndexedTx"); + OClass uniqueClass = db.createClass("UniqueIndexedTx"); uniqueClass.createProperty("name", OType.STRING).createIndex(OClass.INDEX_TYPE.UNIQUE); } @@ -70,28 +46,28 @@ public void before() throws Exception { public void testQueryUpdateUpdatedInTxTransaction() { ODocument doc = new ODocument("SomeTx"); doc.setProperty("name", "Joe"); - OIdentifiable id = database.save(doc); - database.begin(); - ODocument doc2 = database.load(id.getIdentity()); + OIdentifiable id = db.save(doc); + db.begin(); + ODocument doc2 = db.load(id.getIdentity()); doc2.setProperty("name", "Jane"); - database.save(doc2); - OResultSet result = database.command("update SomeTx set name='July' where name = 'Jane' "); + db.save(doc2); + OResultSet result = db.command("update SomeTx set name='July' where name = 'Jane' "); assertEquals((long) result.next().getProperty("count"), 1L); - ODocument doc3 = database.load(id.getIdentity()); + ODocument doc3 = db.load(id.getIdentity()); assertEquals(doc3.getProperty("name"), "July"); } @Test public void testResetUpdatedInTxTransaction() { - database.begin(); + db.begin(); ODocument doc1 = new ODocument(); doc1.setProperty("name", "Jane"); - database.save(doc1); + db.save(doc1); ODocument doc2 = new ODocument("SomeTx"); doc2.setProperty("name", "Jane"); - database.save(doc2); - OResultSet result = database.command("update SomeTx set name='July' where name = 'Jane' "); + db.save(doc2); + OResultSet result = db.command("update SomeTx set name='July' where name = 'Jane' "); assertEquals((long) result.next().getProperty("count"), 1L); assertEquals(doc2.getProperty("name"), "July"); result.close(); @@ -99,19 +75,19 @@ public void testResetUpdatedInTxTransaction() { @Test public void testQueryUpdateCreatedInTxTransaction() throws InterruptedException { - database.begin(); + db.begin(); ODocument doc1 = new ODocument("SomeTx"); doc1.setProperty("name", "Jane"); - OIdentifiable id = database.save(doc1); + OIdentifiable id = db.save(doc1); ODocument docx = new ODocument("SomeTx2"); docx.setProperty("name", "Jane"); - database.save(docx); + db.save(docx); - OResultSet result = database.command("update SomeTx set name='July' where name = 'Jane' "); + OResultSet result = db.command("update SomeTx set name='July' where name = 'Jane' "); assertTrue(result.hasNext()); assertEquals((long) result.next().getProperty("count"), 1L); - ODocument doc2 = database.load(id.getIdentity()); + ODocument doc2 = db.load(id.getIdentity()); assertEquals(doc2.getProperty("name"), "July"); assertFalse(result.hasNext()); result.close(); @@ -121,20 +97,20 @@ public void testQueryUpdateCreatedInTxTransaction() throws InterruptedException public void testRollbackTxTransaction() { ODocument doc = new ODocument("SomeTx"); doc.setProperty("name", "Jane"); - database.save(doc); + db.save(doc); - database.begin(); + db.begin(); ODocument doc1 = new ODocument("SomeTx"); doc1.setProperty("name", "Jane"); - database.save(doc1); + db.save(doc1); - OResultSet result = database.command("update SomeTx set name='July' where name = 'Jane' "); + OResultSet result = db.command("update SomeTx set name='July' where name = 'Jane' "); assertTrue(result.hasNext()); assertEquals((long) result.next().getProperty("count"), 2L); result.close(); - database.rollback(); + db.rollback(); - OResultSet result1 = database.command("select count(*) from SomeTx where name='Jane'"); + OResultSet result1 = db.command("select count(*) from SomeTx where name='Jane'"); assertTrue(result1.hasNext()); assertEquals((long) result1.next().getProperty("count(*)"), 1L); result1.close(); @@ -144,49 +120,49 @@ public void testRollbackTxTransaction() { public void testRollbackTxCheckStatusTransaction() { ODocument doc = new ODocument("SomeTx"); doc.setProperty("name", "Jane"); - database.save(doc); + db.save(doc); - database.begin(); + db.begin(); ODocument doc1 = new ODocument("SomeTx"); doc1.setProperty("name", "Jane"); - database.save(doc1); + db.save(doc1); - OResultSet result = database.command("select count(*) from SomeTx where name='Jane' "); + OResultSet result = db.command("select count(*) from SomeTx where name='Jane' "); assertTrue(result.hasNext()); assertEquals((long) result.next().getProperty("count(*)"), 2L); - assertTrue(database.getTransaction().isActive()); + assertTrue(db.getTransaction().isActive()); result.close(); - database.rollback(); + db.rollback(); - OResultSet result1 = database.command("select count(*) from SomeTx where name='Jane'"); + OResultSet result1 = db.command("select count(*) from SomeTx where name='Jane'"); assertTrue(result1.hasNext()); assertEquals((long) result1.next().getProperty("count(*)"), 1L); - assertFalse(database.getTransaction().isActive()); + assertFalse(db.getTransaction().isActive()); result1.close(); } @Test public void testDownloadTransactionAtStart() { - database.begin(); + db.begin(); - database.command("insert into SomeTx set name ='Jane' ").close(); + db.command("insert into SomeTx set name ='Jane' ").close(); ; - assertEquals(database.getTransaction().getEntryCount(), 1); + assertEquals(db.getTransaction().getEntryCount(), 1); } @Test public void testQueryUpdateCreatedInTxSQLTransaction() { - database.begin(); + db.begin(); - database.command("insert into SomeTx set name ='Jane' ").close(); + db.command("insert into SomeTx set name ='Jane' ").close(); - OResultSet result = database.command("update SomeTx set name='July' where name = 'Jane' "); + OResultSet result = db.command("update SomeTx set name='July' where name = 'Jane' "); assertTrue(result.hasNext()); assertEquals((long) result.next().getProperty("count"), 1L); result.close(); - OResultSet result1 = database.query("select from SomeTx where name='July'"); + OResultSet result1 = db.query("select from SomeTx where name='July'"); assertTrue(result1.hasNext()); assertEquals(result1.next().getProperty("name"), "July"); assertFalse(result.hasNext()); @@ -196,72 +172,72 @@ public void testQueryUpdateCreatedInTxSQLTransaction() { @Test public void testQueryDeleteTxSQLTransaction() { - OElement someTx = database.newElement("SomeTx"); + OElement someTx = db.newElement("SomeTx"); someTx.setProperty("name", "foo"); someTx.save(); - database.begin(); + db.begin(); - database.command("delete from SomeTx"); + db.command("delete from SomeTx"); - database.commit(); + db.commit(); - OResultSet result = database.command("select from SomeTx"); + OResultSet result = db.command("select from SomeTx"); assertFalse(result.hasNext()); result.close(); } @Test public void testDoubleSaveTransaction() { - database.begin(); - OElement someTx = database.newElement("SomeTx"); + db.begin(); + OElement someTx = db.newElement("SomeTx"); someTx.setProperty("name", "foo"); - database.save(someTx); - database.save(someTx); - assertEquals(database.getTransaction().getEntryCount(), 1); - assertEquals(database.countClass("SomeTx"), 1); - database.commit(); - assertEquals(database.countClass("SomeTx"), 1); + db.save(someTx); + db.save(someTx); + assertEquals(db.getTransaction().getEntryCount(), 1); + assertEquals(db.countClass("SomeTx"), 1); + db.commit(); + assertEquals(db.countClass("SomeTx"), 1); } @Test public void testDoubleSaveDoubleFlushTransaction() { - database.begin(); - OElement someTx = database.newElement("SomeTx"); + db.begin(); + OElement someTx = db.newElement("SomeTx"); someTx.setProperty("name", "foo"); - database.save(someTx); - database.save(someTx); - OResultSet result = database.query("select from SomeTx"); + db.save(someTx); + db.save(someTx); + OResultSet result = db.query("select from SomeTx"); assertEquals(1, result.stream().count()); result.close(); - database.save(someTx); - database.save(someTx); - result = database.query("select from SomeTx"); + db.save(someTx); + db.save(someTx); + result = db.query("select from SomeTx"); assertEquals(1, result.stream().count()); result.close(); - assertEquals(database.getTransaction().getEntryCount(), 1); - assertEquals(database.countClass("SomeTx"), 1); - database.commit(); - assertEquals(database.countClass("SomeTx"), 1); + assertEquals(db.getTransaction().getEntryCount(), 1); + assertEquals(db.countClass("SomeTx"), 1); + db.commit(); + assertEquals(db.countClass("SomeTx"), 1); } @Test public void testRefFlushedInTransaction() { - database.begin(); - OElement someTx = database.newElement("SomeTx"); + db.begin(); + OElement someTx = db.newElement("SomeTx"); someTx.setProperty("name", "foo"); - database.save(someTx); + db.save(someTx); - OElement oneMore = database.newElement("SomeTx"); + OElement oneMore = db.newElement("SomeTx"); oneMore.setProperty("name", "bar"); oneMore.setProperty("ref", someTx); - OResultSet result = database.query("select from SomeTx"); + OResultSet result = db.query("select from SomeTx"); assertEquals(1, result.stream().count()); result.close(); - database.save(oneMore); - database.commit(); - OResultSet result1 = database.query("select ref from SomeTx where name='bar'"); + db.save(oneMore); + db.commit(); + OResultSet result1 = db.query("select ref from SomeTx where name='bar'"); assertTrue(result1.hasNext()); assertEquals(someTx.getIdentity(), result1.next().getProperty("ref")); result1.close(); @@ -269,38 +245,38 @@ public void testRefFlushedInTransaction() { @Test public void testDoubleRefFlushedInTransaction() { - database.begin(); - OElement someTx = database.newElement("SomeTx"); + db.begin(); + OElement someTx = db.newElement("SomeTx"); someTx.setProperty("name", "foo"); - database.save(someTx); + db.save(someTx); - OElement oneMore = database.newElement("SomeTx"); + OElement oneMore = db.newElement("SomeTx"); oneMore.setProperty("name", "bar"); oneMore.setProperty("ref", someTx.getIdentity()); - OResultSet result = database.query("select from SomeTx"); + OResultSet result = db.query("select from SomeTx"); assertEquals(1, result.stream().count()); result.close(); - OElement ref2 = database.newElement("SomeTx"); + OElement ref2 = db.newElement("SomeTx"); ref2.setProperty("name", "other"); - database.save(ref2); + db.save(ref2); oneMore.setProperty("ref2", ref2.getIdentity()); - result = database.query("select from SomeTx"); + result = db.query("select from SomeTx"); assertEquals(2, result.stream().count()); result.close(); - database.save(oneMore); - OResultSet result1 = database.query("select ref,ref2 from SomeTx where name='bar'"); + db.save(oneMore); + OResultSet result1 = db.query("select ref,ref2 from SomeTx where name='bar'"); assertTrue(result1.hasNext()); OResult next = result1.next(); assertEquals(someTx.getIdentity(), next.getProperty("ref")); assertEquals(ref2.getIdentity(), next.getProperty("ref2")); result1.close(); - database.commit(); - result1 = database.query("select ref,ref2 from SomeTx where name='bar'"); + db.commit(); + result1 = db.query("select ref,ref2 from SomeTx where name='bar'"); assertTrue(result1.hasNext()); next = result1.next(); assertEquals(someTx.getIdentity(), next.getProperty("ref")); @@ -310,52 +286,52 @@ public void testDoubleRefFlushedInTransaction() { @Test public void testGenerateIdCounterTransaction() { - database.begin(); + db.begin(); ODocument doc = new ODocument("SomeTx"); doc.setProperty("name", "Jane"); - database.save(doc); + db.save(doc); - database.command("insert into SomeTx set name ='Jane1' ").close(); - database.command("insert into SomeTx set name ='Jane2' ").close(); + db.command("insert into SomeTx set name ='Jane1' ").close(); + db.command("insert into SomeTx set name ='Jane2' ").close(); ODocument doc1 = new ODocument("SomeTx"); doc1.setProperty("name", "Jane3"); - database.save(doc1); + db.save(doc1); doc1 = new ODocument("SomeTx"); doc1.setProperty("name", "Jane4"); - database.save(doc1); - database.command("insert into SomeTx set name ='Jane2' ").close(); + db.save(doc1); + db.command("insert into SomeTx set name ='Jane2' ").close(); - OResultSet result = database.command("select count(*) from SomeTx"); + OResultSet result = db.command("select count(*) from SomeTx"); System.out.println(result.getExecutionPlan().toString()); assertTrue(result.hasNext()); assertEquals((long) result.next().getProperty("count(*)"), 6L); result.close(); - assertTrue(database.getTransaction().isActive()); + assertTrue(db.getTransaction().isActive()); - database.commit(); + db.commit(); - OResultSet result1 = database.command("select count(*) from SomeTx "); + OResultSet result1 = db.command("select count(*) from SomeTx "); assertTrue(result1.hasNext()); assertEquals((long) result1.next().getProperty("count(*)"), 6L); result1.close(); - assertFalse(database.getTransaction().isActive()); + assertFalse(db.getTransaction().isActive()); } @Test public void testGraphInTx() { - database.createVertexClass("MyV"); - database.createEdgeClass("MyE"); - database.begin(); + db.createVertexClass("MyV"); + db.createEdgeClass("MyE"); + db.begin(); - OVertex v1 = database.newVertex("MyV"); - OVertex v2 = database.newVertex("MyV"); + OVertex v1 = db.newVertex("MyV"); + OVertex v2 = db.newVertex("MyV"); OEdge edge = v1.addEdge(v2, "MyE"); edge.setProperty("some", "value"); - database.save(v1); - OResultSet result1 = database.query("select out_MyE from MyV where out_MyE is not null"); + db.save(v1); + OResultSet result1 = db.query("select out_MyE from MyV where out_MyE is not null"); assertTrue(result1.hasNext()); ArrayList val = new ArrayList<>(); val.add(edge.getIdentity()); @@ -365,24 +341,24 @@ public void testGraphInTx() { @Test public void testRidbagsTx() { - database.begin(); + db.begin(); - OElement v1 = database.newElement("SomeTx"); - OElement v2 = database.newElement("SomeTx"); - database.save(v2); + OElement v1 = db.newElement("SomeTx"); + OElement v2 = db.newElement("SomeTx"); + db.save(v2); ORidBag ridbag = new ORidBag(); ridbag.add(v2.getIdentity()); v1.setProperty("rids", ridbag); - database.save(v1); - OResultSet result1 = database.query("select rids from SomeTx where rids is not null"); + db.save(v1); + OResultSet result1 = db.query("select rids from SomeTx where rids is not null"); assertTrue(result1.hasNext()); - OElement v3 = database.newElement("SomeTx"); - database.save(v3); + OElement v3 = db.newElement("SomeTx"); + db.save(v3); ArrayList val = new ArrayList<>(); val.add(v2.getIdentity()); assertEquals(result1.next().getProperty("rids"), val); result1.close(); - result1 = database.query("select rids from SomeTx where rids is not null"); + result1 = db.query("select rids from SomeTx where rids is not null"); assertTrue(result1.hasNext()); assertEquals(result1.next().getProperty("rids"), val); result1.close(); @@ -390,68 +366,57 @@ public void testRidbagsTx() { @Test public void testProperIndexingOnDoubleInternalBegin() { - database.begin(OTransaction.TXTYPE.OPTIMISTIC); + db.begin(OTransaction.TXTYPE.OPTIMISTIC); - OElement idx = database.newElement("IndexedTx"); + OElement idx = db.newElement("IndexedTx"); idx.setProperty("name", FIELD_VALUE); - database.save(idx); - OElement someTx = database.newElement("SomeTx"); + db.save(idx); + OElement someTx = db.newElement("SomeTx"); someTx.setProperty("name", "foo"); - ORecord id = database.save(someTx); - try (OResultSet rs = database.query("select from ?", id)) {} + ORecord id = db.save(someTx); + try (OResultSet rs = db.query("select from ?", id)) {} - database.commit(); + db.commit(); // nothing is found (unexpected behaviour) - try (OResultSet rs = database.query("select * from IndexedTx where name = ?", FIELD_VALUE)) { + try (OResultSet rs = db.query("select * from IndexedTx where name = ?", FIELD_VALUE)) { assertEquals(rs.stream().count(), 1); } } @Test(expected = ORecordDuplicatedException.class) public void testDuplicateIndexTx() { - database.begin(); + db.begin(); - OElement v1 = database.newElement("UniqueIndexedTx"); + OElement v1 = db.newElement("UniqueIndexedTx"); v1.setProperty("name", "a"); - database.save(v1); + db.save(v1); - OElement v2 = database.newElement("UniqueIndexedTx"); + OElement v2 = db.newElement("UniqueIndexedTx"); v2.setProperty("name", "a"); - database.save(v2); - database.commit(); + db.save(v2); + db.commit(); } @Test public void testKilledSession() { - database.begin(); - OElement v2 = database.newElement("SomeTx"); + db.begin(); + OElement v2 = db.newElement("SomeTx"); v2.setProperty("name", "a"); - database.save(v2); + db.save(v2); - OResultSet result1 = database.query("select rids from SomeTx "); + OResultSet result1 = db.query("select rids from SomeTx "); assertTrue(result1.hasNext()); result1.close(); for (OClientConnection conn : server.getClientConnectionManager().getConnections()) { conn.close(); } - database.activateOnCurrentThread(); + db.activateOnCurrentThread(); - database.commit(); - result1 = database.query("select rids from SomeTx "); + db.commit(); + result1 = db.query("select rids from SomeTx "); assertTrue(result1.hasNext()); result1.close(); } - - @After - public void after() { - database.close(); - orientDB.close(); - server.shutdown(); - - Orient.instance().shutdown(); - OFileUtils.deleteRecursively(new File(SERVER_DIRECTORY)); - Orient.instance().startup(); - } }