in source/UberRidesTests/ObjectMappingTests.swift [45:74]
func testGetProduct() {
let bundle = Bundle(for: ObjectMappingTests.self)
if let path = bundle.path(forResource: "getProductID", ofType: "json") {
if let jsonData = try? Data(contentsOf: URL(fileURLWithPath: path)) {
let product = try? JSONDecoder.uberDecoder.decode(Product.self, from: jsonData)
XCTAssertNotNil(product)
XCTAssertEqual(product!.productID, "a1111c8c-c720-46c3-8534-2fcdd730040d")
XCTAssertEqual(product!.name, "uberX")
XCTAssertEqual(product!.productDescription, "THE LOW-COST UBER")
XCTAssertEqual(product!.capacity, 4)
XCTAssertEqual(product!.imageURL, URL(string: "http://d1a3f4spazzrp4.cloudfront.net/car-types/mono/mono-uberx.png")!)
let priceDetails = product!.priceDetails
XCTAssertNotNil(priceDetails)
XCTAssertEqual(priceDetails!.distanceUnit, "mile")
XCTAssertEqual(priceDetails!.costPerMinute, 0.22)
XCTAssertEqual(priceDetails!.minimumFee, 7.0)
XCTAssertEqual(priceDetails!.costPerDistance, 1.15)
XCTAssertEqual(priceDetails!.baseFee, 2.0)
XCTAssertEqual(priceDetails!.cancellationFee, 5.0)
XCTAssertEqual(priceDetails!.currencyCode, "USD")
let serviceFees = priceDetails!.serviceFees
XCTAssertNotNil(serviceFees)
XCTAssertEqual(serviceFees?.count, 1)
XCTAssertEqual(serviceFees?.first?.name, "Booking fee")
XCTAssertEqual(serviceFees?.first?.fee, 2.0)
}
}
}