@@ -78,106 +78,6 @@ class ExtendedQueryStateMachineTests: XCTestCase {
78
78
XCTAssertEqual ( state. readyForQueryReceived ( . idle) , . fireEventReadyForQuery)
79
79
}
80
80
81
- func testExtendedQueryWithSimpleQueryWithoutDataRowsHappyPath( ) {
82
- var state = ConnectionStateMachine . readyForQuery ( )
83
-
84
- let logger = Logger . psqlTest
85
- let promise = EmbeddedEventLoop ( ) . makePromise ( of: PSQLRowStream . self)
86
- promise. fail ( PSQLError . uncleanShutdown) // we don't care about the error at all.
87
- let query = " DELETE FROM table WHERE id=1 "
88
- let queryContext = SimpleQueryContext ( query: query, logger: logger, promise: promise)
89
-
90
- XCTAssertEqual ( state. enqueue ( task: . simpleQuery( queryContext) ) , . sendQuery( query) )
91
- XCTAssertEqual ( state. commandCompletedReceived ( " DELETE 1 " ) , . succeedQuery( promise, with: . init( value: . noRows( . tag( " DELETE 1 " ) ) , logger: logger) ) )
92
- XCTAssertEqual ( state. readyForQueryReceived ( . idle) , . fireEventReadyForQuery)
93
- }
94
-
95
- func testExtendedQueryWithSimpleQueryWithRowDescriptionWithoutDataRowsHappyPath( ) {
96
- var state = ConnectionStateMachine . readyForQuery ( )
97
-
98
- let logger = Logger . psqlTest
99
- let promise = EmbeddedEventLoop ( ) . makePromise ( of: PSQLRowStream . self)
100
- promise. fail ( PSQLError . uncleanShutdown) // we don't care about the error at all.
101
- let nonExistentOID = 371280378
102
- let query = " SELECT * FROM pg_class WHERE oid = \( nonExistentOID) "
103
- let queryContext = SimpleQueryContext ( query: query, logger: logger, promise: promise)
104
-
105
- XCTAssertEqual ( state. enqueue ( task: . simpleQuery( queryContext) ) , . sendQuery( query) )
106
-
107
- let input : [ RowDescription . Column ] = [
108
- . init( name: " version " , tableOID: 0 , columnAttributeNumber: 0 , dataType: . text, dataTypeSize: - 1 , dataTypeModifier: - 1 , format: . text)
109
- ]
110
- XCTAssertEqual ( state. rowDescriptionReceived ( . init( columns: input) ) , . wait)
111
- XCTAssertEqual ( state. commandCompletedReceived ( " DELETE 1 " ) , . succeedQuery( promise, with: . init( value: . noRows( . tag( " DELETE 1 " ) ) , logger: logger) ) )
112
- XCTAssertEqual ( state. readyForQueryReceived ( . idle) , . fireEventReadyForQuery)
113
- }
114
-
115
- func testExtendedQueryWithSimpleQueryWithDataRowsHappyPath( ) {
116
- var state = ConnectionStateMachine . readyForQuery ( )
117
-
118
- let logger = Logger . psqlTest
119
- let promise = EmbeddedEventLoop ( ) . makePromise ( of: PSQLRowStream . self)
120
- promise. fail ( PSQLError . uncleanShutdown) // we don't care about the error at all.
121
- let query = " SELECT version() "
122
- let queryContext = SimpleQueryContext ( query: query, logger: logger, promise: promise)
123
-
124
- XCTAssertEqual ( state. enqueue ( task: . simpleQuery( queryContext) ) , . sendQuery( query) )
125
-
126
- // We need to ensure that even though the row description from the wire says that we
127
- // will receive data in `.text` format, we will actually receive it in binary format,
128
- // since we requested it in binary with our bind message.
129
- let input : [ RowDescription . Column ] = [
130
- . init( name: " version " , tableOID: 0 , columnAttributeNumber: 0 , dataType: . text, dataTypeSize: - 1 , dataTypeModifier: - 1 , format: . text)
131
- ]
132
- let expected : [ RowDescription . Column ] = input. map {
133
- . init( name: $0. name, tableOID: $0. tableOID, columnAttributeNumber: $0. columnAttributeNumber, dataType: $0. dataType,
134
- dataTypeSize: $0. dataTypeSize, dataTypeModifier: $0. dataTypeModifier, format: . binary)
135
- }
136
-
137
- XCTAssertEqual ( state. rowDescriptionReceived ( . init( columns: input) ) , . wait)
138
- let row1 : DataRow = [ ByteBuffer ( string: " test1 " ) ]
139
- let result = QueryResult ( value: . rowDescription( expected) , logger: queryContext. logger)
140
- XCTAssertEqual ( state. dataRowReceived ( row1) , . succeedQuery( promise, with: result) )
141
- XCTAssertEqual ( state. channelReadComplete ( ) , . forwardRows( [ row1] ) )
142
- XCTAssertEqual ( state. readEventCaught ( ) , . wait)
143
- XCTAssertEqual ( state. requestQueryRows ( ) , . read)
144
-
145
- let row2 : DataRow = [ ByteBuffer ( string: " test2 " ) ]
146
- let row3 : DataRow = [ ByteBuffer ( string: " test3 " ) ]
147
- let row4 : DataRow = [ ByteBuffer ( string: " test4 " ) ]
148
- XCTAssertEqual ( state. dataRowReceived ( row2) , . wait)
149
- XCTAssertEqual ( state. dataRowReceived ( row3) , . wait)
150
- XCTAssertEqual ( state. dataRowReceived ( row4) , . wait)
151
- XCTAssertEqual ( state. channelReadComplete ( ) , . forwardRows( [ row2, row3, row4] ) )
152
- XCTAssertEqual ( state. requestQueryRows ( ) , . wait)
153
- XCTAssertEqual ( state. readEventCaught ( ) , . read)
154
-
155
- XCTAssertEqual ( state. channelReadComplete ( ) , . wait)
156
- XCTAssertEqual ( state. readEventCaught ( ) , . read)
157
-
158
- let row5 : DataRow = [ ByteBuffer ( string: " test5 " ) ]
159
- let row6 : DataRow = [ ByteBuffer ( string: " test6 " ) ]
160
- XCTAssertEqual ( state. dataRowReceived ( row5) , . wait)
161
- XCTAssertEqual ( state. dataRowReceived ( row6) , . wait)
162
-
163
- XCTAssertEqual ( state. commandCompletedReceived ( " SELECT 2 " ) , . forwardStreamComplete( [ row5, row6] , commandTag: " SELECT 2 " ) )
164
- XCTAssertEqual ( state. readyForQueryReceived ( . idle) , . fireEventReadyForQuery)
165
- }
166
-
167
- func testExtendedQueryWithSimpleQueryWithNoQuery( ) {
168
- var state = ConnectionStateMachine . readyForQuery ( )
169
-
170
- let logger = Logger . psqlTest
171
- let promise = EmbeddedEventLoop ( ) . makePromise ( of: PSQLRowStream . self)
172
- promise. fail ( PSQLError . uncleanShutdown) // we don't care about the error at all.
173
- let query = " -- some comments "
174
- let queryContext = SimpleQueryContext ( query: query, logger: logger, promise: promise)
175
-
176
- XCTAssertEqual ( state. enqueue ( task: . simpleQuery( queryContext) ) , . sendQuery( query) )
177
- XCTAssertEqual ( state. emptyQueryResponseReceived ( ) , . succeedQuery( promise, with: . init( value: . noRows( . emptyResponse) , logger: logger) ) )
178
- XCTAssertEqual ( state. readyForQueryReceived ( . idle) , . fireEventReadyForQuery)
179
- }
180
-
181
81
func testExtendedQueryWithNoQuery( ) {
182
82
var state = ConnectionStateMachine . readyForQuery ( )
183
83
0 commit comments