package com.orientechnologies.orient.core.db.document;
import com.orientechnologies.orient.core.exception.ODatabaseException;
import com.orientechnologies.orient.core.exception.OSchemaException;
import com.orientechnologies.orient.core.metadata.schema.OClass;
import com.orientechnologies.orient.core.metadata.schema.OSchema;
import com.orientechnologies.orient.core.record.ORecord;
import com.orientechnologies.orient.core.record.impl.ODocument;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* Created by tglman on 04/11/15.
*/
public class ODatabaseDocumentSaveClusterTest {
private ODatabaseDocument db;
@Before
public void before() {
db = new ODatabaseDocumentTx("memory:" + ODatabaseDocumentSaveClusterTest.class.getSimpleName());
db.create();
}
@Test(expected = IllegalArgumentException.class)
public void testSaveWrongCluster() {
db.getMetadata().getSchema().createClass("test");
db.addCluster("test_one");
db.save(new ODocument("test"), "test_one");
}
@Test(expected = OSchemaException.class)
public void testUsedClusterTest() {
OClass clazz = db.getMetadata().getSchema().createClass("test");
db.addCluster("test_one");
clazz.addCluster("test_one");
OClass clazz2 = db.getMetadata().getSchema().createClass("test2");
clazz2.addCluster("test_one");
}
@Test
public void testSaveCluster() {
OClass clazz = db.getMetadata().getSchema().createClass("test");
int res = db.addCluster("test_one");
clazz.addCluster("test_one");
ORecord saved = db.save(new ODocument("test"), "test_one");
Assert.assertEquals(saved.getIdentity().getClusterId(), res);
}
@Test
public void testDeleteClassAndClusters() {
OClass clazz = db.getMetadata().getSchema().createClass("test");
int res = db.addCluster("test_one");
clazz.addCluster("test_one");
ORecord saved = db.save(new ODocument("test"), "test_one");
Assert.assertEquals(saved.getIdentity().getClusterId(), res);
db.getMetadata().getSchema().dropClass(clazz.getName());
Assert.assertFalse(db.existsCluster("test_one"));
}
@After
public void after() {
db.drop();
}
}