You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
3.4 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. //
  2. // DatabaseTest.swift
  3. // GMERemittanceTests
  4. //
  5. // Created by InKwon James Kim on 17/07/2019.
  6. // Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import XCTest
  9. import RxSwift
  10. import RxCocoa
  11. @testable import GME_Remit
  12. class DatabaseTest: XCTestCase {
  13. let testUserJson =
  14. """
  15. {
  16. "Id" : "",
  17. "Extra" : "",
  18. "Extra2" : "",
  19. "Data" : {
  20. "accessCode" : null,
  21. "accessTokenRegTime" : "",
  22. "kyc" : false,
  23. "mobileNumber" : "",
  24. "provinceId" : "",
  25. "availableBalance" : "0",
  26. "country" : "",
  27. "ErrorCode" : "0",
  28. "pennyTestStatus" : "0",
  29. "accessTokenExpTime" : "",
  30. "Extra" : "",
  31. "firstName" : "iosDemo@gmeremit.com",
  32. "Data" : null,
  33. "yearlyLimit" : "30,000",
  34. "dob" : "1988-03-27",
  35. "dpUrl" : null,
  36. "email" : "iosDemo@gmeremit.com",
  37. "sourceId" : "",
  38. "countryCode" : "",
  39. "senderId" : "17",
  40. "active" : true,
  41. "appUpdate" : [
  42. {
  43. "Info" : "",
  44. "OS" : "IOS",
  45. "Build" : "6",
  46. "Version" : "2.2.2",
  47. "Critical" : "Y"
  48. },
  49. {
  50. "Info" : "",
  51. "OS" : "ANDROID",
  52. "Build" : "17",
  53. "Version" : "2.3.0",
  54. "Critical" : "Y"
  55. }
  56. ],
  57. "Extra2" : "",
  58. "isReferred" : false,
  59. "rewardPoint" : "0",
  60. "province" : "",
  61. "cmRegistrationId" : "",
  62. "Msg" : "",
  63. "primaryBankName" : "",
  64. "Id" : "",
  65. "verified" : false,
  66. "walletNumber" : "",
  67. "userId" : "iosDemo@gmeremit.com",
  68. "kftcClientId" : null
  69. },
  70. "ErrorCode" : "0",
  71. "Msg" : "success"
  72. }
  73. """
  74. func testSetUser() {
  75. let object = UserContainer(JSONString: testUserJson)
  76. GMEDB
  77. .shared
  78. .setUser(object?.data)
  79. .debugPrintAllElement()
  80. XCTAssert(GMEDB.shared.user.string(.availableBalance) == Optional("0"))
  81. XCTAssert(GMEDB.shared.user.string(.country) == Optional(""))
  82. XCTAssert(GMEDB.shared.user.string(.errorCode) == nil)
  83. XCTAssert(GMEDB.shared.user.string(.pennyTestStatusCode) == Optional("0"))
  84. XCTAssert(GMEDB.shared.user.string(.firstName) == Optional("iosDemo@gmeremit.com"))
  85. XCTAssert(GMEDB.shared.user.string(.data) == nil)
  86. XCTAssert(GMEDB.shared.user.string(.yearlyLimit) == Optional("30,000"))
  87. XCTAssert(GMEDB.shared.user.string(.dateOfBirth) == Optional("1988-03-27"))
  88. XCTAssert(GMEDB.shared.user.string(.senderId) == Optional("17"))
  89. }
  90. func testRemoveAll() {
  91. GMEDB
  92. .shared
  93. .user
  94. .removeAll()
  95. .debugPrintAllElement()
  96. XCTAssert(GMEDB.shared.user.string(.availableBalance) == nil)
  97. XCTAssert(GMEDB.shared.user.string(.country) == nil)
  98. XCTAssert(GMEDB.shared.user.string(.errorCode) == nil)
  99. XCTAssert(GMEDB.shared.user.string(.pennyTestStatusCode) == nil)
  100. XCTAssert(GMEDB.shared.user.string(.firstName) == nil)
  101. XCTAssert(GMEDB.shared.user.string(.data) == nil)
  102. XCTAssert(GMEDB.shared.user.string(.yearlyLimit) == nil)
  103. XCTAssert(GMEDB.shared.user.string(.dateOfBirth) == nil)
  104. XCTAssert(GMEDB.shared.user.string(.senderId) == nil)
  105. }
  106. func testGMEDBRx() {
  107. let expt = expectation(description: "testGMEDBRx")
  108. _ = GMEDB.shared.user.rx.string(key: .userId)
  109. .subscribe(onNext: {
  110. print("userID: \($0 ?? "nil")")
  111. XCTAssert($0 == Optional("test2"), GMEDB.shared.user.string(.userId) ?? "")
  112. expt.fulfill()
  113. })
  114. GMEDB.shared.user.set("test2", .userId)
  115. wait(for: [expt], timeout: 5.0)
  116. }
  117. }