use of org.structr.core.property.PropertyKey in project structr by structr.
the class SearchAndSortingTest method test02Paging.
/**
* Test different pages and page sizes
*/
@Test
public void test02Paging() {
try {
boolean includeDeletedAndHidden = false;
boolean publicOnly = false;
Class type = TestOne.class;
// no more than 89 to avoid sort order TestOne-10, TestOne-100 ...
int number = 89;
final int offset = 10;
final List<NodeInterface> nodes = this.createTestNodes(type, number);
Collections.shuffle(nodes, new Random(System.nanoTime()));
try (final Tx tx = app.tx()) {
int i = offset;
for (NodeInterface node : nodes) {
// System.out.println("Node ID: " + node.getNodeId());
String _name = "TestOne-" + i;
i++;
node.setProperty(AbstractNode.name, _name);
}
tx.success();
}
try (final Tx tx = app.tx()) {
Result result = app.nodeQuery(type).getResult();
assertEquals(number, result.size());
PropertyKey sortKey = AbstractNode.name;
boolean sortDesc = false;
// test pages sizes from 0 to 10
for (int ps = 0; ps < 10; ps++) {
// test all pages
for (int p = 0; p < (number / Math.max(1, ps)) + 1; p++) {
testPaging(type, ps, p, number, offset, includeDeletedAndHidden, publicOnly, sortKey, sortDesc);
}
}
}
} catch (FrameworkException ex) {
logger.warn("", ex);
logger.error(ex.toString());
fail("Unexpected exception");
}
}
use of org.structr.core.property.PropertyKey in project structr by structr.
the class SearchAndSortingTest method test08SearchByStaticMethodWithNullSearchValue01.
@Test
public void test08SearchByStaticMethodWithNullSearchValue01() {
try {
PropertyMap props = new PropertyMap();
final PropertyKey key = AbstractNode.name;
final String name = "abc";
props.put(key, name);
createTestNode(TestOne.class, props);
try (final Tx tx = app.tx()) {
Result result = app.nodeQuery(TestOne.class).andName(null).includeDeletedAndHidden().getResult();
assertTrue(result.isEmpty());
}
} catch (FrameworkException ex) {
logger.warn("", ex);
logger.error(ex.toString());
fail("Unexpected exception");
}
}
use of org.structr.core.property.PropertyKey in project structr by structr.
the class SearchAndSortingTest method test03SearchRelationship.
@Test
public void test03SearchRelationship() {
try {
final NodeHasLocation rel = createTestRelationships(NodeHasLocation.class, 1).get(0);
final PropertyKey key1 = new StringProperty("jghsdkhgshdhgsdjkfgh").indexed();
final Class type = NodeHasLocation.class;
final String val1 = "54354354546806849870";
final Result<RelationshipInterface> result;
try (final Tx tx = app.tx()) {
rel.setProperty(key1, val1);
tx.success();
}
try (final Tx tx = app.tx()) {
assertTrue(rel.getProperty(key1).equals(val1));
result = app.relationshipQuery(type).and(key1, val1).getResult();
assertTrue(result.size() == 1);
assertTrue(result.get(0).equals(rel));
}
final String val2 = "ölllldjöoa8w4rasf";
try (final Tx tx = app.tx()) {
rel.setProperty(key1, val2);
tx.success();
}
assertTrue(result.size() == 1);
assertTrue(result.get(0).equals(rel));
} catch (FrameworkException ex) {
logger.warn("", ex);
logger.error(ex.toString());
fail("Unexpected exception");
}
}
use of org.structr.core.property.PropertyKey in project structr by structr.
the class SearchAndSortingTest method test07SearchByStaticMethod01.
@Test
public void test07SearchByStaticMethod01() {
try {
PropertyMap props = new PropertyMap();
final PropertyKey key = AbstractNode.name;
final String name = "89w3hkl sdfghsdkljth";
props.put(key, name);
final AbstractNode node = createTestNode(TestOne.class, props);
try (final Tx tx = app.tx()) {
Result result = app.nodeQuery(TestOne.class).andName(name).includeDeletedAndHidden().getResult();
assertTrue(result.size() == 1);
assertTrue(result.get(0).equals(node));
}
} catch (FrameworkException ex) {
logger.warn("", ex);
logger.error(ex.toString());
fail("Unexpected exception");
}
}
use of org.structr.core.property.PropertyKey in project structr by structr.
the class SearchAndSortingTest method test04SortByDateDesc.
@Test
public void test04SortByDateDesc() {
try {
Class type = TestOne.class;
int number = 131;
final List<NodeInterface> nodes = this.createTestNodes(type, number);
final int offset = 10;
Collections.shuffle(nodes, new Random(System.nanoTime()));
try (final Tx tx = app.tx()) {
int i = offset;
String name;
for (NodeInterface node : nodes) {
name = Integer.toString(i);
i++;
node.setProperty(AbstractNode.name, name);
// slow down execution speed to make sure distinct changes fall in different milliseconds
try {
Thread.sleep(2);
} catch (Throwable t) {
}
}
tx.success();
}
try (final Tx tx = app.tx()) {
Result result = app.nodeQuery(type).getResult();
assertEquals(number, result.size());
PropertyKey sortKey = AbstractNode.lastModifiedDate;
boolean sortDesc = true;
int pageSize = 10;
int page = 1;
result = app.nodeQuery(type).sort(sortKey).order(sortDesc).page(page).pageSize(pageSize).getResult();
logger.info("Raw result size: {}, expected: {}", new Object[] { result.getRawResultCount(), number });
assertTrue(result.getRawResultCount() == number);
logger.info("Result size: {}, expected: {}", new Object[] { result.size(), pageSize });
assertTrue(result.size() == Math.min(number, pageSize));
for (int j = 0; j < pageSize; j++) {
int expectedNumber = number + offset - 1 - j;
String gotName = result.get(j).getProperty(AbstractNode.name);
System.out.println(expectedNumber + ", got: " + gotName);
assertEquals(Integer.toString(expectedNumber), gotName);
}
tx.success();
}
} catch (FrameworkException ex) {
logger.error(ex.toString());
fail("Unexpected exception");
}
}
Aggregations