Store pointer to data instead of serialized form (#1196)
## Description Remove JSON [de]serialization from mock model store and just use assignments. Model Store tests check that all fields are properly filled out so using JSON here is not required. Unblocks #1089 as mock model store no longer relies on JSON serialization (and tags associated with models) ## Type of change <!--- Please check the type of change your PR introduces: ---> - [ ] 🌻 Feature - [ ] 🐛 Bugfix - [ ] 🗺️ Documentation - [ ] 🤖 Test - [ ] 💻 CI/Deployment - [x] 🐹 Trivial/Minor ## Issue(s) * #1085 ## Test Plan <!-- How will this be tested prior to merging.--> - [ ] 💪 Manual - [x] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
4800904b04
commit
0a91a3e097
@ -2,7 +2,6 @@ package mock
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/kopia/kopia/repo/manifest"
|
||||
"github.com/pkg/errors"
|
||||
@ -17,29 +16,19 @@ import (
|
||||
// ------------------------------------------------------------
|
||||
|
||||
type MockModelStore struct {
|
||||
backup []byte
|
||||
details []byte
|
||||
backup *backup.Backup
|
||||
details *details.Details
|
||||
err error
|
||||
}
|
||||
|
||||
func NewMock(b *backup.Backup, d *details.Details, err error) *MockModelStore {
|
||||
return &MockModelStore{
|
||||
backup: marshal(b),
|
||||
details: marshal(d),
|
||||
backup: b,
|
||||
details: d,
|
||||
err: err,
|
||||
}
|
||||
}
|
||||
|
||||
func marshal(a any) []byte {
|
||||
bs, _ := json.Marshal(a)
|
||||
return bs
|
||||
}
|
||||
|
||||
func unmarshal(b []byte, a any) {
|
||||
//nolint:errcheck
|
||||
json.Unmarshal(b, a)
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------
|
||||
// deleter iface
|
||||
// ------------------------------------------------------------
|
||||
@ -68,9 +57,13 @@ func (mms *MockModelStore) Get(
|
||||
|
||||
switch s {
|
||||
case model.BackupSchema:
|
||||
unmarshal(mms.backup, data)
|
||||
bm := data.(*backup.Backup)
|
||||
*bm = *mms.backup
|
||||
|
||||
case model.BackupDetailsSchema:
|
||||
unmarshal(mms.details, data)
|
||||
dm := data.(*details.Details)
|
||||
dm.DetailsModel = mms.details.DetailsModel
|
||||
|
||||
default:
|
||||
return errors.Errorf("schema %s not supported by mock Get", s)
|
||||
}
|
||||
@ -89,13 +82,12 @@ func (mms *MockModelStore) GetIDsForType(
|
||||
|
||||
switch s {
|
||||
case model.BackupSchema:
|
||||
b := backup.Backup{}
|
||||
unmarshal(mms.backup, &b)
|
||||
|
||||
b := *mms.backup
|
||||
return []*model.BaseModel{&b.BaseModel}, nil
|
||||
|
||||
case model.BackupDetailsSchema:
|
||||
d := details.Details{}
|
||||
unmarshal(mms.backup, &d)
|
||||
d.DetailsModel = mms.details.DetailsModel
|
||||
|
||||
return []*model.BaseModel{&d.BaseModel}, nil
|
||||
}
|
||||
@ -115,9 +107,13 @@ func (mms *MockModelStore) GetWithModelStoreID(
|
||||
|
||||
switch s {
|
||||
case model.BackupSchema:
|
||||
unmarshal(mms.backup, data)
|
||||
bm := data.(*backup.Backup)
|
||||
*bm = *mms.backup
|
||||
|
||||
case model.BackupDetailsSchema:
|
||||
unmarshal(mms.details, data)
|
||||
dm := data.(*details.Details)
|
||||
dm.DetailsModel = mms.details.DetailsModel
|
||||
|
||||
default:
|
||||
return errors.Errorf("schema %s not supported by mock GetWithModelStoreID", s)
|
||||
}
|
||||
@ -132,9 +128,13 @@ func (mms *MockModelStore) GetWithModelStoreID(
|
||||
func (mms *MockModelStore) Put(ctx context.Context, s model.Schema, m model.Model) error {
|
||||
switch s {
|
||||
case model.BackupSchema:
|
||||
mms.backup = marshal(m)
|
||||
bm := m.(*backup.Backup)
|
||||
mms.backup = bm
|
||||
|
||||
case model.BackupDetailsSchema:
|
||||
mms.details = marshal(m)
|
||||
dm := m.(*details.Details)
|
||||
mms.details = dm
|
||||
|
||||
default:
|
||||
return errors.Errorf("schema %s not supported by mock Put", s)
|
||||
}
|
||||
@ -145,9 +145,13 @@ func (mms *MockModelStore) Put(ctx context.Context, s model.Schema, m model.Mode
|
||||
func (mms *MockModelStore) Update(ctx context.Context, s model.Schema, m model.Model) error {
|
||||
switch s {
|
||||
case model.BackupSchema:
|
||||
mms.backup = marshal(m)
|
||||
bm := m.(*backup.Backup)
|
||||
mms.backup = bm
|
||||
|
||||
case model.BackupDetailsSchema:
|
||||
mms.details = marshal(m)
|
||||
dm := m.(*details.Details)
|
||||
mms.details = dm
|
||||
|
||||
default:
|
||||
return errors.Errorf("schema %s not supported by mock Update", s)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user