package com.bagri.core.test;
import static com.bagri.support.util.FileUtils.readTextFile;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import com.bagri.core.model.Document;
public abstract class DocumentManagementTest extends BagriManagementTest {
@Test
public void createSecurityTest() throws Exception {
long txId = getTxManagement().beginTransaction();
String uri = getFileName("security1500.xml");
Document doc = createDocumentTest(sampleRoot + uri);
assertNotNull(doc);
uris.add(doc.getUri());
assertEquals(txId, doc.getTxStart());
assertEquals(0, doc.getTxFinish());
assertEquals(uri, doc.getUri());
getTxManagement().commitTransaction(txId);
}
@Test
public void updateSecurityTest() throws Exception {
long txId = getTxManagement().beginTransaction();
Document doc = createDocumentTest(sampleRoot + getFileName("security1500.xml"));
assertNotNull(doc);
uris.add(doc.getUri());
assertEquals(txId, doc.getTxStart());
assertEquals(0, doc.getTxFinish());
getTxManagement().commitTransaction(txId);
int version = doc.getVersion();
String uri = doc.getUri();
txId = getTxManagement().beginTransaction();
doc = updateDocumentTest(uri, sampleRoot + getFileName("security9012.xml"));
assertNotNull(doc);
uris.add(doc.getUri());
assertEquals(txId, doc.getTxStart());
assertEquals(0, doc.getTxFinish());
assertEquals(++version, doc.getVersion());
assertEquals(uri, doc.getUri());
getTxManagement().commitTransaction(txId);
txId = getTxManagement().beginTransaction();
doc = updateDocumentTest(uri, sampleRoot + getFileName("security5621.xml"));
assertNotNull(doc);
uris.add(doc.getUri());
assertEquals(txId, doc.getTxStart());
assertEquals(0, doc.getTxFinish());
assertEquals(++version, doc.getVersion());
assertEquals(uri, doc.getUri());
getTxManagement().commitTransaction(txId);
}
@Test
public void removeSecurityTest() throws Exception {
long txId = getTxManagement().beginTransaction();
Document doc = createDocumentTest(sampleRoot + getFileName("security1500.xml"));
assertNotNull(doc);
uris.add(doc.getUri());
assertEquals(txId, doc.getTxStart());
assertEquals(0, doc.getTxFinish());
getTxManagement().commitTransaction(txId);
long docKey = doc.getDocumentKey();
long txId2 = getTxManagement().beginTransaction();
removeDocumentTest(doc.getUri());
doc = getDocManagement().getDocument(doc.getUri());
// now it is null.. think about it - is it correct or not?
//assertNotNull(doc);
//assertEquals(txId, doc.getTxStart());
//assertEquals(txId2, doc.getTxFinish());
//assertEquals(docId, doc.getDocumentId());
//assertEquals(docKey, doc.getDocumentKey());
//assertTrue(doc.getVersion() == ++version);
//assertEquals(doc.getUri(), uri);
getTxManagement().commitTransaction(txId2);
//uris.add(doc.getUri());
//doc = getDocManagement().getDocument(docKey);
//assertNull(doc);
}
@Test
public void selectSecurityTest() throws Exception {
long txId = getTxManagement().beginTransaction();
String fileName = sampleRoot + getFileName("security1500.xml");
String xml = readTextFile(fileName);
Document doc = createDocumentTest(fileName);
assertNotNull(doc);
uris.add(doc.getUri());
assertEquals(txId, doc.getTxStart());
assertEquals(0, doc.getTxFinish());
getTxManagement().commitTransaction(txId);
String result = getDocManagement().getDocumentAsString(doc.getUri(), null);
assertNotNull(result);
assertEquals(xml.length(), result.length());
}
}