Saya punya interface dengan spek sebagai berikut:
type BookRepository interface {
Save(model *models.Book) error
}
saya punya service dengan spek sebagai berikut:
type Service struct{
repository repositories.BookRepository
}
func (s *Service) Save(model *models.Book) error {
err := s.repository.Save(model)
if err == tools.ErrorAlreadyExists {
return errors.New("Title already exists")
}
if err == tools.ErrorStorage {
return errors.New("Internal error")
}
return err
}
buat program untuk mensimulasikan skenario di atas (dapat dijalankan dengan go run main.go
) dan buatlah unit test untuk kasus di atas