protected GraphDatabaseAPI db() { return rule.getGraphDatabaseAPI(); }
private Neo4jMatchers.Deferred<Label> labels( final Node myNode ) { return new Neo4jMatchers.Deferred<Label>( dbRule.getGraphDatabaseAPI() ) { @Override protected Iterable<Label> manifest() { return myNode.getLabels(); } }; } }
@Before public void init() { db = dbRule.getGraphDatabaseAPI(); }
private IndexHits<Node> queryIndex( Index<Node> index ) { GraphDatabaseService graphDatabaseService = dbRule.getGraphDatabaseAPI(); try ( Transaction ignored = graphDatabaseService.beginTx() ) { IndexHits<Node> hits = index.get( "foo", 42 ); hits.close(); return hits; } } }
@Before public void setup() { db = dbRule.getGraphDatabaseAPI(); kernel = db.getDependencyResolver().resolveDependency( Kernel.class ); }
@Before public void setup() throws Exception { dataDirectory = createTempDir(); dbFactory = new SimpleGraphFactory( (GraphDatabaseFacade) dbRule.getGraphDatabaseAPI() ); dbConfig = Config.defaults( GraphDatabaseSettings.data_directory, dataDirectory.getAbsolutePath() ); theDatabase = newDatabase(); }
@Test public void searchingByLabelAndPropertyReturnsEmptyWhenMissingLabelOrProperty() { // Given GraphDatabaseService beansAPI = dbRule.getGraphDatabaseAPI(); // When/Then assertThat( findNodesByLabelAndProperty( LABEL1, "name", "Hawking", beansAPI ), isEmpty() ); }
private Index<Node> createIndex() { GraphDatabaseService graphDatabaseService = dbRule.getGraphDatabaseAPI(); try ( Transaction transaction = graphDatabaseService.beginTx() ) { Index<Node> index = graphDatabaseService.index().forNodes( "foo" ); transaction.success(); return index; } }
@Test public void createNodeWithLabels() { // GIVEN GraphDatabaseService db = dbRule.getGraphDatabaseAPI(); // WHEN Node node = null; try ( Transaction tx = db.beginTx() ) { node = db.createNode( Labels.values() ); tx.success(); } // THEN Set<String> names = Stream.of( Labels.values() ).map( Labels::name ).collect( toSet() ); assertThat( node, inTx( db, hasLabels( names ) ) ); }
@Test public void shouldReturnEmptyListIfNoLabels() { // GIVEN GraphDatabaseService beansAPI = dbRule.getGraphDatabaseAPI(); Node node = createNode( beansAPI ); // WHEN THEN assertThat( node, inTx( beansAPI, hasNoLabels() ) ); }
@Test public void searchingForNodeByPropertyShouldWorkWithoutIndex() { // Given GraphDatabaseService beansAPI = dbRule.getGraphDatabaseAPI(); Node myNode = createNode( beansAPI, map( "name", "Hawking" ), LABEL1 ); // When assertThat( findNodesByLabelAndProperty( LABEL1, "name", "Hawking", beansAPI ), containsOnly( myNode ) ); }
@Test public void searchingUsesIndexWhenItExists() { // Given GraphDatabaseService beansAPI = dbRule.getGraphDatabaseAPI(); Node myNode = createNode( beansAPI, map( "name", "Hawking" ), LABEL1 ); Neo4jMatchers.createIndex( beansAPI, LABEL1, "name" ); // When assertThat( findNodesByLabelAndProperty( LABEL1, "name", "Hawking", beansAPI ), containsOnly( myNode ) ); }
@Test public void removingExistingLabelFromUnlabeledNode() { // Given GraphDatabaseService beansAPI = dbRule.getGraphDatabaseAPI(); Label label = Labels.MY_LABEL; createNode( beansAPI, label ); Node myNode = createNode( beansAPI ); // When try ( Transaction tx = beansAPI.beginTx() ) { myNode.removeLabel( label ); tx.success(); } // THEN assertThat( myNode, not( inTx( beansAPI, hasLabel( label ) ) ) ); }
@Test public void testPropertyStoreReferencesOnWrite() throws Throwable { // Given GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); // and Given the cache contains a LazyProperty long nId = ensurePropertyIsCachedLazyProperty( db, "some" ); // When restartNeoDataSource( db ); // Then it should still be possible to manipulate properties on this node try ( Transaction tx = db.beginTx() ) { db.getNodeById( nId ).setProperty( "some", new long[]{-1, 2, 2, 3, 4, 5, 5} ); tx.success(); } }
@Test public void createdNodeShouldShowUpWithinTransaction() { // GIVEN GraphDatabaseService beansAPI = dbRule.getGraphDatabaseAPI(); Neo4jMatchers.createIndex( beansAPI, LABEL1, "name" ); // WHEN Transaction tx = beansAPI.beginTx(); Node firstNode = createNode( beansAPI, map( "name", "Mattias" ), LABEL1 ); long sizeBeforeDelete = count( beansAPI.findNodes( LABEL1, "name", "Mattias" ) ); firstNode.delete(); long sizeAfterDelete = count( beansAPI.findNodes( LABEL1, "name", "Mattias" ) ); tx.close(); // THEN assertThat( sizeBeforeDelete, equalTo(1L) ); assertThat( sizeAfterDelete, equalTo(0L) ); }
@Test public void shouldListAllExistingLabels() { // Given GraphDatabaseService db = dbRule.getGraphDatabaseAPI(); createNode( db, Labels.MY_LABEL, Labels.MY_OTHER_LABEL ); List<Label> labels = null; // When try ( Transaction tx = db.beginTx() ) { labels = asList( db.getAllLabels() ); } // Then assertEquals( 2, labels.size() ); assertThat( map( Label::name, labels ), hasItems( Labels.MY_LABEL.name(), Labels.MY_OTHER_LABEL.name() ) ); }
@Before public void setup() throws Exception { graphDatabaseAPI = dbRule.getGraphDatabaseAPI(); kernel = graphDatabaseAPI.getDependencyResolver().resolveDependency( Kernel.class ); newTransaction(); transaction.schemaWrite().uniquePropertyConstraintCreate( forLabel( label, propertyIds() ) ); commit(); }
@Test public void nodeWithManyLabels() { int labels = 500; int halveLabels = labels / 2; GraphDatabaseService db = dbRule.getGraphDatabaseAPI(); long nodeId = createNode( db ).getId(); addLabels( nodeId, 0, halveLabels ); addLabels( nodeId, halveLabels, halveLabels ); verifyLabels( nodeId, 0, labels ); removeLabels( nodeId, halveLabels, halveLabels ); verifyLabels( nodeId, 0, halveLabels ); removeLabels( nodeId, 0, halveLabels - 2 ); verifyLabels( nodeId, halveLabels - 2, 2 ); }
@Test public void shouldSeeIndexUpdatesWhenQueryingOutsideTransaction() { // GIVEN GraphDatabaseService beansAPI = dbRule.getGraphDatabaseAPI(); Neo4jMatchers.createIndex( beansAPI, LABEL1, "name" ); Node firstNode = createNode( beansAPI, map( "name", "Mattias" ), LABEL1 ); // WHEN THEN assertThat( findNodesByLabelAndProperty( LABEL1, "name", "Mattias", beansAPI ), containsOnly( firstNode ) ); Node secondNode = createNode( beansAPI, map( "name", "Taylor" ), LABEL1 ); assertThat( findNodesByLabelAndProperty( LABEL1, "name", "Taylor", beansAPI ), containsOnly( secondNode ) ); }
@Test public void getNodesWithLabelCommitted() { // Given GraphDatabaseService beansAPI = dbRule.getGraphDatabaseAPI(); // When Node node = null; try ( Transaction tx = beansAPI.beginTx() ) { node = beansAPI.createNode(); node.addLabel( Labels.MY_LABEL ); tx.success(); } // THEN assertThat( beansAPI, inTx( beansAPI, hasNodes( Labels.MY_LABEL, node ) ) ); assertThat( beansAPI, inTx( beansAPI, hasNoNodes( Labels.MY_OTHER_LABEL ) ) ); }