in source/UberRidesTests/APIManagerTests.swift [220:262]
func testRequestBuilderAllParameters() {
let pickupLocation = CLLocation(latitude: pickupLat, longitude: pickupLong)
let dropoffLocation = CLLocation(latitude: dropoffLat, longitude: dropoffLong)
let builder = RideParametersBuilder()
builder.pickupLocation = pickupLocation
builder.pickupNickname = pickupNickname
builder.pickupAddress = pickupAddress
builder.dropoffLocation = dropoffLocation
builder.dropoffNickname = dropoffNickname
builder.dropoffAddress = dropoffAddress
builder.productID = productID
builder.surgeConfirmationID = surgeConfirm
builder.paymentMethod = paymentMethod
let rideParameters = builder.build()
guard let data = RideRequestDataBuilder(rideParameters: rideParameters).build() else {
XCTAssert(false)
return
}
var dict: Dictionary<String, Any>?
do {
dict = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? Dictionary<String, Any>
} catch {
XCTAssert(false)
}
if let dictionary = dict {
XCTAssertEqual(dictionary["product_id"] as? String, productID)
XCTAssertEqual(dictionary["start_latitude"] as? Double, pickupLat)
XCTAssertEqual(dictionary["start_longitude"] as? Double, pickupLong)
XCTAssertEqual(dictionary["start_nickname"] as? String, pickupNickname)
XCTAssertEqual(dictionary["start_address"] as? String, pickupAddress)
XCTAssertEqual(dictionary["end_latitude"] as? Double, dropoffLat)
XCTAssertEqual(dictionary["end_longitude"] as? Double, dropoffLong)
XCTAssertEqual(dictionary["end_nickname"] as? String, dropoffNickname)
XCTAssertEqual(dictionary["end_address"] as? String, dropoffAddress)
XCTAssertEqual(dictionary["payment_method_id"] as? String, paymentMethod)
XCTAssertEqual(dictionary["surge_confirmation_id"] as? String, surgeConfirm)
} else {
XCTAssert(false)
}
}