func testRequestBuilderAllParameters()

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)
        }
    }