SynchronizableTests.swift 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import XCTest
  2. @testable import KeychainSwift
  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: Any] = [
  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"] as! String)
  21. XCTAssertEqual(kSecAttrSynchronizableAny as String, result["sync"] as! String)
  22. }
  23. func testAddSynchronizableGroup_addItemsTrue() {
  24. let items: [String: Any] = [
  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"] as! String)
  31. XCTAssertEqual(true, result["sync"] as! Bool)
  32. }
  33. func testAddSynchronizableGroup_nil() {
  34. let items: [String: Any] = [
  35. "one": "two"
  36. ]
  37. let result = obj.addSynchronizableIfRequired(items, addingItems: false)
  38. XCTAssertEqual(1, result.count)
  39. XCTAssertEqual("two", result["one"] as! String)
  40. }
  41. // MARK: - Set
  42. func testSet() {
  43. obj.synchronizable = true
  44. obj.set("hello :)", forKey: "key 1")
  45. XCTAssertEqual(true, obj.lastQueryParameters?["sync"] as! Bool)
  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 as String, obj.lastQueryParameters?["sync"] as! String)
  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 as String, obj.lastQueryParameters?["sync"] as! String)
  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 as String, obj.lastQueryParameters?["sync"] as! String)
  76. }
  77. func testClear_doNotSetSynchronizable() {
  78. obj.clear()
  79. XCTAssertNil(obj.lastQueryParameters?["sync"])
  80. }
  81. }