Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2017
453
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. import XCTest
  2.  
  3. class UserRepoRefactoredTests: XCTestCase {
  4. var userRepo = UserRepo()
  5. var email = "user@gmail.com"
  6. var result = [User]()
  7.  
  8. lazy var findAdminsByAction: Action = {
  9. return Action() {
  10. self.createAdmin(name: "User Admin 1")
  11. self.createUser(name: "User")
  12.  
  13. self.result = self.userRepo.findAdminsBy(email: self.email)
  14. }
  15. }()
  16.  
  17. func testFindAdminsByMethodWhenHaveTwoAdminsAndOneCommunUserWithSameEmailAndPassTheEmailAsParameter() {
  18. let expectedCount = 2
  19. let expectedNameOne = "User Admin 1"
  20. let expectedNameTwo = "User Admin 2"
  21.  
  22. execute(action: findAdminsByAction) {
  23. self.createAdmin(name: expectedNameTwo)
  24. }
  25.  
  26. XCTAssertEqual(expectedCount, result.count)
  27.  
  28. XCTAssertEqual(expectedNameOne, result[1].name)
  29. XCTAssertEqual(expectedNameTwo, result[0].name)
  30. }
  31.  
  32. func testFindAdminsByMethodWhenHaveOneAdmimAndOneCommunUserWithSameEmailAndPassTheEmailAsParameter() {
  33. let expectedCount = 1
  34. let expectedName = "User Admin 1"
  35.  
  36. execute(action: findAdminsByAction)
  37.  
  38. XCTAssertEqual(expectedCount, result.count)
  39. XCTAssertEqual(expectedName, result[0].name)
  40. }
  41.  
  42. func testFindAdminsByMethodWhenHaveOneAdmimAndOneCommunUserWithSameEmailAndPassDifferentEmailAsParameter() {
  43. let expectedCount = 0
  44.  
  45. execute(action: findAdminsByAction) {
  46. self.email = "none@gmail.com"
  47. }
  48.  
  49. XCTAssertEqual(expectedCount, result.count)
  50. }
  51.  
  52. // MARK: Functions to help to create User and Admin
  53.  
  54. func createUser(name: String, email: String = "user@gmail.com") {
  55. let user = User(email: email, name: name)
  56. userRepo.save(user)
  57. }
  58.  
  59. func createAdmin(name: String, email: String = "user@gmail.com") {
  60. let user = User(email: email, name: name, isAdmin: true)
  61. userRepo.save(user)
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement