Created
January 1, 2021 03:37
-
-
Save ilmiawan/c62ae8a80f59d2f51ebc5bc8dfb06f23 to your computer and use it in GitHub Desktop.
contoh polymorphism
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Service interface | |
| type Service interface { | |
| GetUserDetailsByUserID(id int) (DetailsResponse, error) | |
| } | |
| // service | |
| type service struct { | |
| client Client | |
| } | |
| // GetUserDetailsByUserID function yang mengambil data user dengan memanggil fungsi di client | |
| func (s service) GetUserDetailsByUserID(id int) (DetailsResponse, error) { | |
| return s.client.FetchUserDetailsByID(id) | |
| } | |
| // ------------ Mock polymorphism ---------------------------------- | |
| // ServiceMock user service mock | |
| type ServiceMock struct{} | |
| // GetUserDetailsByUserID function langsung mengembalikan | |
| func (s ServiceMock) GetUserDetailsByUserID(id int) (DetailsResponse, error) { | |
| result := DetailsResponse{} | |
| details := make([]Details, 0) | |
| detail := Details{} | |
| details = append(details, detail) | |
| result.Total = 1 | |
| result.Data = details | |
| return result, nil | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment