use of org.structr.core.Result in project structr by structr.
the class SearchAndSortingTest method test09SearchByEmptyStringField.
@Test
public void test09SearchByEmptyStringField() {
try {
PropertyMap props = new PropertyMap();
AbstractNode node = createTestNode(TestOne.class, props);
try (final Tx tx = app.tx()) {
Result result = app.nodeQuery(TestOne.class).and(TestOne.aString, null).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.Result in project structr by structr.
the class SearchAndSortingTest method test03SortByDate.
@Test
public void test03SortByDate() {
try {
Class type = TestOne.class;
int number = 97;
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, "TestOne-" + name);
node.setProperty(TestOne.aDate, new Date());
// 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 = TestOne.aDate;
boolean sortDesc = false;
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 < Math.min(result.size(), pageSize); j++) {
String expectedName = "TestOne-" + (offset + j);
String gotName = result.get(j).getProperty(AbstractNode.name);
System.out.println(expectedName + ", got: " + gotName);
assertEquals(expectedName, gotName);
}
tx.success();
}
} catch (FrameworkException ex) {
logger.error(ex.toString());
fail("Unexpected exception");
}
}
use of org.structr.core.Result in project structr by structr.
the class SearchAndSortingTest method testPaging.
// ----- private methods -----
private void testPaging(final Class type, final int pageSize, final int page, final int number, final int offset, final boolean includeDeletedAndHidden, final boolean publicOnly, final PropertyKey sortKey, final boolean sortDesc) throws FrameworkException {
final Query query = app.nodeQuery(type).sort(sortKey).order(sortDesc).page(page).pageSize(pageSize);
if (includeDeletedAndHidden) {
query.includeDeletedAndHidden();
}
final Result result = query.getResult();
logger.info("===================================================\nRaw result size: {}, expected: {} (page size: {}, page: {})", new Object[] { result.getRawResultCount(), number, pageSize, page });
assertTrue(result.getRawResultCount() == ((pageSize == 0 || page == 0) ? 0 : number));
long expectedResultCount = (pageSize == 0 || page == 0) ? 0 : Math.min(number, pageSize);
int startIndex = (Math.max(page, 1) - 1) * pageSize;
logger.info("Result size: {}, expected: {}, start index: {}", new Object[] { result.size(), expectedResultCount, startIndex });
assertTrue(result.size() == expectedResultCount);
for (int j = 0; j < expectedResultCount; j++) {
String expectedName = "TestOne-" + (offset + j + startIndex);
String gotName = result.get(j).getProperty(AbstractNode.name);
System.out.println(expectedName + ", got: " + gotName);
assertEquals(expectedName, gotName);
}
}
use of org.structr.core.Result in project structr by structr.
the class SearchAndSortingTest method test02SortByNameDesc.
@Test
public void test02SortByNameDesc() {
try {
Class type = TestOne.class;
int number = 43;
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);
}
tx.success();
}
try (final Tx tx = app.tx()) {
Result result = app.nodeQuery(type).getResult();
assertEquals(number, result.size());
PropertyKey sortKey = AbstractNode.name;
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(), Math.min(number, pageSize) });
assertTrue(result.size() == Math.min(number, pageSize));
for (int j = 0; j < Math.min(result.size(), 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");
}
}
use of org.structr.core.Result in project structr by structr.
the class SearchAndSortingTest method test06DistanceSearchOnEmptyDB.
@Test
public void test06DistanceSearchOnEmptyDB() {
try (final Tx tx = app.tx()) {
Result result = app.nodeQuery(TestOne.class).location("Hanauer Landstraße", "200", "60314", "Frankfurt", "Germany", 10.0).includeDeletedAndHidden().getResult();
assertEquals(0, result.size());
} catch (FrameworkException ex) {
logger.warn("", ex);
logger.error(ex.toString());
fail("Unexpected exception");
}
}
Aggregations