Search in sources :

Example 1 with Node

use of org.neo4j.graphdb.Node in project neo4j by neo4j.

the class TestGraphProperties method firstRecordOtherThanZeroIfNotFirst.

@Test
public void firstRecordOtherThanZeroIfNotFirst() throws Exception {
    File storeDir = new File("/store/dir").getAbsoluteFile();
    GraphDatabaseAPI db = (GraphDatabaseAPI) factory.newImpermanentDatabase(storeDir);
    Transaction tx = db.beginTx();
    Node node = db.createNode();
    node.setProperty("name", "Yo");
    tx.success();
    tx.close();
    db.shutdown();
    db = (GraphDatabaseAPI) factory.newImpermanentDatabase(storeDir);
    tx = db.beginTx();
    properties(db).setProperty("test", "something");
    tx.success();
    tx.close();
    db.shutdown();
    Config config = Config.embeddedDefaults(Collections.emptyMap());
    StoreFactory storeFactory = new StoreFactory(storeDir, config, new DefaultIdGeneratorFactory(fs.get()), pageCacheRule.getPageCache(fs.get()), fs.get(), NullLogProvider.getInstance());
    NeoStores neoStores = storeFactory.openAllNeoStores();
    long prop = neoStores.getMetaDataStore().getGraphNextProp();
    assertTrue(prop != 0);
    neoStores.close();
}
Also used : GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Transaction(org.neo4j.graphdb.Transaction) Config(org.neo4j.kernel.configuration.Config) Node(org.neo4j.graphdb.Node) DefaultIdGeneratorFactory(org.neo4j.kernel.impl.store.id.DefaultIdGeneratorFactory) File(java.io.File) Test(org.junit.Test)

Example 2 with Node

use of org.neo4j.graphdb.Node in project neo4j by neo4j.

the class TestGraphProperties method produceUncleanStore.

private EphemeralFileSystemAbstraction produceUncleanStore(EphemeralFileSystemAbstraction fileSystem, File storeDir) {
    GraphDatabaseService db = new TestGraphDatabaseFactory().setFileSystem(fileSystem).newImpermanentDatabase(storeDir);
    Transaction tx = db.beginTx();
    Node node = db.createNode();
    node.setProperty("name", "Something");
    properties((GraphDatabaseAPI) db).setProperty("prop", "Some value");
    tx.success();
    tx.close();
    EphemeralFileSystemAbstraction snapshot = fileSystem.snapshot();
    db.shutdown();
    return snapshot;
}
Also used : GraphDatabaseService(org.neo4j.graphdb.GraphDatabaseService) Transaction(org.neo4j.graphdb.Transaction) GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) EphemeralFileSystemAbstraction(org.neo4j.graphdb.mockfs.EphemeralFileSystemAbstraction) Node(org.neo4j.graphdb.Node) TestGraphDatabaseFactory(org.neo4j.test.TestGraphDatabaseFactory)

Example 3 with Node

use of org.neo4j.graphdb.Node in project neo4j by neo4j.

the class TestPropertyBlocks method testStringYoYoBase.

private void testStringYoYoBase(boolean withNewTx) {
    Node node = getGraphDb().createNode();
    long recordsInUseAtStart = propertyRecordsInUse();
    long valueRecordsInUseAtStart = dynamicStringRecordsInUse();
    String data = "0";
    int counter = 1;
    while (dynamicStringRecordsInUse() == valueRecordsInUseAtStart) {
        data += counter++;
        node.setProperty("yoyo", data);
        if (withNewTx) {
            newTransaction();
            assertEquals(recordsInUseAtStart + 1, propertyRecordsInUse());
        }
    }
    data = data.substring(0, data.length() - 2);
    node.setProperty("yoyo", data);
    newTransaction();
    assertEquals(valueRecordsInUseAtStart, dynamicStringRecordsInUse());
    assertEquals(recordsInUseAtStart + 1, propertyRecordsInUse());
    node.setProperty("fillerBoolean", true);
    newTransaction();
    assertEquals(recordsInUseAtStart + 2, propertyRecordsInUse());
}
Also used : Node(org.neo4j.graphdb.Node)

Example 4 with Node

use of org.neo4j.graphdb.Node in project neo4j by neo4j.

the class ParallelBatchImporterTest method verifyData.

protected void verifyData(int nodeCount, int relationshipCount, GraphDatabaseService db, IdGroupDistribution groups, long nodeRandomSeed, long relationshipRandomSeed) {
    // Read all nodes, relationships and properties ad verify against the input data.
    try (InputIterator<InputNode> nodes = nodes(nodeRandomSeed, nodeCount, inputIdGenerator, groups).iterator();
        InputIterator<InputRelationship> relationships = relationships(relationshipRandomSeed, relationshipCount, inputIdGenerator, groups).iterator()) {
        // Nodes
        Map<String, Node> nodeByInputId = new HashMap<>(nodeCount);
        Iterator<Node> dbNodes = db.getAllNodes().iterator();
        int verifiedNodes = 0;
        while (nodes.hasNext()) {
            InputNode input = nodes.next();
            Node node = dbNodes.next();
            assertNodeEquals(input, node);
            String inputId = uniqueId(input.group(), node);
            assertNull(nodeByInputId.put(inputId, node));
            verifiedNodes++;
            assertDegrees(node);
        }
        assertEquals(nodeCount, verifiedNodes);
        // Relationships
        Map<String, Relationship> relationshipByName = new HashMap<>();
        for (Relationship relationship : db.getAllRelationships()) {
            relationshipByName.put((String) relationship.getProperty("id"), relationship);
        }
        int verifiedRelationships = 0;
        while (relationships.hasNext()) {
            InputRelationship input = relationships.next();
            if (!inputIdGenerator.isMiss(input.startNode()) && !inputIdGenerator.isMiss(input.endNode())) {
                // A relationship referring to missing nodes. The InputIdGenerator is expected to generate
                // some (very few) of those. Skip it.
                String name = (String) propertyOf(input, "id");
                Relationship relationship = relationshipByName.get(name);
                assertNotNull("Expected there to be a relationship with name '" + name + "'", relationship);
                assertEquals(nodeByInputId.get(uniqueId(input.startNodeGroup(), input.startNode())), relationship.getStartNode());
                assertEquals(nodeByInputId.get(uniqueId(input.endNodeGroup(), input.endNode())), relationship.getEndNode());
                assertRelationshipEquals(input, relationship);
            }
            verifiedRelationships++;
        }
        assertEquals(relationshipCount, verifiedRelationships);
    }
}
Also used : InputNode(org.neo4j.unsafe.impl.batchimport.input.InputNode) HashMap(java.util.HashMap) InputNode(org.neo4j.unsafe.impl.batchimport.input.InputNode) Node(org.neo4j.graphdb.Node) InputRelationship(org.neo4j.unsafe.impl.batchimport.input.InputRelationship) Relationship(org.neo4j.graphdb.Relationship) InputRelationship(org.neo4j.unsafe.impl.batchimport.input.InputRelationship)

Example 5 with Node

use of org.neo4j.graphdb.Node in project neo4j by neo4j.

the class RelationshipChainExplorerTest method createStoreWithOneHighDegreeNodeAndSeveralDegreeTwoNodes.

private StoreAccess createStoreWithOneHighDegreeNodeAndSeveralDegreeTwoNodes(int nDegreeTwoNodes) {
    File storeDirectory = storeLocation.graphDbDir();
    GraphDatabaseService database = new TestGraphDatabaseFactory().newEmbeddedDatabaseBuilder(storeDirectory).setConfig(GraphDatabaseSettings.record_format, getRecordFormatName()).newGraphDatabase();
    try (Transaction transaction = database.beginTx()) {
        Node denseNode = database.createNode();
        for (int i = 0; i < nDegreeTwoNodes; i++) {
            Node degreeTwoNode = database.createNode();
            Node leafNode = database.createNode();
            if (i % 2 == 0) {
                denseNode.createRelationshipTo(degreeTwoNode, TestRelationshipType.CONNECTED);
            } else {
                degreeTwoNode.createRelationshipTo(denseNode, TestRelationshipType.CONNECTED);
            }
            degreeTwoNode.createRelationshipTo(leafNode, TestRelationshipType.CONNECTED);
        }
        transaction.success();
    }
    database.shutdown();
    PageCache pageCache = pageCacheRule.getPageCache(fileSystemRule.get());
    StoreAccess storeAccess = new StoreAccess(fileSystemRule.get(), pageCache, storeDirectory, Config.empty());
    return storeAccess.initialize();
}
Also used : GraphDatabaseService(org.neo4j.graphdb.GraphDatabaseService) Transaction(org.neo4j.graphdb.Transaction) StoreAccess(org.neo4j.kernel.impl.store.StoreAccess) Node(org.neo4j.graphdb.Node) TestGraphDatabaseFactory(org.neo4j.test.TestGraphDatabaseFactory) File(java.io.File) PageCache(org.neo4j.io.pagecache.PageCache)

Aggregations

Node (org.neo4j.graphdb.Node)2002 Transaction (org.neo4j.graphdb.Transaction)1092 Test (org.junit.Test)641 Relationship (org.neo4j.graphdb.Relationship)567 Test (org.junit.jupiter.api.Test)448 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)225 Label (org.neo4j.graphdb.Label)135 KernelTransaction (org.neo4j.kernel.api.KernelTransaction)135 HashMap (java.util.HashMap)111 RelationshipType (org.neo4j.graphdb.RelationshipType)95 InternalTransaction (org.neo4j.kernel.impl.coreapi.InternalTransaction)93 Map (java.util.Map)87 Path (org.neo4j.graphdb.Path)77 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)70 LinkedList (java.util.LinkedList)68 File (java.io.File)65 HashSet (java.util.HashSet)64 NotFoundException (org.neo4j.graphdb.NotFoundException)63 ArrayList (java.util.ArrayList)61 WeightedPath (org.neo4j.graphalgo.WeightedPath)58