Skip to content
25 changes: 25 additions & 0 deletions Tests/ParseSwiftTests/ParseOperationTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ class ParseOperationTests: XCTestCase {
}
XCTAssertEqual(savedUpdatedAt, originalUpdatedAt)
XCTAssertEqual(saved.ACL, scoreOnServer.ACL)
XCTAssertEqual(score.score, scoreOnServer.score)
} catch {
XCTFail(error.localizedDescription)
}
Expand Down Expand Up @@ -403,6 +404,30 @@ class ParseOperationTests: XCTestCase {
.encode(operations)
let decoded = try XCTUnwrap(String(data: encoded, encoding: .utf8))
XCTAssertEqual(decoded, expected)
XCTAssertEqual(score.score, 15)
}

func testNilSet() throws {
var score = GameScore()
score.levels = nil
let operations = try score.operation.set(("levels", \.levels), value: ["hello"])
let expected = "{\"levels\":[\"hello\"]}"
let encoded = try ParseCoding.parseEncoder()
.encode(operations)
let decoded = try XCTUnwrap(String(data: encoded, encoding: .utf8))
XCTAssertEqual(decoded, expected)
}

func testObjectIdSet() throws {
var score = GameScore()
score.objectId = "test"
score.levels = nil
let operations = try score.operation.set(("levels", \.levels), value: ["hello"])
let expected = "{\"levels\":[\"hello\"]}"
let encoded = try ParseCoding.parseEncoder()
.encode(operations)
let decoded = try XCTUnwrap(String(data: encoded, encoding: .utf8))
XCTAssertEqual(decoded, expected)
}

func testUnchangedSet() throws {
Expand Down