| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import Flutter |
| import XCTest |
| @testable import test_plugin |
| |
| class AllDatatypesTests: XCTestCase { |
| |
| func testAllNull() throws { |
| let everything = AllNullableTypes() |
| let binaryMessenger = EchoBinaryMessenger(codec: FlutterIntegrationCoreApiCodec.shared) |
| let api = FlutterIntegrationCoreApi(binaryMessenger: binaryMessenger) |
| |
| let expectation = XCTestExpectation(description: "callback") |
| |
| api.echoAllNullableTypes(everything: everything) { result in |
| XCTAssertNil(result.aNullableBool) |
| XCTAssertNil(result.aNullableInt) |
| XCTAssertNil(result.aNullableDouble) |
| XCTAssertNil(result.aNullableString) |
| XCTAssertNil(result.aNullableByteArray) |
| XCTAssertNil(result.aNullable4ByteArray) |
| XCTAssertNil(result.aNullable8ByteArray) |
| XCTAssertNil(result.aNullableFloatArray) |
| XCTAssertNil(result.aNullableList) |
| XCTAssertNil(result.aNullableMap) |
| XCTAssertNil(result.nullableNestedList) |
| XCTAssertNil(result.nullableMapWithAnnotations) |
| XCTAssertNil(result.nullableMapWithObject) |
| expectation.fulfill() |
| } |
| |
| wait(for: [expectation], timeout: 1.0) |
| } |
| |
| func testAllEquals() throws { |
| let everything = AllNullableTypes( |
| aNullableBool: false, |
| aNullableInt: 1, |
| aNullableDouble: 2.0, |
| aNullableByteArray: FlutterStandardTypedData(bytes: "1234".data(using: .utf8)!), |
| aNullable4ByteArray: FlutterStandardTypedData(int32: "1234".data(using: .utf8)!), |
| aNullable8ByteArray: FlutterStandardTypedData(int64: "12345678".data(using: .utf8)!), |
| aNullableFloatArray: FlutterStandardTypedData(float64: "12345678".data(using: .utf8)!), |
| aNullableList: [1, 2], |
| aNullableMap: ["hello": 1234], |
| nullableNestedList: [[true, false], [true]], |
| nullableMapWithAnnotations: ["hello": "world"], |
| nullableMapWithObject: ["hello": 1234, "goodbye" : "world"], |
| aNullableString: "123" |
| ) |
| |
| let binaryMessenger = EchoBinaryMessenger(codec: FlutterIntegrationCoreApiCodec.shared) |
| let api = FlutterIntegrationCoreApi(binaryMessenger: binaryMessenger) |
| |
| let expectation = XCTestExpectation(description: "callback") |
| |
| api.echoAllNullableTypes(everything: everything) { result in |
| XCTAssertEqual(result.aNullableBool, everything.aNullableBool) |
| XCTAssertEqual(result.aNullableInt, everything.aNullableInt) |
| XCTAssertEqual(result.aNullableDouble, everything.aNullableDouble) |
| XCTAssertEqual(result.aNullableString, everything.aNullableString) |
| XCTAssertEqual(result.aNullableByteArray, everything.aNullableByteArray) |
| XCTAssertEqual(result.aNullable4ByteArray, everything.aNullable4ByteArray) |
| XCTAssertEqual(result.aNullable8ByteArray, everything.aNullable8ByteArray) |
| XCTAssertEqual(result.aNullableFloatArray, everything.aNullableFloatArray) |
| XCTAssert(equalsList(result.aNullableList, everything.aNullableList)) |
| XCTAssert(equalsDictionary(result.aNullableMap, everything.aNullableMap)) |
| XCTAssertEqual(result.nullableNestedList, everything.nullableNestedList) |
| XCTAssertEqual(result.nullableMapWithAnnotations, everything.nullableMapWithAnnotations) |
| XCTAssert(equalsDictionary(result.nullableMapWithObject, everything.nullableMapWithObject)) |
| |
| expectation.fulfill() |
| } |
| |
| wait(for: [expectation], timeout: 1.0) |
| } |
| } |