blob: 67bb71c5226bc00cce915b26d1ab6ec3814f17c5 [file] [log] [blame]
// 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/Flutter.h>
#import <XCTest/XCTest.h>
#import "EchoMessenger.h"
#import "all_datatypes.gen.h"
///////////////////////////////////////////////////////////////////////////////////////////
@interface AllDatatypesTest : XCTestCase
@end
///////////////////////////////////////////////////////////////////////////////////////////
@implementation AllDatatypesTest
- (void)testAllNull {
Everything* everything = [[Everything alloc] init];
EchoBinaryMessenger* binaryMessenger =
[[EchoBinaryMessenger alloc] initWithCodec:FlutterEverythingGetCodec()];
FlutterEverything* api = [[FlutterEverything alloc] initWithBinaryMessenger:binaryMessenger];
XCTestExpectation* expectation = [self expectationWithDescription:@"callback"];
[api echoEverything:everything
completion:^(Everything* _Nonnull result, NSError* _Nullable error) {
XCTAssertNil(result.aBool);
XCTAssertNil(result.anInt);
XCTAssertNil(result.aDouble);
XCTAssertNil(result.aString);
XCTAssertNil(result.aByteArray);
XCTAssertNil(result.a4ByteArray);
XCTAssertNil(result.a8ByteArray);
XCTAssertNil(result.aFloatArray);
XCTAssertNil(result.aList);
XCTAssertNil(result.aMap);
[expectation fulfill];
}];
[self waitForExpectations:@[ expectation ] timeout:1.0];
}
- (void)testAllEquals {
Everything* everything = [[Everything alloc] init];
everything.aBool = @NO;
everything.anInt = @(1);
everything.aDouble = @(2.0);
everything.aString = @"123";
everything.aByteArray = [FlutterStandardTypedData
typedDataWithBytes:[@"1234" dataUsingEncoding:NSUTF8StringEncoding]];
everything.a4ByteArray = [FlutterStandardTypedData
typedDataWithInt32:[@"1234" dataUsingEncoding:NSUTF8StringEncoding]];
everything.a8ByteArray = [FlutterStandardTypedData
typedDataWithInt64:[@"12345678" dataUsingEncoding:NSUTF8StringEncoding]];
everything.aFloatArray = [FlutterStandardTypedData
typedDataWithFloat64:[@"12345678" dataUsingEncoding:NSUTF8StringEncoding]];
everything.aList = @[ @(1), @(2) ];
everything.aMap = @{ @"hello" : @(1234) };
everything.mapWithObject = @{ @"hello" : @(1234), @"goodbye" : @"world" };
EchoBinaryMessenger* binaryMessenger =
[[EchoBinaryMessenger alloc] initWithCodec:FlutterEverythingGetCodec()];
FlutterEverything* api = [[FlutterEverything alloc] initWithBinaryMessenger:binaryMessenger];
XCTestExpectation* expectation = [self expectationWithDescription:@"callback"];
[api echoEverything:everything
completion:^(Everything* _Nonnull result, NSError* _Nullable error) {
XCTAssertEqual(result.aBool, everything.aBool);
XCTAssertEqual(result.anInt, everything.anInt);
XCTAssertEqual(result.aDouble, everything.aDouble);
XCTAssertEqualObjects(result.aString, everything.aString);
XCTAssertEqualObjects(result.aByteArray.data, everything.aByteArray.data);
XCTAssertEqualObjects(result.a4ByteArray.data, everything.a4ByteArray.data);
XCTAssertEqualObjects(result.a8ByteArray.data, everything.a8ByteArray.data);
XCTAssertEqualObjects(result.aFloatArray.data, everything.aFloatArray.data);
XCTAssertEqualObjects(result.aList, everything.aList);
XCTAssertEqualObjects(result.aMap, everything.aMap);
XCTAssertEqualObjects(result.mapWithObject, everything.mapWithObject);
[expectation fulfill];
}];
[self waitForExpectations:@[ expectation ] timeout:1.0];
}
@end