1
- package com .neueda .jetbrains .plugin .graphdb .jetbrains . ui . console . params ;
1
+ package com .neueda .jetbrains .plugin .graphdb .test . integration . neo4j . tests . cypher . parameters ;
2
2
3
- import com .fasterxml .jackson .databind .JsonMappingException ;
4
- import org .junit .Before ;
5
- import org .junit .Test ;
3
+ import com .intellij .psi .PsiElement ;
4
+ import com .neueda .jetbrains .plugin .graphdb .jetbrains .ui .console .params .ParametersProvider ;
5
+ import com .neueda .jetbrains .plugin .graphdb .jetbrains .ui .console .params .ParametersService ;
6
+ import com .neueda .jetbrains .plugin .graphdb .test .integration .neo4j .util .base .BaseIntegrationTest ;
6
7
7
8
import java .util .Map ;
9
+ import java .util .Optional ;
8
10
9
11
import static org .assertj .core .api .Assertions .*;
10
12
11
- public class ParametersServiceTest {
13
+ public class CypherParametersProviderTest extends BaseIntegrationTest {
12
14
13
15
private class TestParametersProvider implements ParametersProvider {
14
16
15
- String parametersJson ;
17
+ private String parametersJson ;
16
18
17
19
@ Override
18
20
public String getParametersJson () {
@@ -24,127 +26,95 @@ public void setParametersJson(String parametersJson) {
24
26
}
25
27
}
26
28
27
- private ParametersService parametersService = new ParametersService () ;
29
+ private ParametersService parametersService ;
28
30
private TestParametersProvider parametersProvider = new TestParametersProvider ();
29
31
30
- @ Before
31
- public void setup () {
32
- parametersService .registerParametersProvider (parametersProvider );
32
+ @ Override
33
+ public void setUp () throws Exception {
34
+ super .setUp ();
35
+
36
+ parametersService = new ParametersService ();
37
+
38
+ if (!parametersService .isParametersProviderRegistered ()) {
39
+ parametersService .registerParametersProvider (parametersProvider );
40
+ }
33
41
}
34
42
35
- @ Test
36
43
public void testParsingEmptyJsonObject () throws Exception {
37
44
parametersProvider .setParametersJson ("{}" );
38
- Map <String , Object > result = parametersService
39
- .getParameters ("match (p:Person) return p;" );
45
+ Map <String , Object > parameters = parametersService .getParameters (getPsiFile ("RETURN $param" ));
40
46
41
- assertThat (result . isEmpty ()). isTrue ();
47
+ assertThat (parameters ). isEmpty ();
42
48
}
43
49
44
- @ Test
45
50
public void testParsingEmptyParameters () throws Exception {
46
51
parametersProvider .setParametersJson ("" );
47
- Map <String , Object > result = parametersService .getParameters ();
52
+ Map <String , Object > result = parametersService .getParameters (getPsiFile ( "RETURN $param" ) );
48
53
49
54
assertThat (result .isEmpty ()).isTrue ();
50
55
}
51
56
52
- @ Test
53
57
public void testParsingStringParameter () throws Exception {
54
58
parametersProvider .setParametersJson ("{\" name\" : \" Anna\" }" );
55
59
Map <String , Object > result = parametersService
56
- .getParameters ("match (p:Person) where p.name = $name return *" );
60
+ .getParameters (getPsiFile ( "match (p:Person) where p.name = $name return *" ) );
57
61
58
- assertThat (result .keySet ().contains ("name" )). isTrue () ;
59
- assertThat (result .values ().contains ("Anna" )). isTrue () ;
62
+ assertThat (result .keySet ().contains ("name" ));
63
+ assertThat (result .values ().contains ("Anna" ));
60
64
}
61
65
62
- @ Test
63
66
public void testParsingIntegerParameter () throws Exception {
64
67
parametersProvider .setParametersJson ("{\" p1\" : 17}" );
65
68
Map <String , Object > result = parametersService
66
- .getParameters ("match (p:Person) where p.age = $p1 return *" );
69
+ .getParameters (getPsiFile ( "match (p:Person) where p.age = $p1 return *" ) );
67
70
68
71
assertThat (result .get ("p1" ).toString ()).isEqualTo ("17" );
69
72
}
70
73
71
- @ Test
72
74
public void testParsingBooleanParameter () throws Exception {
73
75
parametersProvider .setParametersJson ("{\" p2\" : false}" );
74
76
Map <String , Object > result = parametersService .
75
- getParameters ("match (p:Person) where p.is_citizen = $p2 return *" );
77
+ getParameters (getPsiFile ( "match (p:Person) where p.is_citizen = $p2 return *" ) );
76
78
77
79
assertThat (result .get ("p2" ).toString ()).isEqualTo ("false" );
78
80
}
79
81
80
- @ Test
81
82
public void testParsingJsonObjectParameter () throws Exception {
82
83
parametersProvider .setParametersJson ("{\" p3\" : {\" name\" :\" Alex\" }}" );
83
84
Map <String , Object > result = parametersService .
84
- getParameters ("match (p:Person) where p.father = $p3 return *" );
85
+ getParameters (getPsiFile ( "match (p:Person) where p.father = $p3 return *" ) );
85
86
86
87
Map <String , Object > jsonVal = (Map <String , Object >) result .get ("p3" );
87
88
assertThat (jsonVal ).containsKey ("name" );
88
89
assertThat (jsonVal ).containsValue ("Alex" );
89
90
}
90
91
91
- @ Test
92
92
public void testParsingMultipleParameters () throws Exception {
93
93
parametersProvider .setParametersJson ("{\" firstName\" : \" Kaleb\" , \" lastName\" : \" Johnson\" }" );
94
94
Map <String , Object > result = parametersService
95
- .getParameters ("match (p:Person)\n " +
95
+ .getParameters (getPsiFile ( "match (p:Person)\n " +
96
96
"where p.first_name = $firstName " +
97
- " and p.last_name = $lastName return *" );
97
+ " and p.last_name = $lastName return *" )) ;
98
98
99
99
assertThat (result .get ("firstName" ).toString ()).isEqualTo ("Kaleb" );
100
100
assertThat (result .get ("lastName" ).toString ()).isEqualTo ("Johnson" );
101
101
}
102
102
103
- @ Test
104
103
public void testParsingCommentOnly () throws Exception {
105
104
parametersProvider .setParametersJson ("// Provide query parameters in JSON format here:" );
106
- Map <String , Object > result = parametersService .getParameters ();
105
+ Map <String , Object > result = parametersService .getParameters (getPsiFile ( "RETURN $param" ) );
107
106
108
107
assertThat (result .isEmpty ()).isTrue ();
109
108
}
110
109
111
-
112
- @ Test
113
110
public void testParsingCommentWithParameter () throws Exception {
114
111
parametersProvider .setParametersJson ("// Provide query parameters in JSON format here:\n {\" name\" : \" Eva\" }" );
115
- Map <String , Object > result = parametersService .getParameters ();
112
+ Map <String , Object > result = parametersService .getParameters (getPsiFile ( "RETURN $name" ) );
116
113
117
114
assertThat (result .size () == 1 ).isTrue ();
118
115
}
119
116
120
- @ Test (expected = Exception .class )
121
- public void testParsingJsonArray () throws Exception {
122
- parametersProvider .setParametersJson ("// Provide query parameters in JSON format here:\n [\" item1\" ,\" item2\" ]" );
123
- parametersService .getParameters ();
124
- }
125
-
126
- @ Test (expected = JsonMappingException .class )
127
- public void testParsingNumber () throws Exception {
128
- parametersProvider .setParametersJson ("1" );
129
- parametersService .getParameters ();
117
+ private Optional <PsiElement > getPsiFile (String queryText ) {
118
+ return Optional .of (myFixture .configureByText ("test.cypher" , queryText ));
130
119
}
131
-
132
- @ Test (expected = JsonMappingException .class )
133
- public void testParsingString () throws Exception {
134
- parametersProvider .setParametersJson ("\" abc\" " );
135
- parametersService .getParameters ();
136
- }
137
-
138
- @ Test (expected = JsonMappingException .class )
139
- public void testParsingUnwrappedParameter () throws Exception {
140
- parametersProvider .setParametersJson ("\" param1\" :\" val1\" " );
141
- parametersService .getParameters ();
142
- }
143
-
144
- @ Test (expected = Exception .class )
145
- public void testParsingParamWithObjAccessor () throws Exception {
146
- parametersProvider .setParametersJson ("{\" param1\" : person[\" name\" ]}" );
147
- parametersService .getParameters ();
148
- }
149
-
150
120
}
0 commit comments