SynchronizableTests.swift 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import UIKit
  2. import XCTest
  3. class SynchronizableTests: XCTestCase {
  4. var obj: KeychainSwift!
  5. override func setUp() {
  6. super.setUp()
  7. obj = KeychainSwift()
  8. obj.clear()
  9. obj.lastQueryParameters = nil
  10. obj.synchronizable = false
  11. }
  12. // MARK: - addSynchronizableIfRequired
  13. func testAddSynchronizableGroup_addItemsFalse() {
  14. let items: [String: NSObject] = [
  15. "one": "two"
  16. ]
  17. obj.synchronizable = true
  18. let result = obj.addSynchronizableIfRequired(items, addingItems: false)
  19. XCTAssertEqual(2, result.count)
  20. XCTAssertEqual("two", result["one"])
  21. XCTAssertEqual(kSecAttrSynchronizableAny, result["sync"])
  22. }
  23. func testAddSynchronizableGroup_addItemsTrue() {
  24. let items: [String: NSObject] = [
  25. "one": "two"
  26. ]
  27. obj.synchronizable = true
  28. let result = obj.addSynchronizableIfRequired(items, addingItems: true)
  29. XCTAssertEqual(2, result.count)
  30. XCTAssertEqual("two", result["one"])
  31. XCTAssertEqual(true, result["sync"])
  32. }
  33. func testAddSynchronizableGroup_nil() {
  34. let items: [String: NSObject] = [
  35. "one": "two"
  36. ]
  37. let result = obj.addSynchronizableIfRequired(items, addingItems: false)
  38. XCTAssertEqual(1, result.count)
  39. XCTAssertEqual("two", result["one"])
  40. }
  41. // MARK: - Set
  42. func testSet() {
  43. obj.synchronizable = true
  44. obj.set("hello :)", forKey: "key 1")
  45. XCTAssertEqual(true, obj.lastQueryParameters?["sync"])
  46. }
  47. func testSet_doNotSetSynchronizable() {
  48. obj.set("hello :)", forKey: "key 1")
  49. XCTAssertNil(obj.lastQueryParameters?["sync"])
  50. }
  51. // MARK: - Get
  52. func testGet() {
  53. obj.synchronizable = true
  54. obj.get("key 1")
  55. XCTAssertEqual(kSecAttrSynchronizableAny, obj.lastQueryParameters?["sync"])
  56. }
  57. func testGet_doNotSetSynchronizable() {
  58. obj.get("key 1")
  59. XCTAssertNil(obj.lastQueryParameters?["sync"])
  60. }
  61. // MARK: - Delete
  62. func testDelete() {
  63. obj.synchronizable = true
  64. obj.delete("key 1")
  65. XCTAssertEqual(kSecAttrSynchronizableAny, obj.lastQueryParameters?["sync"])
  66. }
  67. func testDelete_doNotSetSynchronizable() {
  68. obj.delete("key 1")
  69. XCTAssertNil(obj.lastQueryParameters?["sync"])
  70. }
  71. // MARK: - Clear
  72. func testClear() {
  73. obj.synchronizable = true
  74. obj.clear()
  75. XCTAssertEqual(kSecAttrSynchronizableAny, obj.lastQueryParameters?["sync"])
  76. }
  77. func testClear_doNotSetSynchronizable() {
  78. obj.clear()
  79. XCTAssertNil(obj.lastQueryParameters?["sync"])
  80. }
  81. }