@ -42,23 +42,23 @@ class GPBBridgeTests: XCTestCase {
msg . optionalInt32 = 100
msg . optionalString = " abc "
msg . optionalEnum = . B ar
msg . optionalEnum = . b ar
msg2 . optionalString = " other "
msg . optionalMessage = msg2
msg . optional = msg2
msg3 . a = 200
msg . optionalGroup = msg3
msg . repeatedInt32Array . addValue ( 300 )
msg . repeatedInt32Array . addValue ( 301 )
msg . repeatedStringArray . addObject ( " mno " )
msg . repeatedStringArray . addObject ( " pqr " )
msg . repeatedEnumArray . addValue ( Message2_Enum . B ar. rawValue )
msg . repeatedEnumArray . addValue ( Message2_Enum . B az. rawValue )
msg . repeatedStringArray . add ( " mno " )
msg . repeatedStringArray . add ( " pqr " )
msg . repeatedEnumArray . addValue ( Message2_Enum . b ar. rawValue )
msg . repeatedEnumArray . addValue ( Message2_Enum . b az. rawValue )
msg . mapInt32Int32 . setInt32 ( 400 , forKey : 500 )
msg . mapInt32Int32 . setInt32 ( 401 , forKey : 501 )
msg . mapStringString . setObject ( " foo " , forKey : " bar " )
msg . mapStringString . setObject ( " abc " , forKey : " xyz " )
msg . mapInt32Enum . setEnum ( Message2_Enum . B ar. rawValue , forKey : 600 )
msg . mapInt32Enum . setEnum ( Message2_Enum . B az. rawValue , forKey : 601 )
msg . mapStringString . setObject ( " foo " , forKey : " bar " as NSString )
msg . mapStringString . setObject ( " abc " , forKey : " xyz " as NSString )
msg . mapInt32Enum . setEnum ( Message2_Enum . b ar. rawValue , forKey : 600 )
msg . mapInt32Enum . setEnum ( Message2_Enum . b az. rawValue , forKey : 601 )
// C h e c k h a s * .
XCTAssertTrue ( msg . hasOptionalInt32 )
@ -75,19 +75,19 @@ class GPBBridgeTests: XCTestCase {
XCTAssertEqual ( msg . optionalInt32 , Int32 ( 100 ) )
XCTAssertEqual ( msg . optionalString , " abc " )
XCTAssertEqual ( msg2 . optionalString , " other " )
XCTAssertTrue ( msg . optionalMessage = = = msg2 )
XCTAssertEqual ( msg . optionalEnum , Message2_Enum . B ar)
XCTAssertTrue ( msg . optional = = = msg2 )
XCTAssertEqual ( msg . optionalEnum , Message2_Enum . b ar)
XCTAssertEqual ( msg3 . a , Int32 ( 200 ) )
XCTAssertTrue ( msg . optionalGroup = = = msg3 )
XCTAssertEqual ( msg . repeatedInt32Array . count , UInt ( 2 ) )
XCTAssertEqual ( msg . repeatedInt32Array . valueAtIndex ( 0 ) , Int32 ( 300 ) )
XCTAssertEqual ( msg . repeatedInt32Array . valueAtIndex ( 1 ) , Int32 ( 301 ) )
XCTAssertEqual ( msg . repeatedInt32Array . value ( at : 0 ) , Int32 ( 300 ) )
XCTAssertEqual ( msg . repeatedInt32Array . value ( at : 1 ) , Int32 ( 301 ) )
XCTAssertEqual ( msg . repeatedStringArray . count , Int ( 2 ) )
XCTAssertEqual ( msg . repeatedStringArray . objectAtIndex ( 0 ) as ? String , " mno " )
XCTAssertEqual ( msg . repeatedStringArray . objectAtIndex ( 1 ) as ? String , " pqr " )
XCTAssertEqual ( msg . repeatedStringArray . object ( at : 0 ) as ? String , " mno " )
XCTAssertEqual ( msg . repeatedStringArray . object ( at : 1 ) as ? String , " pqr " )
XCTAssertEqual ( msg . repeatedEnumArray . count , UInt ( 2 ) )
XCTAssertEqual ( msg . repeatedEnumArray . valueAtIndex ( 0 ) , Message2_Enum . B ar. rawValue )
XCTAssertEqual ( msg . repeatedEnumArray . valueAtIndex ( 1 ) , Message2_Enum . B az. rawValue )
XCTAssertEqual ( msg . repeatedEnumArray . value ( at : 0 ) , Message2_Enum . b ar. rawValue )
XCTAssertEqual ( msg . repeatedEnumArray . value ( at : 1 ) , Message2_Enum . b az. rawValue )
XCTAssertEqual ( msg . repeatedInt64Array . count , UInt ( 0 ) )
XCTAssertEqual ( msg . mapInt32Int32 . count , UInt ( 2 ) )
var intValue : Int32 = 0
@ -96,13 +96,13 @@ class GPBBridgeTests: XCTestCase {
XCTAssertTrue ( msg . mapInt32Int32 . getInt32 ( & intValue , forKey : 501 ) )
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 . mapStringString . object ( forKey : " bar " ) as ? String , " foo " )
XCTAssertEqual ( msg . mapStringString . object ( forKey : " xyz " ) as ? String , " abc " )
XCTAssertEqual ( msg . mapInt32Enum . count , UInt ( 2 ) )
XCTAssertTrue ( msg . mapInt32Enum . getEnum ( & intValue , forKey : 600 ) )
XCTAssertEqual ( intValue , Message2_Enum . B ar. rawValue )
XCTAssertEqual ( intValue , Message2_Enum . b ar. rawValue )
XCTAssertTrue ( msg . mapInt32Enum . getEnum ( & intValue , forKey : 601 ) )
XCTAssertEqual ( intValue , Message2_Enum . B az. rawValue )
XCTAssertEqual ( intValue , Message2_Enum . b az. rawValue )
// C l e a r i n g a s t r i n g w i t h n i l .
msg2 . optionalString = nil
@ -124,8 +124,8 @@ class GPBBridgeTests: XCTestCase {
XCTAssertFalse ( msg . hasOptionalFloat )
XCTAssertEqual ( msg . optionalInt32 , Int32 ( 0 ) )
XCTAssertEqual ( msg . optionalString , " " )
XCTAssertTrue ( msg . optionalMessage !== msg2 ) // N e w i n s t a n c e
XCTAssertEqual ( msg . optionalEnum , Message2_Enum . F oo) // D e f a u l t
XCTAssertTrue ( msg . optional !== msg2 ) // N e w i n s t a n c e
XCTAssertEqual ( msg . optionalEnum , Message2_Enum . f oo) // D e f a u l t
XCTAssertEqual ( msg . repeatedInt32Array . count , UInt ( 0 ) )
XCTAssertEqual ( msg . repeatedStringArray . count , Int ( 0 ) )
XCTAssertEqual ( msg . repeatedEnumArray . count , UInt ( 0 ) )
@ -140,22 +140,22 @@ class GPBBridgeTests: XCTestCase {
msg . optionalInt32 = 100
msg . optionalString = " abc "
msg . optionalEnum = . B ar
msg . optionalEnum = . b ar
msg2 . optionalString = " other "
msg . optionalMessage = msg2
msg . optional = msg2
msg . repeatedInt32Array . addValue ( 300 )
msg . repeatedInt32Array . addValue ( 301 )
msg . repeatedStringArray . addObject ( " mno " )
msg . repeatedStringArray . addObject ( " pqr " )
msg . repeatedStringArray . add ( " mno " )
msg . repeatedStringArray . add ( " pqr " )
// " p r o t o 3 " s y n t a x l e t s e n u m g e t u n k n o w n v a l u e s .
msg . repeatedEnumArray . addValue ( Message3_Enum . B ar. rawValue )
msg . repeatedEnumArray . addValue ( Message3_Enum . b ar. rawValue )
msg . repeatedEnumArray . addRawValue ( 666 )
SetMessage3_OptionalEnum_RawValue ( msg2 , 666 )
msg . mapInt32Int32 . setInt32 ( 400 , forKey : 500 )
msg . mapInt32Int32 . setInt32 ( 401 , forKey : 501 )
msg . mapStringString . setObject ( " foo " , forKey : " bar " )
msg . mapStringString . setObject ( " abc " , forKey : " xyz " )
msg . mapInt32Enum . setEnum ( Message2_Enum . B ar. rawValue , forKey : 600 )
msg . mapStringString . setObject ( " foo " , forKey : " bar " as NSString )
msg . mapStringString . setObject ( " abc " , forKey : " xyz " as NSString )
msg . mapInt32Enum . setEnum ( Message2_Enum . b ar. rawValue , forKey : 600 )
// " p r o t o 3 " s y n t a x l e t s e n u m g e t u n k n o w n v a l u e s .
msg . mapInt32Enum . setRawValue ( 666 , forKey : 601 )
@ -167,20 +167,20 @@ class GPBBridgeTests: XCTestCase {
XCTAssertEqual ( msg . optionalInt32 , Int32 ( 100 ) )
XCTAssertEqual ( msg . optionalString , " abc " )
XCTAssertEqual ( msg2 . optionalString , " other " )
XCTAssertTrue ( msg . optionalMessage = = = msg2 )
XCTAssertEqual ( msg . optionalEnum , Message3_Enum . B ar)
XCTAssertTrue ( msg . optional = = = msg2 )
XCTAssertEqual ( msg . optionalEnum , Message3_Enum . b ar)
XCTAssertEqual ( msg . repeatedInt32Array . count , UInt ( 2 ) )
XCTAssertEqual ( msg . repeatedInt32Array . valueAtIndex ( 0 ) , Int32 ( 300 ) )
XCTAssertEqual ( msg . repeatedInt32Array . valueAtIndex ( 1 ) , Int32 ( 301 ) )
XCTAssertEqual ( msg . repeatedInt32Array . value ( at : 0 ) , Int32 ( 300 ) )
XCTAssertEqual ( msg . repeatedInt32Array . value ( at : 1 ) , Int32 ( 301 ) )
XCTAssertEqual ( msg . repeatedStringArray . count , Int ( 2 ) )
XCTAssertEqual ( msg . repeatedStringArray . objectAtIndex ( 0 ) as ? String , " mno " )
XCTAssertEqual ( msg . repeatedStringArray . objectAtIndex ( 1 ) as ? String , " pqr " )
XCTAssertEqual ( msg . repeatedStringArray . object ( at : 0 ) as ? String , " mno " )
XCTAssertEqual ( msg . repeatedStringArray . object ( at : 1 ) as ? String , " pqr " )
XCTAssertEqual ( msg . repeatedInt64Array . count , UInt ( 0 ) )
XCTAssertEqual ( msg . repeatedEnumArray . count , UInt ( 2 ) )
XCTAssertEqual ( msg . repeatedEnumArray . valueAtIndex ( 0 ) , Message3_Enum . B ar. rawValue )
XCTAssertEqual ( msg . repeatedEnumArray . valueAtIndex ( 1 ) , Message3_Enum . GPB UnrecognizedEnumeratorValue. rawValue )
XCTAssertEqual ( msg . repeatedEnumArray . rawValueAtIndex ( 1 ) , 666 )
XCTAssertEqual ( msg2 . optionalEnum , Message3_Enum . GPB UnrecognizedEnumeratorValue)
XCTAssertEqual ( msg . repeatedEnumArray . value ( at : 0 ) , Message3_Enum . b ar. rawValue )
XCTAssertEqual ( msg . repeatedEnumArray . value ( at : 1 ) , Message3_Enum . gpb UnrecognizedEnumeratorValue. rawValue )
XCTAssertEqual ( msg . repeatedEnumArray . rawValue ( at : 1 ) , 666 )
XCTAssertEqual ( msg2 . optionalEnum , Message3_Enum . gpb UnrecognizedEnumeratorValue)
XCTAssertEqual ( Message3_OptionalEnum_RawValue ( msg2 ) , Int32 ( 666 ) )
XCTAssertEqual ( msg . mapInt32Int32 . count , UInt ( 2 ) )
var intValue : Int32 = 0
@ -189,13 +189,13 @@ class GPBBridgeTests: XCTestCase {
XCTAssertTrue ( msg . mapInt32Int32 . getInt32 ( & intValue , forKey : 501 ) )
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 . mapStringString . object ( forKey : " bar " ) as ? String , " foo " )
XCTAssertEqual ( msg . mapStringString . object ( forKey : " xyz " ) as ? String , " abc " )
XCTAssertEqual ( msg . mapInt32Enum . count , UInt ( 2 ) )
XCTAssertTrue ( msg . mapInt32Enum . getEnum ( & intValue , forKey : 600 ) )
XCTAssertEqual ( intValue , Message2_Enum . B ar. rawValue )
XCTAssertEqual ( intValue , Message2_Enum . b ar. rawValue )
XCTAssertTrue ( msg . mapInt32Enum . getEnum ( & intValue , forKey : 601 ) )
XCTAssertEqual ( intValue , Message3_Enum . GPB UnrecognizedEnumeratorValue. rawValue )
XCTAssertEqual ( intValue , Message3_Enum . gpb UnrecognizedEnumeratorValue. rawValue )
XCTAssertTrue ( msg . mapInt32Enum . getRawValue ( & intValue , forKey : 601 ) )
XCTAssertEqual ( intValue , 666 )
@ -204,23 +204,23 @@ class GPBBridgeTests: XCTestCase {
XCTAssertEqual ( msg2 . optionalString , " " )
// C l e a r i n g a m e s s a g e w i t h n i l .
msg . optionalMessage = nil
msg . optional = nil
XCTAssertFalse ( msg . hasOptionalMessage )
XCTAssertTrue ( msg . optionalMessage !== msg2 ) // N e w i n s t a n c e
XCTAssertTrue ( msg . optional !== msg2 ) // N e w i n s t a n c e
// C l e a r .
msg . clear ( )
XCTAssertFalse ( msg . hasOptionalMessage )
XCTAssertEqual ( msg . optionalInt32 , Int32 ( 0 ) )
XCTAssertEqual ( msg . optionalString , " " )
XCTAssertTrue ( msg . optionalMessage !== msg2 ) // N e w i n s t a n c e
XCTAssertEqual ( msg . optionalEnum , Message3_Enum . F oo) // D e f a u l t
XCTAssertTrue ( msg . optional !== msg2 ) // N e w i n s t a n c e
XCTAssertEqual ( msg . optionalEnum , Message3_Enum . f oo) // D e f a u l t
XCTAssertEqual ( msg . repeatedInt32Array . count , UInt ( 0 ) )
XCTAssertEqual ( msg . repeatedStringArray . count , Int ( 0 ) )
XCTAssertEqual ( msg . repeatedEnumArray . count , UInt ( 0 ) )
msg2 . clear ( )
XCTAssertEqual ( msg2 . optionalEnum , Message3_Enum . F oo) // D e f a u l t
XCTAssertEqual ( Message3_OptionalEnum_RawValue ( msg2 ) , Message3_Enum . F oo. rawValue )
XCTAssertEqual ( msg2 . optionalEnum , Message3_Enum . f oo) // D e f a u l t
XCTAssertEqual ( Message3_OptionalEnum_RawValue ( msg2 ) , Message3_Enum . f oo. rawValue )
XCTAssertEqual ( msg . mapInt32Int32 . count , UInt ( 0 ) )
XCTAssertEqual ( msg . mapStringString . count , Int ( 0 ) )
XCTAssertEqual ( msg . mapInt32Enum . count , UInt ( 0 ) )
@ -234,201 +234,201 @@ class GPBBridgeTests: XCTestCase {
// A c c e s s s h o u l d n ' t r e s u l t i n h a s * b u t s h o u l d r e t u r n o b j e c t s .
let msg2 = msg . optionalGroup
let msg3 = msg . optionalMessage . optionalMessage
let msg4 = msg . optionalMessage
let msg3 = msg . optional . optional
let msg4 = msg . optional
XCTAssertNotNil ( msg2 )
XCTAssertNotNil ( msg3 )
XCTAssertFalse ( msg . hasOptionalGroup )
XCTAssertFalse ( msg . optionalMessage . hasOptionalMessage )
XCTAssertFalse ( msg . optional . hasOptionalMessage )
XCTAssertFalse ( msg . hasOptionalMessage )
// S e t t i n g t h i n g s s h o u l d t r i g g e r h a s * g e t t i n g s e t .
msg . optionalGroup . a = 10
msg . optionalMessage . optionalMessage . optionalInt32 = 100
msg . optional . optional . optionalInt32 = 100
XCTAssertTrue ( msg . hasOptionalGroup )
XCTAssertTrue ( msg . optionalMessage . hasOptionalMessage )
XCTAssertTrue ( msg . optional . hasOptionalMessage )
XCTAssertTrue ( msg . hasOptionalMessage )
// A n d t h e y s h o u l d b e t h e s a m e p o i n t e r a s b e f o r e .
XCTAssertTrue ( msg2 = = = msg . optionalGroup )
XCTAssertTrue ( msg3 = = = msg . optionalMessage . optionalMessage )
XCTAssertTrue ( msg4 = = = msg . optionalMessage )
XCTAssertTrue ( msg3 = = = msg . optional . optional )
XCTAssertTrue ( msg4 = = = msg . optional )
// C l e a r g e t s u s n e w o b j e c t s n e x t t i m e a r o u n d .
msg . clear ( )
XCTAssertFalse ( msg . hasOptionalGroup )
XCTAssertFalse ( msg . optionalMessage . hasOptionalMessage )
XCTAssertFalse ( msg . optional . hasOptionalMessage )
XCTAssertFalse ( msg . hasOptionalMessage )
msg . optionalGroup . a = 20
msg . optionalMessage . optionalMessage . optionalInt32 = 200
msg . optional . optional . optionalInt32 = 200
XCTAssertTrue ( msg . hasOptionalGroup )
XCTAssertTrue ( msg . optionalMessage . hasOptionalMessage )
XCTAssertTrue ( msg . optional . hasOptionalMessage )
XCTAssertTrue ( msg . hasOptionalMessage )
XCTAssertTrue ( msg2 !== msg . optionalGroup )
XCTAssertTrue ( msg3 !== msg . optionalMessage . optionalMessage )
XCTAssertTrue ( msg4 !== msg . optionalMessage )
XCTAssertTrue ( msg3 !== msg . optional . optional )
XCTAssertTrue ( msg4 !== msg . optional )
// E x p l i c i t s e t o f a m e s s a g e , m e a n s a u t o c r e a t e d o b j e c t d o e s n ' t b i n d .
msg . clear ( )
let autoCreated = msg . optionalMessage
let autoCreated = msg . optional
XCTAssertFalse ( msg . hasOptionalMessage )
let msg5 = Message2 ( )
msg5 . optionalInt32 = 123
msg . optionalMessage = msg5
msg . optional = msg5
XCTAssertTrue ( msg . hasOptionalMessage )
// M o d i f i n g t h e a u t o c r e a t e d d o e s n ' t r e p l a c e d t h e e x p l i c i t s e t o n e .
autoCreated . optionalInt32 = 456
autoCreated ? . optionalInt32 = 456
XCTAssertTrue ( msg . hasOptionalMessage )
XCTAssertTrue ( msg . optionalMessage = = = msg5 )
XCTAssertEqual ( msg . optionalMessage . optionalInt32 , Int32 ( 123 ) )
XCTAssertTrue ( msg . optional = = = msg5 )
XCTAssertEqual ( msg . optional . optionalInt32 , Int32 ( 123 ) )
}
func testProto2OneOfSupport ( ) {
let msg = Message2 ( )
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . GPB UnsetOneOfCase)
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . gpb UnsetOneOfCase)
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 100 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofFloat , Float ( 110.0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . B az) // D e f a u l t
let autoCreated = msg . oneofMessage // D e f a u l t c r e a t e o n e .
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . b az) // D e f a u l t
let autoCreated = msg . oneof // D e f a u l t c r e a t e o n e .
XCTAssertNotNil ( autoCreated )
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . GPB UnsetOneOfCase)
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . gpb UnsetOneOfCase)
msg . oneofInt32 = 10
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 10 ) )
XCTAssertEqual ( msg . oneofFloat , Float ( 110.0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . B az) // D e f a u l t
XCTAssertTrue ( msg . oneofMessage = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . O neofInt32)
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . b az) // D e f a u l t
XCTAssertTrue ( msg . oneof = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . o neofInt32)
msg . oneofFloat = 20.0
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 100 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofFloat , Float ( 20.0 ) )
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . B az) // D e f a u l t
XCTAssertTrue ( msg . oneofMessage = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . O neofFloat)
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . b az) // D e f a u l t
XCTAssertTrue ( msg . oneof = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . o neofFloat)
msg . oneofEnum = . B ar
msg . oneofEnum = . b ar
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 100 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofFloat , Float ( 110.0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . B ar)
XCTAssertTrue ( msg . oneofMessage = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . O neofEnum)
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . b ar)
XCTAssertTrue ( msg . oneof = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . o neofEnum)
// S e t s v i a t h e a u t o c r e a t e d i n s t a n c e .
msg . oneofMessage . optionalInt32 = 200
msg . oneof . optionalInt32 = 200
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 100 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofFloat , Float ( 110.0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . B az) // D e f a u l t
XCTAssertTrue ( msg . oneofMessage = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oneofMessage . optionalInt32 , Int32 ( 200 ) )
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . O neofMessage)
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . b az) // D e f a u l t
XCTAssertTrue ( msg . oneof = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oneof . optionalInt32 , Int32 ( 200 ) )
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . o neofMessage)
// C l e a r t h e o n e o f .
Message2_ClearOOneOfCase ( msg )
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 100 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofFloat , Float ( 110.0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . B az) // D e f a u l t
let autoCreated2 = msg . oneofMessage // D e f a u l t c r e a t e o n e
XCTAssertEqual ( msg . oneofEnum , Message2_Enum . b az) // D e f a u l t
let autoCreated2 = msg . oneof // D e f a u l t c r e a t e o n e
XCTAssertNotNil ( autoCreated2 )
XCTAssertTrue ( autoCreated2 !== autoCreated ) // N e w i n s t a n c e
XCTAssertEqual ( msg . oneofMessage . optionalInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . GPB UnsetOneOfCase)
XCTAssertEqual ( msg . oneof . optionalInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . gpb UnsetOneOfCase)
msg . oneofInt32 = 10
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 10 ) )
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . O neofInt32)
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . o neofInt32)
// C o n f i r m M e s s a g e . c l e a r ( ) h a n d l e s t h e o n e o f c o r r e c t l y .
msg . clear ( )
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 100 ) ) // D e f a u l t
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . GPB UnsetOneOfCase)
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . gpb UnsetOneOfCase)
// S e t s v i a t h e a u t o c r e a t e d i n s t a n c e .
msg . oneofMessage . optionalInt32 = 300
XCTAssertTrue ( msg . oneofMessage !== autoCreated ) // N e w i n s t a n c e
XCTAssertTrue ( msg . oneofMessage !== autoCreated2 ) // N e w i n s t a n c e
XCTAssertEqual ( msg . oneofMessage . optionalInt32 , Int32 ( 300 ) )
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . O neofMessage)
msg . oneof . optionalInt32 = 300
XCTAssertTrue ( msg . oneof !== autoCreated ) // N e w i n s t a n c e
XCTAssertTrue ( msg . oneof !== autoCreated2 ) // N e w i n s t a n c e
XCTAssertEqual ( msg . oneof . optionalInt32 , Int32 ( 300 ) )
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . o neofMessage)
// S e t m e s s a g e t o n i l c l e a r s t h e o n e o f .
msg . oneofMessage = nil
XCTAssertEqual ( msg . oneofMessage . optionalInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . GPB UnsetOneOfCase)
msg . oneof = nil
XCTAssertEqual ( msg . oneof . optionalInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oOneOfCase , Message2_O_OneOfCase . gpb UnsetOneOfCase)
}
func testProto3OneOfSupport ( ) {
let msg = Message3 ( )
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . GPB UnsetOneOfCase)
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . gpb UnsetOneOfCase)
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofFloat , Float ( 0.0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . F oo) // D e f a u l t
let autoCreated = msg . oneofMessage // D e f a u l t c r e a t e o n e .
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . f oo) // D e f a u l t
let autoCreated = msg . oneof // D e f a u l t c r e a t e o n e .
XCTAssertNotNil ( autoCreated )
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . GPB UnsetOneOfCase)
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . gpb UnsetOneOfCase)
msg . oneofInt32 = 10
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 10 ) )
XCTAssertEqual ( msg . oneofFloat , Float ( 0.0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . F oo) // D e f a u l t
XCTAssertTrue ( msg . oneofMessage = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . O neofInt32)
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . f oo) // D e f a u l t
XCTAssertTrue ( msg . oneof = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . o neofInt32)
msg . oneofFloat = 20.0
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofFloat , Float ( 20.0 ) )
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . F oo) // D e f a u l t
XCTAssertTrue ( msg . oneofMessage = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . O neofFloat)
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . f oo) // D e f a u l t
XCTAssertTrue ( msg . oneof = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . o neofFloat)
msg . oneofEnum = . B ar
msg . oneofEnum = . b ar
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofFloat , Float ( 0.0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . B ar)
XCTAssertTrue ( msg . oneofMessage = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . O neofEnum)
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . b ar)
XCTAssertTrue ( msg . oneof = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . o neofEnum)
// S e t s v i a t h e a u t o c r e a t e d i n s t a n c e .
msg . oneofMessage . optionalInt32 = 200
msg . oneof . optionalInt32 = 200
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofFloat , Float ( 0.0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . F oo) // D e f a u l t
XCTAssertTrue ( msg . oneofMessage = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oneofMessage . optionalInt32 , Int32 ( 200 ) )
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . O neofMessage)
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . f oo) // D e f a u l t
XCTAssertTrue ( msg . oneof = = = autoCreated ) // S t i l l t h e s a m e
XCTAssertEqual ( msg . oneof . optionalInt32 , Int32 ( 200 ) )
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . o neofMessage)
// C l e a r t h e o n e o f .
Message3_ClearOOneOfCase ( msg )
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofFloat , Float ( 0.0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . F oo) // D e f a u l t
let autoCreated2 = msg . oneofMessage // D e f a u l t c r e a t e o n e
XCTAssertEqual ( msg . oneofEnum , Message3_Enum . f oo) // D e f a u l t
let autoCreated2 = msg . oneof // D e f a u l t c r e a t e o n e
XCTAssertNotNil ( autoCreated2 )
XCTAssertTrue ( autoCreated2 !== autoCreated ) // N e w i n s t a n c e
XCTAssertEqual ( msg . oneofMessage . optionalInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . GPB UnsetOneOfCase)
XCTAssertEqual ( msg . oneof . optionalInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . gpb UnsetOneOfCase)
msg . oneofInt32 = 10
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 10 ) )
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . O neofInt32)
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . o neofInt32)
// C o n f i r m M e s s a g e . c l e a r ( ) h a n d l e s t h e o n e o f c o r r e c t l y .
msg . clear ( )
XCTAssertEqual ( msg . oneofInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . GPB UnsetOneOfCase)
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . gpb UnsetOneOfCase)
// S e t s v i a t h e a u t o c r e a t e d i n s t a n c e .
msg . oneofMessage . optionalInt32 = 300
XCTAssertTrue ( msg . oneofMessage !== autoCreated ) // N e w i n s t a n c e
XCTAssertTrue ( msg . oneofMessage !== autoCreated2 ) // N e w i n s t a n c e
XCTAssertEqual ( msg . oneofMessage . optionalInt32 , Int32 ( 300 ) )
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . O neofMessage)
msg . oneof . optionalInt32 = 300
XCTAssertTrue ( msg . oneof !== autoCreated ) // N e w i n s t a n c e
XCTAssertTrue ( msg . oneof !== autoCreated2 ) // N e w i n s t a n c e
XCTAssertEqual ( msg . oneof . optionalInt32 , Int32 ( 300 ) )
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . o neofMessage)
// S e t m e s s a g e t o n i l c l e a r s t h e o n e o f .
msg . oneofMessage = nil
XCTAssertEqual ( msg . oneofMessage . optionalInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . GPB UnsetOneOfCase)
msg . oneof = nil
XCTAssertEqual ( msg . oneof . optionalInt32 , Int32 ( 0 ) ) // D e f a u l t
XCTAssertEqual ( msg . oOneOfCase , Message3_O_OneOfCase . gpb UnsetOneOfCase)
}
func testSerialization ( ) {
@ -437,12 +437,12 @@ class GPBBridgeTests: XCTestCase {
msg . optionalInt32 = 100
msg . optionalInt64 = 101
msg . optionalGroup . a = 102
msg . repeatedStringArray . addObject ( " abc " )
msg . repeatedStringArray . addObject ( " def " )
msg . repeatedStringArray . add ( " abc " )
msg . repeatedStringArray . add ( " def " )
msg . mapInt32Int32 . setInt32 ( 200 , forKey : 300 )
msg . mapInt32Int32 . setInt32 ( 201 , forKey : 201 )
msg . mapStringString . setObject ( " foo " , forKey : " bar " )
msg . mapStringString . setObject ( " abc " , forKey : " xyz " )
msg . mapStringString . setObject ( " foo " , forKey : " bar " as NSString )
msg . mapStringString . setObject ( " abc " , forKey : " xyz " as NSString )
let data = msg . data ( )