Skip to content

Commit 6ece4a3

Browse files
committed
Handle EmptyQueryResponse (vapor#500)
1 parent aa7dd50 commit 6ece4a3

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

Tests/PostgresNIOTests/New/Connection State Machine/ExtendedQueryStateMachineTests.swift

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@ import Logging
55
@testable import PostgresNIO
66

77
class ExtendedQueryStateMachineTests: XCTestCase {
8-
8+
99
func testExtendedQueryWithoutDataRowsHappyPath() {
1010
var state = ConnectionStateMachine.readyForQuery()
11-
11+
1212
let logger = Logger.psqlTest
1313
let promise = EmbeddedEventLoop().makePromise(of: PSQLRowStream.self)
1414
promise.fail(PSQLError.uncleanShutdown) // we don't care about the error at all.
1515
let query: PostgresQuery = "DELETE FROM table WHERE id=\(1)"
1616
let queryContext = ExtendedQueryContext(query: query, logger: logger, promise: promise)
17-
17+
1818
XCTAssertEqual(state.enqueue(task: .extendedQuery(queryContext, writePromise: nil)), .sendParseDescribeBindExecuteSync(query, promise: nil))
1919
XCTAssertEqual(state.parseCompleteReceived(), .wait)
2020
XCTAssertEqual(state.parameterDescriptionReceived(.init(dataTypes: [.int8])), .wait)
@@ -23,20 +23,20 @@ class ExtendedQueryStateMachineTests: XCTestCase {
2323
XCTAssertEqual(state.commandCompletedReceived("DELETE 1"), .succeedQuery(promise, with: .init(value: .noRows(.tag("DELETE 1")), logger: logger)))
2424
XCTAssertEqual(state.readyForQueryReceived(.idle), .fireEventReadyForQuery)
2525
}
26-
26+
2727
func testExtendedQueryWithDataRowsHappyPath() {
2828
var state = ConnectionStateMachine.readyForQuery()
29-
29+
3030
let logger = Logger.psqlTest
3131
let promise = EmbeddedEventLoop().makePromise(of: PSQLRowStream.self)
3232
promise.fail(PSQLError.uncleanShutdown) // we don't care about the error at all.
3333
let query: PostgresQuery = "SELECT version()"
3434
let queryContext = ExtendedQueryContext(query: query, logger: logger, promise: promise)
35-
35+
3636
XCTAssertEqual(state.enqueue(task: .extendedQuery(queryContext, writePromise: nil)), .sendParseDescribeBindExecuteSync(query, promise: nil))
3737
XCTAssertEqual(state.parseCompleteReceived(), .wait)
3838
XCTAssertEqual(state.parameterDescriptionReceived(.init(dataTypes: [.int8])), .wait)
39-
39+
4040
// We need to ensure that even though the row description from the wire says that we
4141
// will receive data in `.text` format, we will actually receive it in binary format,
4242
// since we requested it in binary with our bind message.
@@ -47,15 +47,15 @@ class ExtendedQueryStateMachineTests: XCTestCase {
4747
.init(name: $0.name, tableOID: $0.tableOID, columnAttributeNumber: $0.columnAttributeNumber, dataType: $0.dataType,
4848
dataTypeSize: $0.dataTypeSize, dataTypeModifier: $0.dataTypeModifier, format: .binary)
4949
}
50-
50+
5151
XCTAssertEqual(state.rowDescriptionReceived(.init(columns: input)), .wait)
5252
XCTAssertEqual(state.bindCompleteReceived(), .succeedQuery(promise, with: .init(value: .rowDescription(expected), logger: logger)))
5353
let row1: DataRow = [ByteBuffer(string: "test1")]
5454
XCTAssertEqual(state.dataRowReceived(row1), .wait)
5555
XCTAssertEqual(state.channelReadComplete(), .forwardRows([row1]))
5656
XCTAssertEqual(state.readEventCaught(), .wait)
5757
XCTAssertEqual(state.requestQueryRows(), .read)
58-
58+
5959
let row2: DataRow = [ByteBuffer(string: "test2")]
6060
let row3: DataRow = [ByteBuffer(string: "test3")]
6161
let row4: DataRow = [ByteBuffer(string: "test4")]
@@ -65,15 +65,15 @@ class ExtendedQueryStateMachineTests: XCTestCase {
6565
XCTAssertEqual(state.channelReadComplete(), .forwardRows([row2, row3, row4]))
6666
XCTAssertEqual(state.requestQueryRows(), .wait)
6767
XCTAssertEqual(state.readEventCaught(), .read)
68-
68+
6969
XCTAssertEqual(state.channelReadComplete(), .wait)
7070
XCTAssertEqual(state.readEventCaught(), .read)
71-
71+
7272
let row5: DataRow = [ByteBuffer(string: "test5")]
7373
let row6: DataRow = [ByteBuffer(string: "test6")]
7474
XCTAssertEqual(state.dataRowReceived(row5), .wait)
7575
XCTAssertEqual(state.dataRowReceived(row6), .wait)
76-
76+
7777
XCTAssertEqual(state.commandCompletedReceived("SELECT 2"), .forwardStreamComplete([row5, row6], commandTag: "SELECT 2"))
7878
XCTAssertEqual(state.readyForQueryReceived(.idle), .fireEventReadyForQuery)
7979
}
@@ -98,17 +98,17 @@ class ExtendedQueryStateMachineTests: XCTestCase {
9898

9999
func testReceiveTotallyUnexpectedMessageInQuery() {
100100
var state = ConnectionStateMachine.readyForQuery()
101-
101+
102102
let logger = Logger.psqlTest
103103
let promise = EmbeddedEventLoop().makePromise(of: PSQLRowStream.self)
104104
promise.fail(PSQLError.uncleanShutdown) // we don't care about the error at all.
105105
let query: PostgresQuery = "DELETE FROM table WHERE id=\(1)"
106106
let queryContext = ExtendedQueryContext(query: query, logger: logger, promise: promise)
107-
107+
108108
XCTAssertEqual(state.enqueue(task: .extendedQuery(queryContext, writePromise: nil)), .sendParseDescribeBindExecuteSync(query, promise: nil))
109109
XCTAssertEqual(state.parseCompleteReceived(), .wait)
110110
XCTAssertEqual(state.parameterDescriptionReceived(.init(dataTypes: [.int8])), .wait)
111-
111+
112112
let psqlError = PSQLError.unexpectedBackendMessage(.authentication(.ok))
113113
XCTAssertEqual(state.authenticationMessageReceived(.ok),
114114
.failQuery(promise, with: psqlError, cleanupContext: .init(action: .close, tasks: [], error: psqlError, closePromise: nil)))

0 commit comments

Comments
 (0)