/
interface.go
96 lines (79 loc) · 2.38 KB
/
interface.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//nolint:forcetypeassert
package file
import (
"context"
"io"
"time"
"github.com/data-preservation-programs/singularity/model"
"github.com/ipfs/go-cid"
"github.com/stretchr/testify/mock"
"gorm.io/gorm"
)
type FilecoinRetriever interface {
Retrieve(ctx context.Context, c cid.Cid, rangeStart int64, rangeEnd int64, sps []string, out io.Writer) error
RetrieveReader(ctx context.Context, c cid.Cid, rangeStart int64, rangeEnd int64, sps []string) (io.ReadCloser, error)
}
type Handler interface {
PrepareToPackFileHandler(
ctx context.Context,
db *gorm.DB,
fileID uint64) (int64, error)
GetFileDealsHandler(
ctx context.Context,
db *gorm.DB,
id uint64,
) ([]DealsForFileRange, error)
GetFileHandler(
ctx context.Context,
db *gorm.DB,
id uint64,
) (*model.File, error)
PushFileHandler(
ctx context.Context,
db *gorm.DB,
preparation string,
source string,
fileInfo Info,
) (*model.File, error)
RetrieveFileHandler(
ctx context.Context,
db *gorm.DB,
retriever FilecoinRetriever,
id uint64,
) (data io.ReadSeekCloser, name string, modTime time.Time, err error)
}
type DefaultHandler struct{}
var Default Handler = &DefaultHandler{}
var _ Handler = &MockFile{}
type MockFile struct {
mock.Mock
}
func (m *MockFile) PrepareToPackFileHandler(ctx context.Context, db *gorm.DB, fileID uint64) (int64, error) {
args := m.Called(ctx, db, fileID)
return args.Get(0).(int64), args.Error(1)
}
func (m *MockFile) PushFileHandler(ctx context.Context, db *gorm.DB, preparation string, source string, fileInfo Info) (*model.File, error) {
args := m.Called(ctx, db, preparation, source, fileInfo)
return args.Get(0).(*model.File), args.Error(1)
}
func (m *MockFile) GetFileHandler(ctx context.Context, db *gorm.DB, id uint64) (*model.File, error) {
args := m.Called(ctx, db, id)
return args.Get(0).(*model.File), args.Error(1)
}
func (m *MockFile) GetFileDealsHandler(
ctx context.Context,
db *gorm.DB,
id uint64,
) ([]DealsForFileRange, error) {
args := m.Called(ctx, db, id)
return args.Get(0).([]DealsForFileRange), args.Error(1)
}
func (m *MockFile) RetrieveFileHandler(
ctx context.Context,
db *gorm.DB,
retriever FilecoinRetriever,
id uint64,
) (data io.ReadSeekCloser, name string, modTime time.Time, err error) {
args := m.Called(ctx, db, retriever, id)
return args.Get(0).(io.ReadSeekCloser), args.Get(1).(string), args.Get(2).(time.Time), args.Error(3)
}