Skip to content

Commit

Permalink
Upgraded to Neo4j 1.8 RC1
Browse files Browse the repository at this point in the history
Added new characters etc up to "Dinosaurs on a Plane" episode
Created new FATHER_OF relationship because Rory's dad appears.
  • Loading branch information
jimwebber committed Sep 9, 2012
1 parent 0be039e commit 8384823
Show file tree
Hide file tree
Showing 10 changed files with 66 additions and 26 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Original file line Diff line number Diff line change
@@ -1,3 +1,4 @@
presentation/*.pdf
out out
.shell_history .shell_history
.classpath .classpath
Expand Down
Binary file modified presentation/A Programmatic Introduction to Neo4j.pptx
Binary file not shown.
8 changes: 4 additions & 4 deletions settings/ivy.xml
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
<ivy-module xmlns:m="http://ant.apache.org/ivy/maven" version="2.0"> <ivy-module xmlns:m="http://ant.apache.org/ivy/maven" version="2.0">
<info organisation="org.neo4j" module="neo4j-koans"/> <info organisation="org.neo4j" module="neo4j-koans"/>
<dependencies> <dependencies>
<dependency org="org.neo4j.app" name="neo4j-server" rev="1.8.M07"> <dependency org="org.neo4j.app" name="neo4j-server" rev="1.8.RC1">
<artifact name="neo4j-server" ext="jar"/> <artifact name="neo4j-server" ext="jar"/>
<artifact name="neo4j-server" m:classifier="static-web" ext="jar"/> <artifact name="neo4j-server" m:classifier="static-web" ext="jar"/>
<artifact name="neo4j-server" m:classifier="tests" ext="jar"/> <artifact name="neo4j-server" m:classifier="tests" ext="jar"/>
<exclude org="org.slf4j" /> <exclude org="org.slf4j" />
</dependency> </dependency>
<dependency org="org.neo4j" name="server-api" rev="1.8.M07"/> <dependency org="org.neo4j" name="server-api" rev="1.8.RC1"/>
<dependency org="org.neo4j" name="neo4j-community" rev="1.8.M07"/> <dependency org="org.neo4j" name="neo4j-community" rev="1.8.RC1"/>
<dependency org="org.neo4j" name="neo4j-kernel" rev="1.8.M07"> <dependency org="org.neo4j" name="neo4j-kernel" rev="1.8.RC1">
<artifact name="neo4j-kernel" ext="jar"/> <artifact name="neo4j-kernel" ext="jar"/>
<artifact name="neo4j-kernel" m:classifier="tests" ext="jar"/> <artifact name="neo4j-kernel" m:classifier="tests" ext="jar"/>
</dependency> </dependency>
Expand Down
4 changes: 2 additions & 2 deletions src/koan/java/org/neo4j/tutorial/Koan08b.java
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public void shouldCountTheNumberOfEpisodes()


ExecutionResult result = engine.execute( cql ); ExecutionResult result = engine.execute( cql );


assertEquals( 246l, result.javaColumnAs( "COUNT(episodes)" ).next() ); assertEquals( 248l, result.javaColumnAs( "COUNT(episodes)" ).next() );
} }




Expand Down Expand Up @@ -153,6 +153,6 @@ public void shouldFindIndividualCompanionsAndEnemiesOfTheDoctor()


ExecutionResult result = engine.execute( cql ); ExecutionResult result = engine.execute( cql );


assertEquals( 151, result.size() ); assertEquals( 154, result.size() );
} }
} }
4 changes: 2 additions & 2 deletions src/koan/java/org/neo4j/tutorial/Koan11.java
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public void shouldCountTheEnemiesOfTheDoctor() throws Exception
// SNIPPET_END // SNIPPET_END


List<Map<String, Object>> json = JsonHelper.jsonToList( response ); List<Map<String, Object>> json = JsonHelper.jsonToList( response );
int numberOfEnemiesOfTheDoctor = 148; int numberOfEnemiesOfTheDoctor = 151;
assertEquals( numberOfEnemiesOfTheDoctor, json.size() ); assertEquals( numberOfEnemiesOfTheDoctor, json.size() );
} }


Expand Down Expand Up @@ -167,7 +167,7 @@ public void canAddFirstAndSecondIncarnationInformationForTheDoctor()


// SNIPPET_END // SNIPPET_END


assertFirstAndSecondDoctorCreatedAndLinkedToActors( universe.getServer().getDatabase().graph ); assertFirstAndSecondDoctorCreatedAndLinkedToActors( universe.getServer().getDatabase().getGraph() );


} }


Expand Down
29 changes: 24 additions & 5 deletions src/main/java/org/neo4j/tutorial/CharacterBuilder.java
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import static org.neo4j.tutorial.DatabaseHelper.ensureRelationshipInDb; import static org.neo4j.tutorial.DatabaseHelper.ensureRelationshipInDb;


import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
Expand All @@ -24,6 +25,7 @@ public class CharacterBuilder
private ArrayList<String> actors = new ArrayList<String>(); private ArrayList<String> actors = new ArrayList<String>();
private HashMap<String, Integer> startDates = new HashMap<String, Integer>(); private HashMap<String, Integer> startDates = new HashMap<String, Integer>();
private String wikipediaUri; private String wikipediaUri;
private String[] children;


public static CharacterBuilder character( String characterName ) public static CharacterBuilder character( String characterName )
{ {
Expand Down Expand Up @@ -107,6 +109,20 @@ public void fact( GraphDatabaseService db )
{ {
characterNode.setProperty( "wikipedia", wikipediaUri ); characterNode.setProperty( "wikipedia", wikipediaUri );
} }

if ( children != null )
{
ensureChildrenInDb( characterNode, children, db );
}
}

private static void ensureChildrenInDb( Node characterNode, String[] children, GraphDatabaseService db )
{
for ( String child : children )
{
Node childNode = ensureCharacterIsInDb( child, db );
ensureRelationshipInDb( characterNode, DoctorWhoRelationships.FATHER_OF, childNode );
}
} }


public static void ensureAllyOfRelationshipInDb( Node allyNode, GraphDatabaseService db ) public static void ensureAllyOfRelationshipInDb( Node allyNode, GraphDatabaseService db )
Expand Down Expand Up @@ -308,17 +324,14 @@ public CharacterBuilder isAlly()


public CharacterBuilder regeneration( String... actors ) public CharacterBuilder regeneration( String... actors )
{ {
for ( String actor : actors ) Collections.addAll( this.actors, actors );
{
this.actors.add( actor );
}
return this; return this;
} }


public CharacterBuilder regeneration( String actor, int year ) public CharacterBuilder regeneration( String actor, int year )
{ {
this.actors.add( actor ); this.actors.add( actor );
this.startDates.put( actor, new Integer( year ) ); this.startDates.put( actor, year );
return this; return this;
} }


Expand All @@ -327,4 +340,10 @@ public CharacterBuilder wikipedia( String wikipediaEntry )
this.wikipediaUri = wikipediaEntry; this.wikipediaUri = wikipediaEntry;
return this; return this;
} }

public CharacterBuilder fatherOf( String... children )
{
this.children = children;
return this;
}
} }
30 changes: 21 additions & 9 deletions src/main/java/org/neo4j/tutorial/Characters.java
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -173,10 +173,31 @@ private void loadEnemies()
character( "Yartek" ).isA( "Voord" ) character( "Yartek" ).isA( "Voord" )
.isEnemy() .isEnemy()
.fact( db ); .fact( db );
character( "Darla von Karlsen" ).isA( "Human" )
.isA( "Dalek" )
.isEnemy()
.fact( db );
character( "Harvey" ).isA( "Human" )
.isA( "Dalek" )
.isEnemy()
.fact( db );
character( "Solomon" ).isA( "Humanoid" )
.isEnemy()
.fact( db );
} }


private void loadAllies() private void loadAllies()
{ {
character( "Riddell" ).isA( "Human" )
.isAlly()
.fact( db );
character( "Brian Williams" ).isA( "Human" )
.fatherOf( "Rory Williams" )
.isAlly()
.fact( db );
character( "Queen Nefertiti" ).isA( "Human" )
.isAlly()
.fact( db );
character( "River Song" ).isA( "Human" ) character( "River Song" ).isA( "Human" )
.loves( "Doctor" ) .loves( "Doctor" )
.isAlly() .isAlly()
Expand Down Expand Up @@ -218,15 +239,6 @@ private void loadAllies()
.isA( "Dalek" ) .isA( "Dalek" )
.isAlly() .isAlly()
.fact( db ); .fact( db );
character( "Darla von Karlsen" ).isA( "Human" )
.isA( "Dalek" )
.isAlly()
.fact( db );
character( "Harvey" ).isA( "Human" )
.isA( "Dalek" )
.isAlly()
.isFrom( "Skaro" )
.fact( db );
} }


private void loadCompanions() private void loadCompanions()
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -20,5 +20,6 @@ public enum DoctorWhoRelationships implements RelationshipType
ORIGINAL_PROP, ORIGINAL_PROP,
PREVIOUS, PREVIOUS,
NEXT, NEXT,
FATHER_OF,
MEMBER_OF MEMBER_OF
} }
9 changes: 8 additions & 1 deletion src/main/java/org/neo4j/tutorial/Episodes.java
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -113,7 +113,14 @@ private void season33()
.allies( "Oswin Oswald" ) .allies( "Oswin Oswald" )
.companion( "Amy Pond", "Rory Williams" ) .companion( "Amy Pond", "Rory Williams" )
.enemySpecies( "Dalek" ) .enemySpecies( "Dalek" )
.enemy("Darla von Karlsen", "Harvey") .enemy( "Darla von Karlsen", "Harvey" )
.fact( db );

episode( 226 ).title( "Dinosaurs on a Spaceship" )
.doctor( "Matt Smith" )
.allies( "Queen Nefertiti", "Riddell", "Brian Williams" )
.companion( "Amy Pond", "Rory Williams" )
.enemy( "Solomon" )
.fact( db ); .fact( db );
} }


Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public void shouldHaveCorrectNumberOfHumans()
humanSpeciesNode.getRelationships( humanSpeciesNode.getRelationships(
DoctorWhoRelationships.IS_A, Direction.INCOMING ) ); DoctorWhoRelationships.IS_A, Direction.INCOMING ) );


int knownNumberOfHumans = 48; int knownNumberOfHumans = 54;
assertEquals( knownNumberOfHumans, numberOfHumansFriendliesInTheDB ); assertEquals( knownNumberOfHumans, numberOfHumansFriendliesInTheDB );
} }


Expand Down Expand Up @@ -385,7 +385,7 @@ else if ( path.length() > 2 )


List<Node> enemiesOfEnemies = databaseHelper.toListOfNodes( nodes ); List<Node> enemiesOfEnemies = databaseHelper.toListOfNodes( nodes );


int numberOfIndividualAndSpeciesEnemiesInTheDatabase = 147; int numberOfIndividualAndSpeciesEnemiesInTheDatabase = 150;
assertEquals( numberOfIndividualAndSpeciesEnemiesInTheDatabase, enemiesOfEnemies.size() ); assertEquals( numberOfIndividualAndSpeciesEnemiesInTheDatabase, enemiesOfEnemies.size() );
assertTrue( isInList( dalek, enemiesOfEnemies ) ); assertTrue( isInList( dalek, enemiesOfEnemies ) );
assertTrue( isInList( cyberman, enemiesOfEnemies ) ); assertTrue( isInList( cyberman, enemiesOfEnemies ) );
Expand Down Expand Up @@ -449,7 +449,7 @@ public void shouldHaveCorrectNumberOfCompanionsInTotal()
@Test @Test
public void shouldHaveCorrectNumberofIndividualEnemyCharactersInTotal() public void shouldHaveCorrectNumberofIndividualEnemyCharactersInTotal()
{ {
int numberOfEnemies = 105; int numberOfEnemies = 108;


Node theDoctor = universe.getDatabase() Node theDoctor = universe.getDatabase()
.index() .index()
Expand Down

0 comments on commit 8384823

Please sign in to comment.