Guest User

Untitled

a guest
Jul 19th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. package service
  2.  
  3. import (
  4. "github.com/stretchr/testify/assert"
  5. "github.com/micnncim/clean-arch-test/repository"
  6. )
  7.  
  8. // type UserRepository interface {
  9. // GetByID(id int) (*User, error)
  10. // GetByName(name string) (*User, error)
  11. // }
  12.  
  13. // type UserService interface {
  14. // GetByID(id int) (*User, error)
  15. // GetByName(name string) (*User, error)
  16. // }
  17.  
  18. // type userService struct {
  19. // r repository.UserRepository
  20. // }
  21.  
  22. type fakeUserRepository struct {
  23. }
  24.  
  25. func (r *fakeUserRepository) GetByID(id int) (*User, error) {
  26. return &User{
  27. ID: 1,
  28. Name: "Alice",
  29. }, nil
  30. }
  31.  
  32. func (r *fakeUserRepository) GetByName(name string) (*User, error) {
  33. ...
  34. }
  35.  
  36. func TestGetByID(t *testing.T) {
  37. patterns := []struct{
  38. in int
  39. expected *User
  40. }{
  41. {
  42. in: 1,
  43. expected: &User{
  44. ID: 1,
  45. Name: "Alice",
  46. },
  47. },
  48. }
  49.  
  50. s := &UserService{r: &fakeUserRepository{}}
  51.  
  52. for _, p := range patterns {
  53. actual, err := s.GetByID(p.in)
  54. assert.NoError(t, err, "expect no error")
  55. assert.Equal(t, p.expected, actual, "expect expected == actual")
  56. }
  57. }
Add Comment
Please, Sign In to add comment