use of com.orientechnologies.orient.core.db.document.ODatabaseDocument in project orientdb by orientechnologies.
the class DepthFetchPlanTest method testFullDepthFetchPlan.
@Test
public void testFullDepthFetchPlan() {
ODatabaseDocument database = new ODatabaseDocumentTx("memory:" + DepthFetchPlanTest.class.getSimpleName());
database.create();
try {
database.getMetadata().getSchema().createClass("Test");
ODocument doc = new ODocument("Test");
ODocument doc1 = new ODocument("Test");
ODocument doc2 = new ODocument("Test");
ODocument doc3 = new ODocument("Test");
doc.field("name", "name");
database.save(doc);
doc1.field("name", "name1");
doc1.field("ref", doc);
database.save(doc1);
doc2.field("name", "name2");
doc2.field("ref", doc1);
database.save(doc2);
doc3.field("name", "name2");
doc3.field("ref", doc2);
database.save(doc3);
OFetchContext context = new ORemoteFetchContext();
CountFetchListener listener = new CountFetchListener();
OFetchHelper.fetch(doc3, doc3, OFetchHelper.buildFetchPlan("[*]ref:-1"), listener, context, "");
assertEquals(3, listener.count);
} finally {
database.drop();
}
}
use of com.orientechnologies.orient.core.db.document.ODatabaseDocument in project orientdb by orientechnologies.
the class DepthFetchPlanTest method testFetchPlanDepth.
@Test
public void testFetchPlanDepth() {
ODatabaseDocument database = new ODatabaseDocumentTx("memory:" + DepthFetchPlanTest.class.getSimpleName());
database.create();
try {
database.getMetadata().getSchema().createClass("Test");
ODocument doc = new ODocument("Test");
ODocument doc1 = new ODocument("Test");
ODocument doc2 = new ODocument("Test");
doc.field("name", "name");
database.save(doc);
doc1.field("name", "name1");
doc1.field("ref", doc);
database.save(doc1);
doc2.field("name", "name2");
doc2.field("ref", doc1);
database.save(doc2);
OFetchContext context = new ORemoteFetchContext();
CountFetchListener listener = new CountFetchListener();
OFetchHelper.fetch(doc2, doc2, OFetchHelper.buildFetchPlan("ref:1 *:-2"), listener, context, "");
assertEquals(1, listener.count);
} finally {
database.drop();
}
}
use of com.orientechnologies.orient.core.db.document.ODatabaseDocument in project orientdb by orientechnologies.
the class OSQLFunctionConvertTest method testSQLConversions.
@Test
public void testSQLConversions() {
ODatabaseDocument db = new ODatabaseDocumentTx("memory:testSQLConvert");
try {
db.create();
db.command(new OCommandSQL("create class TestConversion")).execute();
db.command(new OCommandSQL("insert into TestConversion set string = 'Jay', date = sysdate(), number = 33")).execute();
ODocument doc = (ODocument) db.query(new OSQLSynchQuery<ODocument>("select from TestConversion limit 1")).get(0);
db.command(new OCommandSQL("update TestConversion set selfrid = 'foo" + doc.getIdentity() + "'")).execute();
List<ODocument> results = db.query(new OSQLSynchQuery<ODocument>("select string.asString() as convert from TestConversion"));
assertNotNull(results);
assertEquals(results.size(), 1);
assertTrue(results.get(0).field("convert") instanceof String);
results = db.query(new OSQLSynchQuery<ODocument>("select number.asDate() as convert from TestConversion"));
assertNotNull(results);
assertEquals(results.size(), 1);
assertTrue(results.get(0).field("convert") instanceof Date);
results = db.query(new OSQLSynchQuery<ODocument>("select number.asDateTime() as convert from TestConversion"));
assertNotNull(results);
assertEquals(results.size(), 1);
assertTrue(results.get(0).field("convert") instanceof Date);
results = db.query(new OSQLSynchQuery<ODocument>("select number.asInteger() as convert from TestConversion"));
assertNotNull(results);
assertEquals(results.size(), 1);
assertTrue(results.get(0).field("convert") instanceof Integer);
results = db.query(new OSQLSynchQuery<ODocument>("select number.asLong() as convert from TestConversion"));
assertNotNull(results);
assertEquals(results.size(), 1);
assertTrue(results.get(0).field("convert") instanceof Long);
results = db.query(new OSQLSynchQuery<ODocument>("select number.asFloat() as convert from TestConversion"));
assertNotNull(results);
assertEquals(results.size(), 1);
assertTrue(results.get(0).field("convert") instanceof Float);
results = db.query(new OSQLSynchQuery<ODocument>("select number.asDecimal() as convert from TestConversion"));
assertNotNull(results);
assertEquals(results.size(), 1);
assertTrue(results.get(0).field("convert") instanceof BigDecimal);
results = db.query(new OSQLSynchQuery<ODocument>("select number.convert('LONG') as convert from TestConversion"));
assertNotNull(results);
assertEquals(results.size(), 1);
assertTrue(results.get(0).field("convert") instanceof Long);
results = db.query(new OSQLSynchQuery<ODocument>("select number.convert('SHORT') as convert from TestConversion"));
assertNotNull(results);
assertEquals(results.size(), 1);
assertTrue(results.get(0).field("convert") instanceof Short);
results = db.query(new OSQLSynchQuery<ODocument>("select number.convert('DOUBLE') as convert from TestConversion"));
assertNotNull(results);
assertEquals(results.size(), 1);
assertTrue(results.get(0).field("convert") instanceof Double);
results = db.query(new OSQLSynchQuery<ODocument>("select selfrid.substring(3).convert('LINK').string as convert from TestConversion"));
assertNotNull(results);
assertEquals(results.size(), 1);
assertEquals(results.get(0).field("convert"), "Jay");
} finally {
db.drop();
}
}
use of com.orientechnologies.orient.core.db.document.ODatabaseDocument in project orientdb by orientechnologies.
the class OFunctionSqlTest method functionSqlWithParameters.
@Test
public void functionSqlWithParameters() {
ODatabaseDocument db = new ODatabaseDocumentTx("memory:functionSqlWithParameters");
db.create();
// ODatabaseRecordThreadLocal.INSTANCE.set(db);
ODocument doc1 = new ODocument("Test");
doc1.field("name", "Enrico");
db.save(doc1);
doc1.reset();
doc1.setClassName("Test");
doc1.field("name", "Luca");
db.save(doc1);
OFunction function = new OFunction();
function.setName("test");
function.setCode("select from Test where name = :name");
function.setParameters(new ArrayList<String>() {
{
add("name");
}
});
function.save();
Object result = function.executeInContext(new OBasicCommandContext(), "Enrico");
System.out.println(result);
Assert.assertEquals(((OResultSet) result).size(), 1);
db.drop();
}
use of com.orientechnologies.orient.core.db.document.ODatabaseDocument in project orientdb by orientechnologies.
the class SQLAlterClassTest method testQuoted.
@Test
public void testQuoted() {
ODatabaseDocument db = new ODatabaseDocumentTx("memory:" + SQLAlterClassTest.class.getName() + "_Quoted");
db.create();
try {
try {
db.command(new OCommandSQL("create class `Client-Type`")).execute();
db.command(new OCommandSQL("alter class `Client-Type` addcluster `client-type_usa`")).execute();
db.command(new OCommandSQL("insert into `Client-Type` set foo = 'bar'")).execute();
List<?> result = db.query(new OSQLSynchQuery<Object>("Select from `Client-Type`"));
Assert.assertEquals(result.size(), 1);
} catch (OCommandSQLParsingException ex) {
Assert.fail();
}
} finally {
db.drop();
}
}
Aggregations