1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.neo4j.server.rrd;
21
22 import static org.hamcrest.MatcherAssert.assertThat;
23 import static org.hamcrest.core.Is.is;
24
25 import java.io.IOException;
26 import java.util.UUID;
27
28 import javax.management.MalformedObjectNameException;
29
30 import org.junit.After;
31 import org.junit.Before;
32 import org.junit.Test;
33 import org.neo4j.graphdb.Node;
34 import org.neo4j.graphdb.RelationshipType;
35 import org.neo4j.graphdb.Transaction;
36 import org.neo4j.kernel.ImpermanentGraphDatabase;
37
38 public class PropertyCountSampleableTest
39 {
40 public ImpermanentGraphDatabase db;
41 public PropertyCountSampleable sampleable;
42
43 @Test
44 public void emptyDbHasZeroNodesInUse() throws IOException, MalformedObjectNameException
45 {
46 assertThat( sampleable.getValue(), is( 0L ) );
47 }
48
49 @Test
50 public void addANodeAndSampleableGoesUp() throws IOException, MalformedObjectNameException
51 {
52 addPropertyToReferenceNode( );
53
54 assertThat( sampleable.getValue(), is( 1L ) );
55
56 addNodeIntoGraph( );
57 addNodeIntoGraph( );
58
59 assertThat( sampleable.getValue(), is( 3L ) );
60 }
61
62 private void addNodeIntoGraph() {
63 Transaction tx = db.beginTx();
64 Node referenceNode = db.getReferenceNode();
65 Node myNewNode = db.createNode();
66 myNewNode.setProperty("id", UUID.randomUUID().toString());
67 myNewNode.createRelationshipTo(referenceNode, new RelationshipType() {
68 public String name() {
69 return "knows_about";
70 }
71 });
72
73 tx.success();
74 tx.finish();
75 }
76
77 private void addPropertyToReferenceNode( )
78 {
79 Transaction tx = db.beginTx();
80 Node n = db.getReferenceNode();
81 n.setProperty( "monkey", "rock!" );
82 tx.success();
83 tx.finish();
84 }
85
86 @Before
87 public void setUp() throws Exception
88 {
89 db = new ImpermanentGraphDatabase();
90 sampleable = new PropertyCountSampleable( db );
91 }
92
93 @After
94 public void shutdownDatabase()
95 {
96 this.db.shutdown();
97 }
98 }