package listing import "time" type RepositoryMock struct { listings []Listing err error } func (r *RepositoryMock) GetAll() ([]Listing, error) { if r.err != nil { return nil, r.err } return r.listings, nil } func (r *RepositoryMock) GetByCategory(c string) ([]Listing, error) { if r.err != nil { return nil, r.err } var res []Listing for _, l := range r.listings { for _, cat := range l.category { if cat == c { res = append(res, l) break } } } return res, nil } func NewRepositoryMock() *RepositoryMock { mockListings := []Listing{ { id: 0, title: "Audi a5 2.0 2015 godiste", slug: "audi-a5-2-0-2015-godiste", location: Location{city: "Novi Sad", street: "Bulevar Cara Lazara", premise: "3"}, status: PublishedStatus, category: []string{"automobile", "audi", "a5"}, price: 5000, currency: "EUR", description: "Pali odma ide lepo", images: []string{}, views: 10, createdAt: time.Now(), author: nil, isExternal: false, }, { id: 1, title: "Led lampa za glavu TJ-1608", slug: "led-lampa-za-glavu-tj-1608", location: Location{city: "Belgrade"}, status: PublishedStatus, category: []string{"hunting", "hunting-lamps"}, price: 1200, currency: "RSD", description: "Odlična lampa, svetli super", images: []string{}, views: 21, createdAt: time.Now(), author: nil, isExternal: false, }, { id: 2, title: "Školski anatomski ranac Minnie Mouse metalik", slug: "skolski-anatomski-ranac-minnie-mouse-metalik", location: Location{city: "Mladenovac"}, status: PublishedStatus, category: []string{"school", "backpacks"}, price: 3400, currency: "RSD", description: "Minnie ranac mnogo lep za devojčice", images: []string{}, views: 131, createdAt: time.Now(), author: nil, isExternal: false, }, } return &RepositoryMock{listings: mockListings} }