blob: 80c2c1caad023a8be352689dfefbf0b4419af762 [file] [log] [blame]
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:cupertino_http/src/utils.dart';
import 'package:integration_test/integration_test.dart';
import 'package:objective_c/objective_c.dart' as objc;
import 'package:test/test.dart';
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
group('stringNSDictionaryToMap', () {
test('empty input', () {
final d = objc.NSMutableDictionary.new1();
expect(stringNSDictionaryToMap(d), <String, String>{});
});
test('single string input', () {
final d = objc.NSMutableDictionary.new1()
..setObject_forKey_('value'.toNSString(), 'key'.toNSString());
expect(stringNSDictionaryToMap(d), {'key': 'value'});
});
test('multiple string input', () {
final d = objc.NSMutableDictionary.new1()
..setObject_forKey_('value1'.toNSString(), 'key1'.toNSString())
..setObject_forKey_('value2'.toNSString(), 'key2'.toNSString())
..setObject_forKey_('value3'.toNSString(), 'key3'.toNSString());
expect(stringNSDictionaryToMap(d),
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'});
});
test('non-string value', () {
final d = objc.NSMutableDictionary.new1()
..setObject_forKey_(
objc.NSNumberCreation.numberWithInteger_(5), 'key'.toNSString());
expect(() => stringNSDictionaryToMap(d), throwsUnsupportedError);
});
test('non-string key', () {
final d = objc.NSMutableDictionary.new1()
..setObject_forKey_(
'value'.toNSString(), objc.NSNumberCreation.numberWithInteger_(5));
expect(() => stringNSDictionaryToMap(d), throwsUnsupportedError);
});
});
group('stringIterableToNSArray', () {
test('empty input', () {
final array = stringIterableToNSArray([]);
expect(array.count, 0);
});
test('single string input', () {
final array = stringIterableToNSArray(['apple']);
expect(array.count, 1);
expect(
objc.NSString.castFrom(array.objectAtIndex_(0)).toString(), 'apple');
});
test('multiple string input', () {
final array = stringIterableToNSArray(['apple', 'banana']);
expect(array.count, 2);
expect(
objc.NSString.castFrom(array.objectAtIndex_(0)).toString(), 'apple');
expect(
objc.NSString.castFrom(array.objectAtIndex_(1)).toString(), 'banana');
});
});
}