Guest User

Untitled

a guest
Dec 21st, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. import XCTest
  2. import SwiftyJSON
  3.  
  4. class TestingConstants {
  5. static let userJsonExample = "{\"username\": \"testusername\",\"name\" : \"juan\", \"lastname\" : \"perez\", \"email\" : \"email@address.com\", \"birthDate\" : \"01-01-1980\"}"
  6. }
  7.  
  8. class LoginViewMock {
  9.  
  10. }
  11.  
  12. class LoginServiceMock : LoginService{
  13.  
  14. var didCallGetUserList = false
  15.  
  16. override func login(username : String, password : String, completion: @escaping (User?,Error?) -> Void) {
  17. // Given
  18. let jsonString = TestingConstants.userJsonExample
  19. let jsonData = jsonString.data(using: .utf8)!
  20. let jsonResponse = try! JSON.init(data: jsonData)
  21. let user = User.init(json: jsonResponse)
  22.  
  23. // Verify
  24. XCTAssert(user.username == "testusername")
  25. XCTAssert(user.name == "juan")
  26. XCTAssert(user.lastname == "perez")
  27. XCTAssert(user.email == "email@address.com")
  28. completion(user,nil)
  29. }
  30.  
  31.  
  32. override func getUserList(token : String, completion: @escaping (UserFeed?,Error?) -> Void) {
  33. didCallGetUserList = true
  34. }
  35. }
  36.  
  37.  
  38.  
  39. class LoginTests: XCTestCase {
  40.  
  41. var loginService : LoginServiceMock?
  42. var loginPresenter : LoginPresenter?
  43.  
  44. override func setUp() {
  45. super.setUp()
  46. loginService = LoginServiceMock()
  47. loginPresenter = LoginPresenter.init(loginService:loginService!)
  48. }
  49.  
  50. override func tearDown() {
  51. super.tearDown()
  52. }
  53.  
  54.  
  55. func testLoginFlow() {
  56. // Given
  57. let username = "testusername"
  58. let password = "123456"
  59. let expectation = self.expectation(description: "loginUser")
  60.  
  61. // When
  62. loginPresenter?.loginUserSaveSessionAndGetUserList(username:username, password: password, completion: { (error) in
  63. expectation.fulfill()
  64. })
  65.  
  66. waitForExpectations(timeout: 15, handler: nil)
  67.  
  68. // Verify
  69. XCTAssert(loginService?.didCallGetUserList == true, "getUserList should have been called")
  70. }
  71.  
  72.  
  73.  
  74. }
Add Comment
Please, Sign In to add comment