diff options
Diffstat (limited to 'objectivec/Tests/GPBSwiftTests.swift')
-rw-r--r-- | objectivec/Tests/GPBSwiftTests.swift | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/objectivec/Tests/GPBSwiftTests.swift b/objectivec/Tests/GPBSwiftTests.swift index e7b6f94c..30b9cbd4 100644 --- a/objectivec/Tests/GPBSwiftTests.swift +++ b/objectivec/Tests/GPBSwiftTests.swift @@ -53,6 +53,12 @@ class GPBBridgeTests: XCTestCase { msg.repeatedStringArray.addObject("pqr") msg.repeatedEnumArray.addValue(Message2_Enum.Bar.rawValue) msg.repeatedEnumArray.addValue(Message2_Enum.Baz.rawValue) + msg.mapInt32Int32.setValue(400, forKey:500) + msg.mapInt32Int32.setValue(401, forKey:501) + msg.mapStringString.setObject("foo", forKey:"bar") + msg.mapStringString.setObject("abc", forKey:"xyz") + msg.mapInt32Enum.setValue(Message2_Enum.Bar.rawValue, forKey:600) + msg.mapInt32Enum.setValue(Message2_Enum.Baz.rawValue, forKey:601) // Check has*. XCTAssertTrue(msg.hasOptionalInt32) @@ -83,6 +89,20 @@ class GPBBridgeTests: XCTestCase { XCTAssertEqual(msg.repeatedEnumArray.valueAtIndex(0), Message2_Enum.Bar.rawValue) XCTAssertEqual(msg.repeatedEnumArray.valueAtIndex(1), Message2_Enum.Baz.rawValue) XCTAssertEqual(msg.repeatedInt64Array.count, UInt(0)) + XCTAssertEqual(msg.mapInt32Int32.count, UInt(2)) + var intValue: Int32 = 0; + XCTAssertTrue(msg.mapInt32Int32.valueForKey(500, value:&intValue)) + XCTAssertEqual(intValue, Int32(400)) + XCTAssertTrue(msg.mapInt32Int32.valueForKey(501, value:&intValue)) + XCTAssertEqual(intValue, Int32(401)) + XCTAssertEqual(msg.mapStringString.count, Int(2)) + XCTAssertEqual(msg.mapStringString.objectForKey("bar") as! String, "foo") + XCTAssertEqual(msg.mapStringString.objectForKey("xyz") as! String, "abc") + XCTAssertEqual(msg.mapInt32Enum.count, UInt(2)) + XCTAssertTrue(msg.mapInt32Enum.valueForKey(600, value:&intValue)) + XCTAssertEqual(intValue, Message2_Enum.Bar.rawValue) + XCTAssertTrue(msg.mapInt32Enum.valueForKey(601, value:&intValue)) + XCTAssertEqual(intValue, Message2_Enum.Baz.rawValue) // Clearing a string with nil. msg2.optionalString = nil @@ -109,6 +129,9 @@ class GPBBridgeTests: XCTestCase { XCTAssertEqual(msg.repeatedInt32Array.count, UInt(0)) XCTAssertEqual(msg.repeatedStringArray.count, Int(0)) XCTAssertEqual(msg.repeatedEnumArray.count, UInt(0)) + XCTAssertEqual(msg.mapInt32Int32.count, UInt(0)) + XCTAssertEqual(msg.mapStringString.count, Int(0)) + XCTAssertEqual(msg.mapInt32Enum.count, UInt(0)) } func testProto3Basics() { @@ -128,6 +151,13 @@ class GPBBridgeTests: XCTestCase { msg.repeatedEnumArray.addValue(Message3_Enum.Bar.rawValue) msg.repeatedEnumArray.addRawValue(666) SetMessage3_OptionalEnum_RawValue(msg2, 666) + msg.mapInt32Int32.setValue(400, forKey:500) + msg.mapInt32Int32.setValue(401, forKey:501) + msg.mapStringString.setObject("foo", forKey:"bar") + msg.mapStringString.setObject("abc", forKey:"xyz") + msg.mapInt32Enum.setValue(Message2_Enum.Bar.rawValue, forKey:600) + // "proto3" syntax lets enum get unknown values. + msg.mapInt32Enum.setRawValue(666, forKey:601) // Has only exists on for message fields. XCTAssertTrue(msg.hasOptionalMessage) @@ -152,6 +182,22 @@ class GPBBridgeTests: XCTestCase { XCTAssertEqual(msg.repeatedEnumArray.rawValueAtIndex(1), 666) XCTAssertEqual(msg2.optionalEnum, Message3_Enum.GPBUnrecognizedEnumeratorValue) XCTAssertEqual(Message3_OptionalEnum_RawValue(msg2), Int32(666)) + XCTAssertEqual(msg.mapInt32Int32.count, UInt(2)) + var intValue: Int32 = 0; + XCTAssertTrue(msg.mapInt32Int32.valueForKey(500, value:&intValue)) + XCTAssertEqual(intValue, Int32(400)) + XCTAssertTrue(msg.mapInt32Int32.valueForKey(501, value:&intValue)) + XCTAssertEqual(intValue, Int32(401)) + XCTAssertEqual(msg.mapStringString.count, Int(2)) + XCTAssertEqual(msg.mapStringString.objectForKey("bar") as! String, "foo") + XCTAssertEqual(msg.mapStringString.objectForKey("xyz") as! String, "abc") + XCTAssertEqual(msg.mapInt32Enum.count, UInt(2)) + XCTAssertTrue(msg.mapInt32Enum.valueForKey(600, value:&intValue)) + XCTAssertEqual(intValue, Message2_Enum.Bar.rawValue) + XCTAssertTrue(msg.mapInt32Enum.valueForKey(601, value:&intValue)) + XCTAssertEqual(intValue, Message3_Enum.GPBUnrecognizedEnumeratorValue.rawValue) + XCTAssertTrue(msg.mapInt32Enum.valueForKey(601, rawValue:&intValue)) + XCTAssertEqual(intValue, 666) // Clearing a string with nil. msg2.optionalString = nil @@ -175,6 +221,9 @@ class GPBBridgeTests: XCTestCase { msg2.clear() XCTAssertEqual(msg2.optionalEnum, Message3_Enum.Foo) // Default XCTAssertEqual(Message3_OptionalEnum_RawValue(msg2), Message3_Enum.Foo.rawValue) + XCTAssertEqual(msg.mapInt32Int32.count, UInt(0)) + XCTAssertEqual(msg.mapStringString.count, Int(0)) + XCTAssertEqual(msg.mapInt32Enum.count, UInt(0)) } func testAutoCreation() { @@ -390,15 +439,21 @@ class GPBBridgeTests: XCTestCase { msg.optionalGroup.a = 102 msg.repeatedStringArray.addObject("abc") msg.repeatedStringArray.addObject("def") + msg.mapInt32Int32.setValue(200, forKey:300) + msg.mapInt32Int32.setValue(201, forKey:201) + msg.mapStringString.setObject("foo", forKey:"bar") + msg.mapStringString.setObject("abc", forKey:"xyz") let data = msg.data() - let msg2 = Message2(data: data) + let msg2 = Message2(data: data, error:nil) XCTAssertTrue(msg2 !== msg) // New instance XCTAssertEqual(msg.optionalInt32, Int32(100)) XCTAssertEqual(msg.optionalInt64, Int64(101)) XCTAssertEqual(msg.optionalGroup.a, Int32(102)) XCTAssertEqual(msg.repeatedStringArray.count, Int(2)) + XCTAssertEqual(msg.mapInt32Int32.count, UInt(2)) + XCTAssertEqual(msg.mapStringString.count, Int(2)) XCTAssertEqual(msg2, msg) } |