aboutsummaryrefslogtreecommitdiffhomepage
path: root/objectivec/Tests/GPBSwiftTests.swift
diff options
context:
space:
mode:
Diffstat (limited to 'objectivec/Tests/GPBSwiftTests.swift')
-rw-r--r--objectivec/Tests/GPBSwiftTests.swift57
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)
}