SynchronizableTests.swift 2.6 KB

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