File tree Expand file tree Collapse file tree 2 files changed +42
-0
lines changed
Sources/SwiftSDK/UserService
Tests/SwiftSDKTests/UserServiceTests Expand file tree Collapse file tree 2 files changed +42
-0
lines changed Original file line number Diff line number Diff line change 2121
2222import Foundation
2323
24+ @dynamicMemberLookup
2425@objcMembers public class BackendlessUser : NSObject , Codable {
2526
2627 public var objectId : String ?
@@ -39,6 +40,16 @@ import Foundation
3940
4041 public private( set) var userToken : String ?
4142
43+ public subscript( dynamicMember property: String ) -> Any ? {
44+ get {
45+ properties [ property]
46+ }
47+
48+ set {
49+ properties [ property] = newValue
50+ }
51+ }
52+
4253 var userProperties = JSON ( )
4354 public var properties : [ String : Any ] {
4455 get {
Original file line number Diff line number Diff line change @@ -89,6 +89,37 @@ class BackendlessUserTests: XCTestCase {
8989 XCTAssertTrue ( user. properties [ " city " ] is NSNull )
9090 }
9191
92+ func test10AddPropertyWithDynamicMemberLookup( ) {
93+ let user = createBackendlessUser ( )
94+ user. foo = " bar "
95+ XCTAssertNotNil ( user. properties [ " foo " ] )
96+ XCTAssertFalse ( user. properties [ " foo " ] is NSNull )
97+ }
98+
99+ func test11AddPropertiesWithDynamicMemberLookup( ) {
100+ let user = createBackendlessUser ( )
101+ user. foo = " bar "
102+ user. foo1 = " bar1 "
103+ XCTAssertNotNil ( user. properties [ " foo " ] )
104+ XCTAssertNotNil ( user. properties [ " foo1 " ] )
105+ XCTAssertFalse ( user. properties [ " foo " ] is NSNull )
106+ XCTAssertFalse ( user. properties [ " foo1 " ] is NSNull )
107+ }
108+
109+ func test12UpdatePropertyWithDynamicMemberLookup( ) {
110+ let user = createBackendlessUser ( )
111+ user. age = 55
112+ XCTAssertEqual ( user. properties [ " age " ] as? Int , 55 )
113+ }
114+
115+ func test13UpdatePropertiesWithDynamicMemberLookup( ) {
116+ let user = createBackendlessUser ( )
117+ user. name = " Bob "
118+ user. age = 55
119+ XCTAssertEqual ( user. properties [ " name " ] as? String , " Bob " )
120+ XCTAssertEqual ( user. properties [ " age " ] as? Int , 55 )
121+ }
122+
92123 // ********************************************************************************
93124
94125 private func createBackendlessUser( ) -> BackendlessUser {
You can’t perform that action at this time.
0 commit comments