Skip to content

Commit b0b69ab

Browse files
committed
Merge pull request #141 from neo4j/1.0-stmt-map
Add additional constructor to Statement to make it match `run` signature
2 parents 54a62b4 + 45a44b1 commit b0b69ab

File tree

2 files changed

+45
-16
lines changed

2 files changed

+45
-16
lines changed

driver/src/main/java/org/neo4j/driver/v1/Statement.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,34 @@ public class Statement
4444
private final String text;
4545
private final Value parameters;
4646

47+
/**
48+
* Create a new statement.
49+
* @param text the statement text
50+
* @param parameters the statement parameters
51+
*/
4752
public Statement( String text, Value parameters )
4853
{
4954
this.text = text;
5055
this.parameters = parameters == null ? Values.EmptyMap : parameters;
5156
}
5257

58+
/**
59+
* Create a new statement.
60+
* @param text the statement text
61+
* @param parameters the statement parameters
62+
*/
63+
public Statement( String text, Map<String, Object> parameters )
64+
{
65+
this( text, Values.value( parameters ) );
66+
}
67+
68+
/**
69+
* Create a new statement.
70+
* @param text the statement text
71+
*/
5372
public Statement( String text )
5473
{
55-
this( text, null );
74+
this( text, Values.EmptyMap );
5675
}
5776

5877
/**
@@ -89,6 +108,15 @@ public Statement withParameters( Value newParameters )
89108
return new Statement( text, newParameters );
90109
}
91110

111+
/**
112+
* @param newParameters the new statement's parameters
113+
* @return a new statement with updated parameters
114+
*/
115+
public Statement withParameters( Map<String, Object> newParameters )
116+
{
117+
return new Statement( text, newParameters );
118+
}
119+
92120
/**
93121
* Create a new statement with new parameters derived by updating this'
94122
* statement's parameters using the given updates.

driver/src/test/java/org/neo4j/driver/v1/StatementTest.java

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020

2121
import org.junit.Test;
2222

23+
import java.util.HashMap;
24+
import java.util.Map;
25+
2326
import static org.hamcrest.Matchers.equalTo;
2427
import static org.junit.Assert.assertThat;
2528
import static org.neo4j.driver.v1.Values.parameters;
@@ -54,21 +57,6 @@ public void shouldConstructStatementWithNoParameters()
5457
assertThat( statement.parameters(), equalTo( Values.EmptyMap ) );
5558
}
5659

57-
@Test
58-
public void shouldConstructStatementWithNullParameters()
59-
{
60-
// given
61-
String text = "MATCH (n) RETURN n";
62-
63-
// when
64-
Statement statement = new Statement( text, null );
65-
66-
// then
67-
assertThat( statement.text(), equalTo( text ) );
68-
assertThat( statement.parameters(), equalTo( Values.EmptyMap ) );
69-
}
70-
71-
7260
@Test
7361
public void shouldUpdateStatementText()
7462
{
@@ -96,6 +84,19 @@ public void shouldReplaceStatementParameters()
9684
assertThat( statement.parameters(), equalTo( initialParameters ) );
9785
}
9886

87+
@Test
88+
public void shouldReplaceMapParameters()
89+
{
90+
// when
91+
String text = "MATCH (n) RETURN n";
92+
Map<String, Object> parameters = new HashMap<>();
93+
parameters.put( "a", 1 );
94+
Statement statement = new Statement( "MATCH (n) RETURN n" ).withParameters( parameters );
95+
96+
// then
97+
assertThat( statement.text(), equalTo( text ) );
98+
assertThat( statement.parameters(), equalTo( Values.value( parameters ) ) );
99+
}
99100

100101
@Test
101102
public void shouldUpdateStatementParameters()

0 commit comments

Comments
 (0)