@@ -661,6 +661,36 @@ class ParseObjectCustomObjectIdTests: XCTestCase { // swiftlint:disable:this typ
661
661
}
662
662
}
663
663
664
+ func testCreateServerReturnsPointer( ) async throws {
665
+ var score = GameScore ( points: 10 )
666
+ score. objectId = " yarr "
667
+
668
+ var scoreOnServer = try score. toPointer ( )
669
+
670
+ let encoded : Data !
671
+ do {
672
+ encoded = try ParseCoding . jsonEncoder ( ) . encode ( scoreOnServer)
673
+ // Get dates in correct format from ParseDecoding strategy
674
+ scoreOnServer = try score. getDecoder ( ) . decode (
675
+ Pointer< GameScore> . self ,
676
+ from: encoded
677
+ )
678
+ } catch {
679
+ XCTFail ( " Should encode/decode. Error \( error) " )
680
+ return
681
+ }
682
+
683
+ MockURLProtocol . mockRequests { _ in
684
+ return MockURLResponse ( data: encoded, statusCode: 200 )
685
+ }
686
+ do {
687
+ let saved = try await score. create ( )
688
+ XCTAssertTrue ( saved. objectId == scoreOnServer. objectId)
689
+ } catch {
690
+ XCTFail ( error. localizedDescription)
691
+ }
692
+ }
693
+
664
694
func testSaveNoObjectId( ) async throws {
665
695
let score = GameScore ( points: 10 )
666
696
do {
@@ -1276,6 +1306,37 @@ class ParseObjectCustomObjectIdTests: XCTestCase { // swiftlint:disable:this typ
1276
1306
}
1277
1307
}
1278
1308
1309
+ func testUserCreateServerReturnsPointer( ) async throws {
1310
+ var user = User ( )
1311
+ user. objectId = " yarr "
1312
+ user. ACL = nil
1313
+
1314
+ var userOnServer = try user. toPointer ( )
1315
+
1316
+ let encoded : Data !
1317
+ do {
1318
+ encoded = try ParseCoding . jsonEncoder ( ) . encode ( userOnServer)
1319
+ // Get dates in correct format from ParseDecoding strategy
1320
+ userOnServer = try user. getDecoder ( ) . decode (
1321
+ Pointer< User> . self ,
1322
+ from: encoded
1323
+ )
1324
+ } catch {
1325
+ XCTFail ( " Should encode/decode. Error \( error) " )
1326
+ return
1327
+ }
1328
+
1329
+ MockURLProtocol . mockRequests { _ in
1330
+ return MockURLResponse ( data: encoded, statusCode: 200 )
1331
+ }
1332
+ do {
1333
+ let saved = try await user. create ( )
1334
+ XCTAssertTrue ( saved. objectId == userOnServer. objectId)
1335
+ } catch {
1336
+ XCTFail ( error. localizedDescription)
1337
+ }
1338
+ }
1339
+
1279
1340
func testUserSaveNoObjectId( ) async throws {
1280
1341
let score = GameScore ( points: 10 )
1281
1342
do {
@@ -1829,6 +1890,37 @@ class ParseObjectCustomObjectIdTests: XCTestCase { // swiftlint:disable:this typ
1829
1890
}
1830
1891
}
1831
1892
1893
+ func testInstallationCreateServerReturnsPointer( ) async throws {
1894
+ var installation = Installation ( )
1895
+ installation. objectId = " yarr "
1896
+ installation. ACL = nil
1897
+
1898
+ var installationOnServer = try installation. toPointer ( )
1899
+
1900
+ let encoded : Data !
1901
+ do {
1902
+ encoded = try ParseCoding . jsonEncoder ( ) . encode ( installationOnServer)
1903
+ // Get dates in correct format from ParseDecoding strategy
1904
+ installationOnServer = try installation. getDecoder ( ) . decode (
1905
+ Pointer< Installation> . self ,
1906
+ from: encoded
1907
+ )
1908
+ } catch {
1909
+ XCTFail ( " Should encode/decode. Error \( error) " )
1910
+ return
1911
+ }
1912
+
1913
+ MockURLProtocol . mockRequests { _ in
1914
+ return MockURLResponse ( data: encoded, statusCode: 200 )
1915
+ }
1916
+ do {
1917
+ let saved = try await installation. create ( )
1918
+ XCTAssertTrue ( saved. objectId == installationOnServer. objectId)
1919
+ } catch {
1920
+ XCTFail ( error. localizedDescription)
1921
+ }
1922
+ }
1923
+
1832
1924
func testInstallationSaveNoObjectId( ) async throws {
1833
1925
let score = GameScore ( points: 10 )
1834
1926
do {
0 commit comments