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.

1537 lines
33 KiB

5 years ago
5 years ago
5 years ago
  1. //
  2. // FunctionTest.swift
  3. // GMERemittanceTests
  4. //
  5. // Created by InKwon Devik Kim on 09/07/2019.
  6. // Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import XCTest
  9. @testable import GME_Remit
  10. class FunctionTest: XCTestCase {
  11. func testExpireDate() {
  12. guard let remindDay = Utility.calculateDDay(registDate: "7/12/2018 4:19:37 PM")
  13. else {
  14. XCTAssert(false)
  15. return
  16. }
  17. print("remindDay: \(remindDay)")
  18. XCTAssert(true)
  19. }
  20. func testDateFormat() {
  21. let dateFormatter = DateFormatter()
  22. dateFormatter.dateFormat = "M/d/yyyy h:mm:ss a"
  23. dateFormatter.locale = Locale(identifier: "ko_kr")
  24. dateFormatter.timeZone = TimeZone(abbreviation: "KST")
  25. var dateComponent = DateComponents()
  26. dateComponent.year = 1
  27. let resigstDate = "7/11/2019 4:19:37 PM"
  28. guard
  29. let date = dateFormatter.date(from: resigstDate) else {
  30. XCTAssert(false)
  31. return
  32. }
  33. print("Date: \(date)")
  34. }
  35. func testIDValid() {
  36. let extractID = "l.e ibn$iz@55_good-)(*&".extract(regex: "[A-Z0-9a-z._@-]")
  37. print("Extract ID: \(extractID)")
  38. XCTAssertEqual(extractID, "l.eibniz@55_good-")
  39. }
  40. func testASCIIAndSpace() {
  41. let extractID = "l.e ibn$iz@55_good-)(*&".extract(regex: "[A-Z0-9a-z\\s]")
  42. print("Extract ID: \(extractID)")
  43. let textField = UITextField()
  44. textField.text = "l.e ibn$iz@55_good-)(*&"
  45. textField.fitlerBy(type: .alphabetNumberic, isSendAction: true)
  46. XCTAssertEqual(extractID, "le ibniz55good")
  47. XCTAssertEqual(textField.text ?? "", "le ibniz55good")
  48. }
  49. func testDynamicFieldMap() {
  50. let models = [FieldModel]()
  51. let textFields = [ValidationTextField]()
  52. let dynamicField = [
  53. "Bank Name": 0,
  54. "Branch Name": 1,
  55. "Account No.": 2,
  56. "Id Type": 3,
  57. "ID Number": 4,
  58. "First Name": 5,
  59. "Middle Name": 6,
  60. "Last Name": 7,
  61. "Full Name": 8,
  62. "First Name in Local": 9,
  63. "Middle Name in Local": 10,
  64. "Last Name in Local": 11,
  65. "Local Name": 12,
  66. "Mobile Number": 13,
  67. "Province": 14,
  68. "State": 15,
  69. "City": 16,
  70. "Address": 17,
  71. "Realation Group": 18,
  72. "Transfer Reason": 19
  73. ]
  74. models.forEach { property in
  75. guard
  76. let key = property.fieldName,
  77. let tag = dynamicField[key],
  78. let textField = textFields.filter({ $0.tag == tag }).first,
  79. let isRequire = property.required,
  80. let isHidden = isRequire == "H" ? true : false,
  81. let min = property.minLength,
  82. let max = property.maxLength,
  83. let keyboardType = property.keyBoardType
  84. else {return}
  85. textField.isHidden = isHidden
  86. textField.validCondition = { $0.count > min && $0.count < max }
  87. switch keyboardType {
  88. case "AN":
  89. textField.keyboardType = .asciiCapable
  90. textField.removeNonASCII()
  91. case "N":
  92. textField.keyboardType = .numberPad
  93. case "ANS":
  94. textField.keyboardType = .asciiCapable
  95. default:
  96. textField.keyboardType = .asciiCapable
  97. textField.removeNonASCII()
  98. }
  99. }
  100. }
  101. func testDecimalToCurrency() {
  102. var amount = "10000"
  103. XCTAssert(amount.decimalToCurrency() == "10,000", amount.decimalToCurrency())
  104. amount = "10000.00"
  105. XCTAssert(amount.decimalToCurrency() == "10,000", amount.decimalToCurrency())
  106. amount = "11345.00"
  107. XCTAssert(amount.decimalToCurrency() == "11,345", amount.decimalToCurrency())
  108. amount = "11345.94"
  109. XCTAssert(amount.decimalToCurrency() == "11,345.94", amount.decimalToCurrency())
  110. amount = "0.11"
  111. XCTAssert(amount.decimalToCurrency() == "0.11", amount.decimalToCurrency())
  112. amount = "10000"
  113. XCTAssert(
  114. amount.decimalToCurrency(as: .krw, isFront: true) == "KRW 10,000",
  115. amount.decimalToCurrency(as: .krw, isFront: true)
  116. )
  117. amount = "10000.00"
  118. XCTAssert(
  119. amount.decimalToCurrency(as: .krw, isFront: false) == "10,000 KRW",
  120. amount.decimalToCurrency(as: .krw, isFront: false)
  121. )
  122. amount = "11345.00"
  123. XCTAssert(
  124. amount.decimalToCurrency(as: .usd, isFront: true) == "USD 11,345",
  125. amount.decimalToCurrency(as: .usd, isFront: true)
  126. )
  127. amount = "11345.94"
  128. XCTAssert(
  129. amount.decimalToCurrency(as: .usd, isFront: false) == "11,345.94 USD",
  130. amount.decimalToCurrency(as: .usd, isFront: false)
  131. )
  132. amount = "0.11"
  133. XCTAssert(
  134. amount.decimalToCurrency(as: .usd, isFront: true) == "USD 0.11",
  135. amount.decimalToCurrency(as: .usd, isFront: true)
  136. )
  137. }
  138. func testCurrencyToDecimal() {
  139. var amount = "10,000"
  140. XCTAssert(amount.currencyToDecimal() == "10000", amount.currencyToDecimal())
  141. amount = "10,000.00"
  142. XCTAssert(amount.currencyToDecimal() == "10000.00", amount.currencyToDecimal())
  143. amount = "11,345.94"
  144. XCTAssert(amount.currencyToDecimal() == "11345.94", amount.currencyToDecimal())
  145. amount = "0.11"
  146. XCTAssert(amount.currencyToDecimal() == "0.11", amount.currencyToDecimal())
  147. amount = "KRW 10,000"
  148. XCTAssert(amount.currencyToDecimal() == "10000", amount.currencyToDecimal())
  149. amount = "USD 11,345"
  150. XCTAssert(amount.currencyToDecimal() == "11345", amount.currencyToDecimal())
  151. amount = "11,345.94 USD"
  152. XCTAssert(amount.currencyToDecimal() == "11345.94", amount.currencyToDecimal())
  153. amount = "USD 0.11"
  154. XCTAssert(amount.currencyToDecimal() == "0.11", amount.currencyToDecimal())
  155. }
  156. func testCreditCard() {
  157. XCTAssert(CreditCardType.validate(cardNumber: "5365100675887315") == Optional(.mastercard))
  158. }
  159. func testTextClip() {
  160. let testJson =
  161. """
  162. {
  163. "Id" : "",
  164. "Extra" : "",
  165. "Extra2" : "",
  166. "Data" : {
  167. "CardListType" : "2",
  168. "CountryPriceCode" : [
  169. {
  170. "Wireless" : "59",
  171. "Country" : "Mongolia",
  172. "Code" : "976",
  173. "Cable" : "59"
  174. },
  175. {
  176. "Wireless" : "110",
  177. "Country" : "Nepal",
  178. "Code" : "977",
  179. "Cable" : "110"
  180. },
  181. {
  182. "Wireless" : "63.8",
  183. "Country" : "Vietnam",
  184. "Code" : "84",
  185. "Cable" : "63.8"
  186. },
  187. {
  188. "Wireless" : "150",
  189. "Country" : "Myanmar",
  190. "Code" : "95",
  191. "Cable" : "150"
  192. },
  193. {
  194. "Wireless" : "82.3",
  195. "Country" : "Uzbekistan",
  196. "Code" : "998",
  197. "Cable" : "82.3"
  198. },
  199. {
  200. "Wireless" : "97",
  201. "Country" : "Sri Lanka",
  202. "Code" : "94",
  203. "Cable" : "97"
  204. },
  205. {
  206. "Wireless" : "60",
  207. "Country" : "Indonesia",
  208. "Code" : "62",
  209. "Cable" : "60"
  210. },
  211. {
  212. "Wireless" : "65.2",
  213. "Country" : "Pakistan",
  214. "Code" : "92",
  215. "Cable" : "65.2"
  216. },
  217. {
  218. "Wireless" : "44",
  219. "Country" : "Thailand",
  220. "Code" : "66",
  221. "Cable" : "44"
  222. },
  223. {
  224. "Wireless" : "68.2",
  225. "Country" : "Cambodia",
  226. "Code" : "855",
  227. "Cable" : "68.2"
  228. },
  229. {
  230. "Wireless" : "45",
  231. "Country" : "China",
  232. "Code" : "86",
  233. "Cable" : "45"
  234. },
  235. {
  236. "Wireless" : "166.7",
  237. "Country" : "Philippines",
  238. "Code" : "63",
  239. "Cable" : "166.7"
  240. },
  241. {
  242. "Wireless" : "49",
  243. "Country" : "Bangladesh",
  244. "Code" : "880",
  245. "Cable" : "49"
  246. },
  247. {
  248. "Wireless" : "0",
  249. "Country" : "Korea",
  250. "Code" : "82",
  251. "Cable" : "0"
  252. },
  253. {
  254. "Wireless" : "325.5",
  255. "Country" : "Afghanistan",
  256. "Code" : "93",
  257. "Cable" : "325.5"
  258. },
  259. {
  260. "Wireless" : "147",
  261. "Country" : "Alaska (U.S.)",
  262. "Code" : "1907",
  263. "Cable" : "147"
  264. },
  265. {
  266. "Wireless" : "105",
  267. "Country" : "Albania",
  268. "Code" : "355",
  269. "Cable" : "105"
  270. },
  271. {
  272. "Wireless" : "189",
  273. "Country" : "Algeria",
  274. "Code" : "213",
  275. "Cable" : "189"
  276. },
  277. {
  278. "Wireless" : "52.5",
  279. "Country" : "Andorra",
  280. "Code" : "376",
  281. "Cable" : "252"
  282. },
  283. {
  284. "Wireless" : "94.5",
  285. "Country" : "Angola",
  286. "Code" : "244",
  287. "Cable" : "94.5"
  288. },
  289. {
  290. "Wireless" : "94.5",
  291. "Country" : "Anguilla",
  292. "Code" : "1264",
  293. "Cable" : "94.5"
  294. },
  295. {
  296. "Wireless" : "0",
  297. "Country" : "Antarctic",
  298. "Code" : "6721",
  299. "Cable" : "0"
  300. },
  301. {
  302. "Wireless" : "136.5",
  303. "Country" : "Antigua",
  304. "Code" : "1268",
  305. "Cable" : "136.5"
  306. },
  307. {
  308. "Wireless" : "126",
  309. "Country" : "Antilles (Neth)",
  310. "Code" : "599",
  311. "Cable" : "126"
  312. },
  313. {
  314. "Wireless" : "31.5",
  315. "Country" : "Argentina",
  316. "Code" : "54",
  317. "Cable" : "189"
  318. },
  319. {
  320. "Wireless" : "168",
  321. "Country" : "Armenia",
  322. "Code" : "374",
  323. "Cable" : "168"
  324. },
  325. {
  326. "Wireless" : "210",
  327. "Country" : "Aruba",
  328. "Code" : "2978",
  329. "Cable" : "210"
  330. },
  331. {
  332. "Wireless" : "31.5",
  333. "Country" : "Australia",
  334. "Code" : "61",
  335. "Cable" : "147"
  336. },
  337. {
  338. "Wireless" : "31.5",
  339. "Country" : "Austria",
  340. "Code" : "43",
  341. "Cable" : "147"
  342. },
  343. {
  344. "Wireless" : "231",
  345. "Country" : "Azerbaijan",
  346. "Code" : "994",
  347. "Cable" : "347"
  348. },
  349. {
  350. "Wireless" : "52.5",
  351. "Country" : "Bahrain",
  352. "Code" : "973",
  353. "Cable" : "199.5"
  354. },
  355. {
  356. "Wireless" : "178.5",
  357. "Country" : "Barbados",
  358. "Code" : "1246",
  359. "Cable" : "178.5"
  360. },
  361. {
  362. "Wireless" : "273",
  363. "Country" : "Belarus",
  364. "Code" : "375",
  365. "Cable" : "273"
  366. },
  367. {
  368. "Wireless" : "31.5",
  369. "Country" : "Belgium",
  370. "Code" : "32",
  371. "Cable" : "199.5"
  372. },
  373. {
  374. "Wireless" : "252",
  375. "Country" : "Belize",
  376. "Code" : "501",
  377. "Cable" : "252"
  378. },
  379. {
  380. "Wireless" : "231",
  381. "Country" : "Benin",
  382. "Code" : "229",
  383. "Cable" : "231"
  384. },
  385. {
  386. "Wireless" : "31.5",
  387. "Country" : "Bermuda",
  388. "Code" : "1441",
  389. "Cable" : "31.5"
  390. },
  391. {
  392. "Wireless" : "126",
  393. "Country" : "Bolivia",
  394. "Code" : "591",
  395. "Cable" : "157.5"
  396. },
  397. {
  398. "Wireless" : "304.5",
  399. "Country" : "Bosnia",
  400. "Code" : "387",
  401. "Cable" : "304.5"
  402. },
  403. {
  404. "Wireless" : "168",
  405. "Country" : "Botswana",
  406. "Code" : "267",
  407. "Cable" : "168"
  408. },
  409. {
  410. "Wireless" : "31.5",
  411. "Country" : "Brazil",
  412. "Code" : "55",
  413. "Cable" : "231"
  414. },
  415. {
  416. "Wireless" : "31.5",
  417. "Country" : "Brunei",
  418. "Code" : "673",
  419. "Cable" : "52.5"
  420. },
  421. {
  422. "Wireless" : "52.5",
  423. "Country" : "Bulgaria",
  424. "Code" : "359",
  425. "Cable" : "367.5"
  426. },
  427. {
  428. "Wireless" : "315",
  429. "Country" : "Burkina Faso",
  430. "Code" : "226",
  431. "Cable" : "315"
  432. },
  433. {
  434. "Wireless" : "189",
  435. "Country" : "Burundi",
  436. "Code" : "257",
  437. "Cable" : "189"
  438. },
  439. {
  440. "Wireless" : "168",
  441. "Country" : "Bhutan",
  442. "Code" : "975",
  443. "Cable" : "168"
  444. },
  445. {
  446. "Wireless" : "126",
  447. "Country" : "Cameroon",
  448. "Code" : "237",
  449. "Cable" : "189"
  450. },
  451. {
  452. "Wireless" : "31.5",
  453. "Country" : "Canada",
  454. "Code" : "1",
  455. "Cable" : "31.5"
  456. },
  457. {
  458. "Wireless" : "189",
  459. "Country" : "Cape Verde",
  460. "Code" : "238",
  461. "Cable" : "189"
  462. },
  463. {
  464. "Wireless" : "157.5",
  465. "Country" : "Cayman Islands",
  466. "Code" : "1345",
  467. "Cable" : "157.5"
  468. },
  469. {
  470. "Wireless" : "178.5",
  471. "Country" : "Ceuta",
  472. "Code" : "34956",
  473. "Cable" : "178.5"
  474. },
  475. {
  476. "Wireless" : "31.5",
  477. "Country" : "Chile",
  478. "Code" : "56",
  479. "Cable" : "199.5"
  480. },
  481. {
  482. "Wireless" : "31.5",
  483. "Country" : "Colombia",
  484. "Code" : "57",
  485. "Cable" : "94.5"
  486. },
  487. {
  488. "Wireless" : "409.5",
  489. "Country" : "Comoros",
  490. "Code" : "269",
  491. "Cable" : "409.5"
  492. },
  493. {
  494. "Wireless" : "357",
  495. "Country" : "Congo",
  496. "Code" : "242",
  497. "Cable" : "357"
  498. },
  499. {
  500. "Wireless" : "31.5",
  501. "Country" : "Costa Rica",
  502. "Code" : "506",
  503. "Cable" : "52.5"
  504. },
  505. {
  506. "Wireless" : "31.5",
  507. "Country" : "Croatia",
  508. "Code" : "385",
  509. "Cable" : "241.5"
  510. },
  511. {
  512. "Wireless" : "861",
  513. "Country" : "Cuba",
  514. "Code" : "53",
  515. "Cable" : "861"
  516. },
  517. {
  518. "Wireless" : "31.5",
  519. "Country" : "Cypress",
  520. "Code" : "357",
  521. "Cable" : "52.5"
  522. },
  523. {
  524. "Wireless" : "31.5",
  525. "Country" : "Czech Republic",
  526. "Code" : "420",
  527. "Cable" : "136.5"
  528. },
  529. {
  530. "Wireless" : "136.5",
  531. "Country" : "Denmark",
  532. "Code" : "45",
  533. "Cable" : "157.5"
  534. },
  535. {
  536. "Wireless" : "357",
  537. "Country" : "Djibouti",
  538. "Code" : "253",
  539. "Cable" : "357"
  540. },
  541. {
  542. "Wireless" : "31.5",
  543. "Country" : "Dominica Per",
  544. "Code" : "1809",
  545. "Cable" : "94.5"
  546. },
  547. {
  548. "Wireless" : "126",
  549. "Country" : "Ecuador",
  550. "Code" : "593",
  551. "Cable" : "231"
  552. },
  553. {
  554. "Wireless" : "94.5",
  555. "Country" : "Egypt",
  556. "Code" : "20",
  557. "Cable" : "126"
  558. },
  559. {
  560. "Wireless" : "210",
  561. "Country" : "El Salvador",
  562. "Code" : "503",
  563. "Cable" : "210"
  564. },
  565. {
  566. "Wireless" : "31.5",
  567. "Country" : "England",
  568. "Code" : "44",
  569. "Cable" : "294"
  570. },
  571. {
  572. "Wireless" : "0",
  573. "Country" : "Equatorial Guinea",
  574. "Code" : "240",
  575. "Cable" : "0"
  576. },
  577. {
  578. "Wireless" : "262.5",
  579. "Country" : "Eritrea",
  580. "Code" : "291",
  581. "Cable" : "262.5"
  582. },
  583. {
  584. "Wireless" : "31.5",
  585. "Country" : "Estonia",
  586. "Code" : "372",
  587. "Cable" : "1207.5"
  588. },
  589. {
  590. "Wireless" : "409.5",
  591. "Country" : "Ethiopia",
  592. "Code" : "251",
  593. "Cable" : "409.5"
  594. },
  595. {
  596. "Wireless" : "220.5",
  597. "Country" : "Faroe Islands",
  598. "Code" : "298",
  599. "Cable" : "220.5"
  600. },
  601. {
  602. "Wireless" : "283.5",
  603. "Country" : "Fiji",
  604. "Code" : "679",
  605. "Cable" : "283.5"
  606. },
  607. {
  608. "Wireless" : "84",
  609. "Country" : "Finland",
  610. "Code" : "358",
  611. "Cable" : "52.5"
  612. },
  613. {
  614. "Wireless" : "31.5",
  615. "Country" : "France",
  616. "Code" : "33",
  617. "Cable" : "126"
  618. },
  619. {
  620. "Wireless" : "451.5",
  621. "Country" : "Gabon",
  622. "Code" : "241",
  623. "Cable" : "451.5"
  624. },
  625. {
  626. "Wireless" : "525",
  627. "Country" : "Gambia",
  628. "Code" : "220",
  629. "Cable" : "525"
  630. },
  631. {
  632. "Wireless" : "136.5",
  633. "Country" : "Georgia",
  634. "Code" : "995",
  635. "Cable" : "136.5"
  636. },
  637. {
  638. "Wireless" : "31.5",
  639. "Country" : "Germany",
  640. "Code" : "49",
  641. "Cable" : "178.5"
  642. },
  643. {
  644. "Wireless" : "168",
  645. "Country" : "Gibraltar",
  646. "Code" : "350",
  647. "Cable" : "168"
  648. },
  649. {
  650. "Wireless" : "31.5",
  651. "Country" : "Greece",
  652. "Code" : "30",
  653. "Cable" : "147"
  654. },
  655. {
  656. "Wireless" : "630",
  657. "Country" : "Greenland",
  658. "Code" : "299",
  659. "Cable" : "630"
  660. },
  661. {
  662. "Wireless" : "241.5",
  663. "Country" : "Grenada",
  664. "Code" : "1473",
  665. "Cable" : "241.5"
  666. },
  667. {
  668. "Wireless" : "157.5",
  669. "Country" : "Guam (U.S.)",
  670. "Code" : "1671",
  671. "Cable" : "157.5"
  672. },
  673. {
  674. "Wireless" : "157.5",
  675. "Country" : "Guatemala",
  676. "Code" : "502",
  677. "Cable" : "157.5"
  678. },
  679. {
  680. "Wireless" : "483",
  681. "Country" : "Guinea",
  682. "Code" : "224",
  683. "Cable" : "483"
  684. },
  685. {
  686. "Wireless" : "378",
  687. "Country" : "Guinea-Bissau",
  688. "Code" : "245",
  689. "Cable" : "378"
  690. },
  691. {
  692. "Wireless" : "357",
  693. "Country" : "Guyana",
  694. "Code" : "592",
  695. "Cable" : "357"
  696. },
  697. {
  698. "Wireless" : "31.5",
  699. "Country" : "Hawaii (U.S.)",
  700. "Code" : "1808",
  701. "Cable" : "31.5"
  702. },
  703. {
  704. "Wireless" : "147",
  705. "Country" : "Honduras",
  706. "Code" : "504",
  707. "Cable" : "147"
  708. },
  709. {
  710. "Wireless" : "48.1",
  711. "Country" : "Hong Kong",
  712. "Code" : "852",
  713. "Cable" : "48.1"
  714. },
  715. {
  716. "Wireless" : "31.5",
  717. "Country" : "Hungary",
  718. "Code" : "36",
  719. "Cable" : "105"
  720. },
  721. {
  722. "Wireless" : "31.5",
  723. "Country" : "Iceland",
  724. "Code" : "354",
  725. "Cable" : "346.5"
  726. },
  727. {
  728. "Wireless" : "31.5",
  729. "Country" : "India",
  730. "Code" : "91",
  731. "Cable" : "31.5"
  732. },
  733. {
  734. "Wireless" : "199.5",
  735. "Country" : "Iran",
  736. "Code" : "98",
  737. "Cable" : "199.5"
  738. },
  739. {
  740. "Wireless" : "84",
  741. "Country" : "Iraq",
  742. "Code" : "964",
  743. "Cable" : "84"
  744. },
  745. {
  746. "Wireless" : "31.5",
  747. "Country" : "Ireland",
  748. "Code" : "353",
  749. "Cable" : "241.5"
  750. },
  751. {
  752. "Wireless" : "31.5",
  753. "Country" : "Israel",
  754. "Code" : "972",
  755. "Cable" : "94.5"
  756. },
  757. {
  758. "Wireless" : "31.5",
  759. "Country" : "Italy",
  760. "Code" : "39",
  761. "Cable" : "189"
  762. },
  763. {
  764. "Wireless" : "168",
  765. "Country" : "Jamaica",
  766. "Code" : "1876",
  767. "Cable" : "168"
  768. },
  769. {
  770. "Wireless" : "31.5",
  771. "Country" : "Japan",
  772. "Code" : "81",
  773. "Cable" : "147"
  774. },
  775. {
  776. "Wireless" : "94.5",
  777. "Country" : "Jordan",
  778. "Code" : "962",
  779. "Cable" : "115.5"
  780. },
  781. {
  782. "Wireless" : "105",
  783. "Country" : "Kazakhstan",
  784. "Code" : "7",
  785. "Cable" : "105"
  786. },
  787. {
  788. "Wireless" : "94.5",
  789. "Country" : "Kenya",
  790. "Code" : "254",
  791. "Cable" : "126"
  792. },
  793. {
  794. "Wireless" : "105",
  795. "Country" : "Kyrgyzstan",
  796. "Code" : "996",
  797. "Cable" : "105"
  798. },
  799. {
  800. "Wireless" : "94.5",
  801. "Country" : "Kuwait",
  802. "Code" : "965",
  803. "Cable" : "94.5"
  804. },
  805. {
  806. "Wireless" : "31.5",
  807. "Country" : "Laos",
  808. "Code" : "856",
  809. "Cable" : "31.5"
  810. },
  811. {
  812. "Wireless" : "1218",
  813. "Country" : "Latvia",
  814. "Code" : "371",
  815. "Cable" : "661.5"
  816. },
  817. {
  818. "Wireless" : "105",
  819. "Country" : "Lebanon",
  820. "Code" : "961",
  821. "Cable" : "199.5"
  822. },
  823. {
  824. "Wireless" : "325.5",
  825. "Country" : "Lesotho",
  826. "Code" : "266",
  827. "Cable" : "325.5"
  828. },
  829. {
  830. "Wireless" : "430.5",
  831. "Country" : "Liberia",
  832. "Code" : "231",
  833. "Cable" : "430.5"
  834. },
  835. {
  836. "Wireless" : "336",
  837. "Country" : "Libya",
  838. "Code" : "218",
  839. "Cable" : "336"
  840. },
  841. {
  842. "Wireless" : "588",
  843. "Country" : "Liechtenstein",
  844. "Code" : "423",
  845. "Cable" : "588"
  846. },
  847. {
  848. "Wireless" : "1039.5",
  849. "Country" : "Lithuania",
  850. "Code" : "370",
  851. "Cable" : "1039.5"
  852. },
  853. {
  854. "Wireless" : "31.5",
  855. "Country" : "Luxembourg",
  856. "Code" : "352",
  857. "Cable" : "147"
  858. },
  859. {
  860. "Wireless" : "84",
  861. "Country" : "Macau",
  862. "Code" : "853",
  863. "Cable" : "84"
  864. },
  865. {
  866. "Wireless" : "378",
  867. "Country" : "Macedonia",
  868. "Code" : "389",
  869. "Cable" : "378"
  870. },
  871. {
  872. "Wireless" : "430.5",
  873. "Country" : "Madagascar",
  874. "Code" : "261",
  875. "Cable" : "472.5"
  876. },
  877. {
  878. "Wireless" : "84",
  879. "Country" : "Malawi",
  880. "Code" : "265",
  881. "Cable" : "84"
  882. },
  883. {
  884. "Wireless" : "31.5",
  885. "Country" : "Malaysia",
  886. "Code" : "60",
  887. "Cable" : "31.5"
  888. },
  889. {
  890. "Wireless" : "840",
  891. "Country" : "Maldives",
  892. "Code" : "960",
  893. "Cable" : "840"
  894. },
  895. {
  896. "Wireless" : "294",
  897. "Country" : "Mali",
  898. "Code" : "223",
  899. "Cable" : "294"
  900. },
  901. {
  902. "Wireless" : "262.5",
  903. "Country" : "Marshall Islands",
  904. "Code" : "692",
  905. "Cable" : "262.5"
  906. },
  907. {
  908. "Wireless" : "157.5",
  909. "Country" : "Martinique",
  910. "Code" : "596",
  911. "Cable" : "157.5"
  912. },
  913. {
  914. "Wireless" : "483",
  915. "Country" : "Mauritanian",
  916. "Code" : "222",
  917. "Cable" : "483"
  918. },
  919. {
  920. "Wireless" : "210",
  921. "Country" : "Mauritius",
  922. "Code" : "230",
  923. "Cable" : "210"
  924. },
  925. {
  926. "Wireless" : "378",
  927. "Country" : "Mayotte",
  928. "Code" : "269",
  929. "Cable" : "378"
  930. },
  931. {
  932. "Wireless" : "84",
  933. "Country" : "Mexico",
  934. "Code" : "52",
  935. "Cable" : "199.5"
  936. },
  937. {
  938. "Wireless" : "210",
  939. "Country" : "Micronesia",
  940. "Code" : "691",
  941. "Cable" : "210"
  942. },
  943. {
  944. "Wireless" : "147",
  945. "Country" : "Moldova",
  946. "Code" : "373",
  947. "Cable" : "294"
  948. },
  949. {
  950. "Wireless" : "84",
  951. "Country" : "Monaco",
  952. "Code" : "377",
  953. "Cable" : "346.5"
  954. },
  955. {
  956. "Wireless" : "294",
  957. "Country" : "Morocco",
  958. "Code" : "212",
  959. "Cable" : "294"
  960. },
  961. {
  962. "Wireless" : "210",
  963. "Country" : "Mozambique",
  964. "Code" : "258",
  965. "Cable" : "210"
  966. },
  967. {
  968. "Wireless" : "84",
  969. "Country" : "Namibia",
  970. "Code" : "264",
  971. "Cable" : "84"
  972. },
  973. {
  974. "Wireless" : "31.5",
  975. "Country" : "Netherlands",
  976. "Code" : "31",
  977. "Cable" : "231"
  978. },
  979. {
  980. "Wireless" : "210",
  981. "Country" : "New Caledonia",
  982. "Code" : "687",
  983. "Cable" : "210"
  984. },
  985. {
  986. "Wireless" : "31.5",
  987. "Country" : "New Zealand",
  988. "Code" : "64",
  989. "Cable" : "252"
  990. },
  991. {
  992. "Wireless" : "147",
  993. "Country" : "Nicaragua",
  994. "Code" : "505",
  995. "Cable" : "241.5"
  996. },
  997. {
  998. "Wireless" : "252",
  999. "Country" : "Niger",
  1000. "Code" : "227",
  1001. "Cable" : "252"
  1002. },
  1003. {
  1004. "Wireless" : "96",
  1005. "Country" : "Nigeria",
  1006. "Code" : "234",
  1007. "Cable" : "96.2"
  1008. },
  1009. {
  1010. "Wireless" : "735",
  1011. "Country" : "Niue Island",
  1012. "Code" : "683",
  1013. "Cable" : "735"
  1014. },
  1015. {
  1016. "Wireless" : "241.5",
  1017. "Country" : "Norfolk Island",
  1018. "Code" : "672",
  1019. "Cable" : "241.5"
  1020. },
  1021. {
  1022. "Wireless" : "31.5",
  1023. "Country" : "Norway",
  1024. "Code" : "47",
  1025. "Cable" : "241.5"
  1026. },
  1027. {
  1028. "Wireless" : "189",
  1029. "Country" : "Oman",
  1030. "Code" : "968",
  1031. "Cable" : "189"
  1032. },
  1033. {
  1034. "Wireless" : "367.5",
  1035. "Country" : "Palau",
  1036. "Code" : "680",
  1037. "Cable" : "367.5"
  1038. },
  1039. {
  1040. "Wireless" : "63",
  1041. "Country" : "Panama",
  1042. "Code" : "507",
  1043. "Cable" : "157.5"
  1044. },
  1045. {
  1046. "Wireless" : "1050",
  1047. "Country" : "Papua New Guinea",
  1048. "Code" : "675",
  1049. "Cable" : "1050"
  1050. },
  1051. {
  1052. "Wireless" : "31.5",
  1053. "Country" : "Paraguay",
  1054. "Code" : "595",
  1055. "Cable" : "126"
  1056. },
  1057. {
  1058. "Wireless" : "31.5",
  1059. "Country" : "Peru",
  1060. "Code" : "51",
  1061. "Cable" : "126"
  1062. },
  1063. {
  1064. "Wireless" : "31.5",
  1065. "Country" : "Poland",
  1066. "Code" : "48",
  1067. "Cable" : "115.5"
  1068. },
  1069. {
  1070. "Wireless" : "31.5",
  1071. "Country" : "Portugal",
  1072. "Code" : "351",
  1073. "Cable" : "105"
  1074. },
  1075. {
  1076. "Wireless" : "31.5",
  1077. "Country" : "Puerto Rico",
  1078. "Code" : "1787",
  1079. "Cable" : "31.5"
  1080. },
  1081. {
  1082. "Wireless" : "168",
  1083. "Country" : "Qatar",
  1084. "Code" : "974",
  1085. "Cable" : "199.5"
  1086. },
  1087. {
  1088. "Wireless" : "325.5",
  1089. "Country" : "Reunion island",
  1090. "Code" : "262",
  1091. "Cable" : "325.5"
  1092. },
  1093. {
  1094. "Wireless" : "31.5",
  1095. "Country" : "Romania",
  1096. "Code" : "40",
  1097. "Cable" : "105"
  1098. },
  1099. {
  1100. "Wireless" : "52.5",
  1101. "Country" : "Russia",
  1102. "Code" : "7",
  1103. "Cable" : "126"
  1104. },
  1105. {
  1106. "Wireless" : "147",
  1107. "Country" : "Rwanda",
  1108. "Code" : "250",
  1109. "Cable" : "147"
  1110. },
  1111. {
  1112. "Wireless" : "31.5",
  1113. "Country" : "Samoa(American)",
  1114. "Code" : "685",
  1115. "Cable" : "31.5"
  1116. },
  1117. {
  1118. "Wireless" : "1218",
  1119. "Country" : "San Marino",
  1120. "Code" : "378549",
  1121. "Cable" : "1218"
  1122. },
  1123. {
  1124. "Wireless" : "966",
  1125. "Country" : "Sao Tome and Principe",
  1126. "Code" : "23912",
  1127. "Cable" : "966"
  1128. },
  1129. {
  1130. "Wireless" : "94.5",
  1131. "Country" : "Saudi Arabia",
  1132. "Code" : "966",
  1133. "Cable" : "147"
  1134. },
  1135. {
  1136. "Wireless" : "430.5",
  1137. "Country" : "Senegal",
  1138. "Code" : "221",
  1139. "Cable" : "430.5"
  1140. },
  1141. {
  1142. "Wireless" : "252",
  1143. "Country" : "Serbia",
  1144. "Code" : "381",
  1145. "Cable" : "252"
  1146. },
  1147. {
  1148. "Wireless" : "588",
  1149. "Country" : "Seychelles",
  1150. "Code" : "248",
  1151. "Cable" : "588"
  1152. },
  1153. {
  1154. "Wireless" : "462",
  1155. "Country" : "Sierra Leone",
  1156. "Code" : "232",
  1157. "Cable" : "462"
  1158. },
  1159. {
  1160. "Wireless" : "31.5",
  1161. "Country" : "Singapore",
  1162. "Code" : "65",
  1163. "Cable" : "31.5"
  1164. },
  1165. {
  1166. "Wireless" : "94.5",
  1167. "Country" : "Slovakia",
  1168. "Code" : "421",
  1169. "Cable" : "94.5"
  1170. },
  1171. {
  1172. "Wireless" : "31.5",
  1173. "Country" : "Slovenian",
  1174. "Code" : "386",
  1175. "Cable" : "357"
  1176. },
  1177. {
  1178. "Wireless" : "1050",
  1179. "Country" : "Solomon Islands",
  1180. "Code" : "677",
  1181. "Cable" : "1050"
  1182. },
  1183. {
  1184. "Wireless" : "567",
  1185. "Country" : "Somalia",
  1186. "Code" : "252",
  1187. "Cable" : "567"
  1188. },
  1189. {
  1190. "Wireless" : "52.5",
  1191. "Country" : "South Africa",
  1192. "Code" : "27",
  1193. "Cable" : "189"
  1194. },
  1195. {
  1196. "Wireless" : "31.5",
  1197. "Country" : "Spain",
  1198. "Code" : "34",
  1199. "Cable" : "178.5"
  1200. },
  1201. {
  1202. "Wireless" : "241.5",
  1203. "Country" : "St Lucia",
  1204. "Code" : "1758",
  1205. "Cable" : "241.5"
  1206. },
  1207. {
  1208. "Wireless" : "252",
  1209. "Country" : "St. Vincent and the Grenadines",
  1210. "Code" : "1784",
  1211. "Cable" : "252"
  1212. },
  1213. {
  1214. "Wireless" : "231",
  1215. "Country" : "Sudan",
  1216. "Code" : "249",
  1217. "Cable" : "231"
  1218. },
  1219. {
  1220. "Wireless" : "136.5",
  1221. "Country" : "Suriname",
  1222. "Code" : "597",
  1223. "Cable" : "199.5"
  1224. },
  1225. {
  1226. "Wireless" : "136.5",
  1227. "Country" : "Swaziland",
  1228. "Code" : "268",
  1229. "Cable" : "136.5"
  1230. },
  1231. {
  1232. "Wireless" : "31.5",
  1233. "Country" : "Sweden",
  1234. "Code" : "46",
  1235. "Cable" : "84"
  1236. },
  1237. {
  1238. "Wireless" : "31.5",
  1239. "Country" : "Swiss",
  1240. "Code" : "41",
  1241. "Cable" : "189"
  1242. },
  1243. {
  1244. "Wireless" : "178.5",
  1245. "Country" : "Syria",
  1246. "Code" : "963",
  1247. "Cable" : "178.5"
  1248. },
  1249. {
  1250. "Wireless" : "31.5",
  1251. "Country" : "Taiwan",
  1252. "Code" : "886",
  1253. "Cable" : "105"
  1254. },
  1255. {
  1256. "Wireless" : "157.5",
  1257. "Country" : "Tajikistan",
  1258. "Code" : "992",
  1259. "Cable" : "157.5"
  1260. },
  1261. {
  1262. "Wireless" : "252",
  1263. "Country" : "Tanzania",
  1264. "Code" : "255",
  1265. "Cable" : "273"
  1266. },
  1267. {
  1268. "Wireless" : "346.5",
  1269. "Country" : "Togo",
  1270. "Code" : "228",
  1271. "Cable" : "346.5"
  1272. },
  1273. {
  1274. "Wireless" : "420",
  1275. "Country" : "Tonga",
  1276. "Code" : "676",
  1277. "Cable" : "420"
  1278. },
  1279. {
  1280. "Wireless" : "105",
  1281. "Country" : "Trinidad and Tobago",
  1282. "Code" : "1868",
  1283. "Cable" : "105"
  1284. },
  1285. {
  1286. "Wireless" : "462",
  1287. "Country" : "Tunisia",
  1288. "Code" : "216",
  1289. "Cable" : "462"
  1290. },
  1291. {
  1292. "Wireless" : "31.5",
  1293. "Country" : "Turkey",
  1294. "Code" : "90",
  1295. "Cable" : "210"
  1296. },
  1297. {
  1298. "Wireless" : "126",
  1299. "Country" : "Turkmenistan",
  1300. "Code" : "993",
  1301. "Cable" : "126"
  1302. },
  1303. {
  1304. "Wireless" : "168",
  1305. "Country" : "Turks and Caicos Islands",
  1306. "Code" : "1649",
  1307. "Cable" : "168"
  1308. },
  1309. {
  1310. "Wireless" : "756",
  1311. "Country" : "Tuvalu",
  1312. "Code" : "688",
  1313. "Cable" : "756"
  1314. },
  1315. {
  1316. "Wireless" : "199.5",
  1317. "Country" : "Uganda",
  1318. "Code" : "256",
  1319. "Cable" : "199.5"
  1320. },
  1321. {
  1322. "Wireless" : "157.5",
  1323. "Country" : "Ukraine",
  1324. "Code" : "380",
  1325. "Cable" : "157.5"
  1326. },
  1327. {
  1328. "Wireless" : "157.5",
  1329. "Country" : "United Arab Emirates",
  1330. "Code" : "971",
  1331. "Cable" : "157.5"
  1332. },
  1333. {
  1334. "Wireless" : "31.5",
  1335. "Country" : "United States",
  1336. "Code" : "1",
  1337. "Cable" : "31.5"
  1338. },
  1339. {
  1340. "Wireless" : "63",
  1341. "Country" : "Uruguay",
  1342. "Code" : "598",
  1343. "Cable" : "189"
  1344. },
  1345. {
  1346. "Wireless" : "556.5",
  1347. "Country" : "Vanuatu",
  1348. "Code" : "678",
  1349. "Cable" : "556.5"
  1350. },
  1351. {
  1352. "Wireless" : "325.5",
  1353. "Country" : "Vatican City",
  1354. "Code" : "396",
  1355. "Cable" : "325.5"
  1356. },
  1357. {
  1358. "Wireless" : "31.5",
  1359. "Country" : "Venezuela",
  1360. "Code" : "58",
  1361. "Cable" : "105"
  1362. },
  1363. {
  1364. "Wireless" : "1207.5",
  1365. "Country" : "Wallis and Futuna Islands",
  1366. "Code" : "681",
  1367. "Cable" : "1207.5"
  1368. },
  1369. {
  1370. "Wireless" : "168",
  1371. "Country" : "Yemen",
  1372. "Code" : "967",
  1373. "Cable" : "168"
  1374. },
  1375. {
  1376. "Wireless" : "105",
  1377. "Country" : "Zambia",
  1378. "Code" : "260",
  1379. "Cable" : "105"
  1380. },
  1381. {
  1382. "Wireless" : "294",
  1383. "Country" : "Zimbabwe",
  1384. "Code" : "263",
  1385. "Cable" : "294"
  1386. },
  1387. {
  1388. "Wireless" : "220.5",
  1389. "Country" : "Ghana",
  1390. "Code" : "233",
  1391. "Cable" : "220.5"
  1392. },
  1393. {
  1394. "Wireless" : "84",
  1395. "Country" : "Nauru",
  1396. "Code" : "520",
  1397. "Cable" : "84"
  1398. },
  1399. {
  1400. "Wireless" : "199.5",
  1401. "Country" : "Dominica",
  1402. "Code" : "1767",
  1403. "Cable" : "199.5"
  1404. },
  1405. {
  1406. "Wireless" : "682.5",
  1407. "Country" : "East Timor",
  1408. "Code" : "670",
  1409. "Cable" : "682.5"
  1410. },
  1411. {
  1412. "Wireless" : "31.5",
  1413. "Country" : "Malta",
  1414. "Code" : "356",
  1415. "Cable" : "220.5"
  1416. },
  1417. {
  1418. "Wireless" : "189",
  1419. "Country" : "Bahamas",
  1420. "Code" : "1242",
  1421. "Cable" : "189"
  1422. },
  1423. {
  1424. "Wireless" : "231",
  1425. "Country" : "Chad",
  1426. "Code" : "235",
  1427. "Cable" : "231"
  1428. },
  1429. {
  1430. "Wireless" : "304.5",
  1431. "Country" : "Central African Republic",
  1432. "Code" : "236",
  1433. "Cable" : "304.5"
  1434. },
  1435. {
  1436. "Wireless" : "1176",
  1437. "Country" : "Kiribati",
  1438. "Code" : "686",
  1439. "Cable" : "1176"
  1440. },
  1441. {
  1442. "Wireless" : "315",
  1443. "Country" : "Haiti",
  1444. "Code" : "509",
  1445. "Cable" : "315"
  1446. }
  1447. ],
  1448. "CardInfo" : [
  1449. {
  1450. "Promotion_price" : null,
  1451. "FacePrice" : null,
  1452. "CardCode" : "MANGO_001",
  1453. "SubInfo" : null,
  1454. "CardName" : null
  1455. }
  1456. ],
  1457. "ButtonsGrid" : [
  1458. {
  1459. "Price" : "10000"
  1460. },
  1461. {
  1462. "Price" : "20000"
  1463. },
  1464. {
  1465. "Price" : "30000"
  1466. },
  1467. {
  1468. "Price" : "40000"
  1469. },
  1470. {
  1471. "Price" : "50000"
  1472. },
  1473. {
  1474. "Price" : "100000"
  1475. }
  1476. ]
  1477. },
  1478. "ErrorCode" : "0",
  1479. "Msg" : "Success"
  1480. }
  1481. """
  1482. guard
  1483. let jsonData = ResponseContainerObject<CardList>(JSONString: testJson),
  1484. let json = jsonData.data?.countryPriceCode else { return }
  1485. json.forEach {
  1486. print("\(CountryEnum.getCode(from: $0.countryName ?? "")) : \($0.countryName), \($0.countryCode)")
  1487. }
  1488. }
  1489. }