package com.orientechnologies.orient.core.sql.select;
import com.orientechnologies.orient.core.db.document.ODatabaseDocument;
import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx;
import com.orientechnologies.orient.core.metadata.schema.OClass;
import com.orientechnologies.orient.core.metadata.schema.OType;
import com.orientechnologies.orient.core.record.impl.ODocument;
import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import static org.junit.Assert.assertTrue;
/**
* Created by tglman on 21/07/16.
*/
public class TestNullFieldQuery {
private ODatabaseDocument database;
@Before
public void before() {
database = new ODatabaseDocumentTx("memory:" + TestNullFieldQuery.class.getSimpleName());
database.create();
}
@After
public void after() {
database.drop();
}
@Test
public void testQueryNullValue() {
database.getMetadata().getSchema().createClass("Test");
ODocument doc = new ODocument("Test");
doc.field("name", (Object) null);
database.save(doc);
List<ODocument> res = database.query(new OSQLSynchQuery<ODocument>("select from Test where name= 'some' "));
assertTrue(res.isEmpty());
}
@Test
public void testQueryNullValueSchemaFull() {
OClass clazz = database.getMetadata().getSchema().createClass("Test");
clazz.createProperty("name", OType.ANY);
ODocument doc = new ODocument("Test");
doc.field("name", (Object) null);
database.save(doc);
List<ODocument> res = database.query(new OSQLSynchQuery<ODocument>("select from Test where name= 'some' "));
assertTrue(res.isEmpty());
}
}