7 #include "gtest/gtest.h"
13 ASSERT_TRUE([codec encode:nil] == nil);
14 ASSERT_TRUE([codec decode:nil] == nil);
19 ASSERT_TRUE([[codec encode:
@""] isEqualTo:[NSData data]]);
20 ASSERT_TRUE([[codec decode:[NSData data]] isEqualTo:
@""]);
24 NSString* value =
@"hello world";
26 NSData* encoded = [codec encode:value];
27 NSString* decoded = [codec decode:encoded];
28 ASSERT_TRUE([value isEqualTo:decoded]);
32 NSString* value =
@"hello \u263A world";
34 NSData* encoded = [codec encode:value];
35 NSString* decoded = [codec decode:encoded];
36 ASSERT_TRUE([value isEqualTo:decoded]);
40 NSString* value =
@"hello \U0001F602 world";
42 NSData* encoded = [codec encode:value];
43 NSString* decoded = [codec decode:encoded];
44 ASSERT_TRUE([value isEqualTo:decoded]);
47 TEST(FlutterJSONCodec, CanDecodeZeroLength) {
49 ASSERT_TRUE([codec decode:[NSData data]] == nil);
52 TEST(FlutterJSONCodec, CanEncodeAndDecodeNil) {
54 ASSERT_TRUE([codec encode:nil] == nil);
55 ASSERT_TRUE([codec decode:nil] == nil);
58 TEST(FlutterJSONCodec, CanEncodeAndDecodeArray) {
59 NSArray* value = @[ [NSNull
null],
@"hello", @3.14, @47, @{
@"a" :
@"nested"} ];
61 NSData* encoded = [codec encode:value];
62 NSArray* decoded = [codec decode:encoded];
63 ASSERT_TRUE([value isEqualTo:decoded]);
66 TEST(FlutterJSONCodec, CanEncodeAndDecodeDictionary) {
67 NSDictionary* value = @{
@"a" : @3.14,
@"b" : @47,
@"c" : [NSNull
null],
@"d" : @[
@"nested" ]};
69 NSData* encoded = [codec encode:value];
70 NSDictionary* decoded = [codec decode:encoded];
71 ASSERT_TRUE([value isEqualTo:decoded]);