A Stream is a continuous transmission of data. An item is a single structure. Crossing the two definitions generates confusion. Primarily code movement/renaming. Though there is also some reduction/replacement of structs where we'd made a variety of testable Item implementations instead of re-using the generic mock. --- #### Does this PR need a docs update or release note? - [x] ⛔ No #### Type of change - [x] 🧹 Tech Debt/Cleanup #### Test Plan - [x] ⚡ Unit test - [x] 💚 E2E
68 lines
1.1 KiB
Go
68 lines
1.1 KiB
Go
package mock
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/alcionai/corso/src/internal/data"
|
|
"github.com/alcionai/corso/src/pkg/fault"
|
|
"github.com/alcionai/corso/src/pkg/path"
|
|
)
|
|
|
|
type RestoreCollection struct {
|
|
data.Collection
|
|
AuxItems map[string]data.Item
|
|
}
|
|
|
|
func (rc RestoreCollection) FetchItemByName(
|
|
ctx context.Context,
|
|
name string,
|
|
) (data.Item, error) {
|
|
res := rc.AuxItems[name]
|
|
if res == nil {
|
|
return nil, data.ErrNotFound
|
|
}
|
|
|
|
return res, nil
|
|
}
|
|
|
|
type BackupCollection struct {
|
|
Path path.Path
|
|
Loc *path.Builder
|
|
Streams []data.Item
|
|
CState data.CollectionState
|
|
}
|
|
|
|
func (c *BackupCollection) Items(context.Context, *fault.Bus) <-chan data.Item {
|
|
res := make(chan data.Item)
|
|
|
|
go func() {
|
|
defer close(res)
|
|
|
|
for _, s := range c.Streams {
|
|
res <- s
|
|
}
|
|
}()
|
|
|
|
return res
|
|
}
|
|
|
|
func (c BackupCollection) FullPath() path.Path {
|
|
return c.Path
|
|
}
|
|
|
|
func (c BackupCollection) PreviousPath() path.Path {
|
|
return c.Path
|
|
}
|
|
|
|
func (c BackupCollection) LocationPath() *path.Builder {
|
|
return c.Loc
|
|
}
|
|
|
|
func (c BackupCollection) State() data.CollectionState {
|
|
return c.CState
|
|
}
|
|
|
|
func (c BackupCollection) DoNotMergeItems() bool {
|
|
return false
|
|
}
|