-
Notifications
You must be signed in to change notification settings - Fork 1
/
collection.go
34 lines (26 loc) · 958 Bytes
/
collection.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package mongo
import (
"context"
"github.com/renanferr/planets-api/pkg/storage/mongo"
mongodb "go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
type CollectionMock struct {
Value interface{}
Err error
}
func NewCollectionMock(value interface{}, err error) *CollectionMock {
return &CollectionMock{value, err}
}
func (m *CollectionMock) Count(ctx context.Context, filter interface{}) (int64, error) {
return m.Value.(*CursorMock).Len(), m.Err
}
func (m *CollectionMock) FindOne(ctx context.Context, filter interface{}) mongo.SingleResult {
return m.Value.(mongo.SingleResult)
}
func (m *CollectionMock) Find(ctx context.Context, filter interface{}, opts ...*options.FindOptions) (mongo.Cursor, error) {
return m.Value.(*CursorMock), m.Err
}
func (m *CollectionMock) InsertOne(ctx context.Context, document interface{}) (*mongodb.InsertOneResult, error) {
return m.Value.(*mongodb.InsertOneResult), m.Err
}