17
17
* limitations under the License.
18
18
*/
19
19
20
- import BoltProtocol from '../../src/v1/internal/bolt-protocol' ;
20
+ import BoltProtocol from '../../src/v1/internal/bolt-protocol-v1 ' ;
21
21
import RequestMessage from '../../src/v1/internal/request-message' ;
22
+ import Bookmark from '../../src/v1/internal/bookmark' ;
22
23
23
24
class MessageRecorder {
24
25
@@ -55,8 +56,8 @@ describe('BoltProtocol', () => {
55
56
56
57
recorder . verifyMessageCount ( 1 ) ;
57
58
verifyMessage ( RequestMessage . init ( clientName , authToken ) , recorder . messages [ 0 ] ) ;
58
- expect ( recorder . observers [ 0 ] ) . toBe ( observer ) ;
59
- expect ( recorder . flushes [ 0 ] ) . toBeTruthy ( ) ;
59
+ expect ( recorder . observers ) . toEqual ( [ observer ] ) ;
60
+ expect ( recorder . flushes ) . toEqual ( [ true ] ) ;
60
61
} ) ;
61
62
62
63
it ( 'should run a statement' , ( ) => {
@@ -74,11 +75,8 @@ describe('BoltProtocol', () => {
74
75
verifyMessage ( RequestMessage . run ( statement , parameters ) , recorder . messages [ 0 ] ) ;
75
76
verifyMessage ( RequestMessage . pullAll ( ) , recorder . messages [ 1 ] ) ;
76
77
77
- expect ( recorder . observers [ 0 ] ) . toBe ( observer ) ;
78
- expect ( recorder . observers [ 1 ] ) . toBe ( observer ) ;
79
-
80
- expect ( recorder . flushes [ 0 ] ) . toBeFalsy ( ) ;
81
- expect ( recorder . flushes [ 1 ] ) . toBeTruthy ( ) ;
78
+ expect ( recorder . observers ) . toEqual ( [ observer , observer ] ) ;
79
+ expect ( recorder . flushes ) . toEqual ( [ false , true ] ) ;
82
80
} ) ;
83
81
84
82
it ( 'should reset the connection' , ( ) => {
@@ -91,8 +89,60 @@ describe('BoltProtocol', () => {
91
89
92
90
recorder . verifyMessageCount ( 1 ) ;
93
91
verifyMessage ( RequestMessage . reset ( ) , recorder . messages [ 0 ] ) ;
94
- expect ( recorder . observers [ 0 ] ) . toBe ( observer ) ;
95
- expect ( recorder . flushes [ 0 ] ) . toBeTruthy ( ) ;
92
+ expect ( recorder . observers ) . toEqual ( [ observer ] ) ;
93
+ expect ( recorder . flushes ) . toEqual ( [ true ] ) ;
94
+ } ) ;
95
+
96
+ it ( 'should begin a transaction' , ( ) => {
97
+ const recorder = new MessageRecorder ( ) ;
98
+ const protocol = new BoltProtocol ( recorder , null , null ) ;
99
+
100
+ const bookmark = new Bookmark ( 'neo4j:bookmark:v1:tx42' ) ;
101
+ const observer = { } ;
102
+
103
+ protocol . beginTransaction ( bookmark , observer ) ;
104
+
105
+ recorder . verifyMessageCount ( 2 ) ;
106
+
107
+ verifyMessage ( RequestMessage . run ( 'BEGIN' , bookmark . asBeginTransactionParameters ( ) ) , recorder . messages [ 0 ] ) ;
108
+ verifyMessage ( RequestMessage . pullAll ( ) , recorder . messages [ 1 ] ) ;
109
+
110
+ expect ( recorder . observers ) . toEqual ( [ observer , observer ] ) ;
111
+ expect ( recorder . flushes ) . toEqual ( [ false , false ] ) ;
112
+ } ) ;
113
+
114
+ it ( 'should commit a transaction' , ( ) => {
115
+ const recorder = new MessageRecorder ( ) ;
116
+ const protocol = new BoltProtocol ( recorder , null , null ) ;
117
+
118
+ const observer = { } ;
119
+
120
+ protocol . commitTransaction ( observer ) ;
121
+
122
+ recorder . verifyMessageCount ( 2 ) ;
123
+
124
+ verifyMessage ( RequestMessage . run ( 'COMMIT' , { } ) , recorder . messages [ 0 ] ) ;
125
+ verifyMessage ( RequestMessage . pullAll ( ) , recorder . messages [ 1 ] ) ;
126
+
127
+ expect ( recorder . observers ) . toEqual ( [ observer , observer ] ) ;
128
+ expect ( recorder . flushes ) . toEqual ( [ false , true ] ) ;
129
+ } ) ;
130
+
131
+ it ( 'should rollback a transaction' , ( ) => {
132
+ const recorder = new MessageRecorder ( ) ;
133
+ const protocol = new BoltProtocol ( recorder , null , null ) ;
134
+
135
+ const observer = { } ;
136
+
137
+ protocol . rollbackTransaction ( observer ) ;
138
+
139
+ recorder . verifyMessageCount ( 2 ) ;
140
+
141
+ verifyMessage ( RequestMessage . run ( 'ROLLBACK' , { } ) , recorder . messages [ 0 ] ) ;
142
+ verifyMessage ( RequestMessage . pullAll ( ) , recorder . messages [ 1 ] ) ;
143
+
144
+ expect ( recorder . observers ) . toEqual ( [ observer , observer ] ) ;
145
+ expect ( recorder . flushes ) . toEqual ( [ false , true ] ) ;
96
146
} ) ;
97
147
98
148
} ) ;
0 commit comments