Fix diffservice tests
This commit is contained in:
parent
620731b464
commit
41fde6f1ad
@ -3,10 +3,12 @@ package diffservice
|
|||||||
import (
|
import (
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/diffservice/mock_diffservice"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/diffservice/mock_diffservice"
|
||||||
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/settingsdocument/deletionstate"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/storage/mock_storage"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/storage/mock_storage"
|
||||||
mock_storage2 "github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/acl/storage/mock_storage"
|
mock_storage2 "github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/acl/storage/mock_storage"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/ldiff"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/ldiff"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/ldiff/mock_ldiff"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/ldiff/mock_ldiff"
|
||||||
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/util/periodicsync/mock_periodicsync"
|
||||||
"github.com/golang/mock/gomock"
|
"github.com/golang/mock/gomock"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
@ -17,10 +19,12 @@ func TestDiffService(t *testing.T) {
|
|||||||
|
|
||||||
spaceId := "spaceId"
|
spaceId := "spaceId"
|
||||||
l := logger.NewNamed("sync")
|
l := logger.NewNamed("sync")
|
||||||
pSyncMock := mock_diffservice.NewMockPeriodicSync(ctrl)
|
pSyncMock := mock_periodicsync.NewMockPeriodicSync(ctrl)
|
||||||
storageMock := mock_storage.NewMockSpaceStorage(ctrl)
|
storageMock := mock_storage.NewMockSpaceStorage(ctrl)
|
||||||
treeStorageMock := mock_storage2.NewMockTreeStorage(ctrl)
|
treeStorageMock := mock_storage2.NewMockTreeStorage(ctrl)
|
||||||
diffMock := mock_ldiff.NewMockDiff(ctrl)
|
diffMock := mock_ldiff.NewMockDiff(ctrl)
|
||||||
|
syncer := mock_diffservice.NewMockDiffSyncer(ctrl)
|
||||||
|
delState := deletionstate.NewDeletionState(storageMock)
|
||||||
syncPeriod := 1
|
syncPeriod := 1
|
||||||
initId := "initId"
|
initId := "initId"
|
||||||
|
|
||||||
@ -28,6 +32,7 @@ func TestDiffService(t *testing.T) {
|
|||||||
spaceId: spaceId,
|
spaceId: spaceId,
|
||||||
storage: storageMock,
|
storage: storageMock,
|
||||||
periodicSync: pSyncMock,
|
periodicSync: pSyncMock,
|
||||||
|
syncer: syncer,
|
||||||
diff: diffMock,
|
diff: diffMock,
|
||||||
log: l,
|
log: l,
|
||||||
syncPeriod: syncPeriod,
|
syncPeriod: syncPeriod,
|
||||||
@ -36,22 +41,25 @@ func TestDiffService(t *testing.T) {
|
|||||||
t.Run("init", func(t *testing.T) {
|
t.Run("init", func(t *testing.T) {
|
||||||
storageMock.EXPECT().TreeStorage(initId).Return(treeStorageMock, nil)
|
storageMock.EXPECT().TreeStorage(initId).Return(treeStorageMock, nil)
|
||||||
treeStorageMock.EXPECT().Heads().Return([]string{"h1", "h2"}, nil)
|
treeStorageMock.EXPECT().Heads().Return([]string{"h1", "h2"}, nil)
|
||||||
|
syncer.EXPECT().Init(delState)
|
||||||
diffMock.EXPECT().Set(ldiff.Element{
|
diffMock.EXPECT().Set(ldiff.Element{
|
||||||
Id: initId,
|
Id: initId,
|
||||||
Head: "h1h2",
|
Head: "h1h2",
|
||||||
})
|
})
|
||||||
pSyncMock.EXPECT().Run()
|
pSyncMock.EXPECT().Run()
|
||||||
service.Init([]string{initId})
|
service.Init([]string{initId}, delState)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("update heads", func(t *testing.T) {
|
t.Run("update heads", func(t *testing.T) {
|
||||||
diffMock.EXPECT().Set(ldiff.Element{
|
syncer.EXPECT().UpdateHeads(initId, []string{"h1", "h2"})
|
||||||
Id: initId,
|
|
||||||
Head: "h1h2",
|
|
||||||
})
|
|
||||||
service.UpdateHeads(initId, []string{"h1", "h2"})
|
service.UpdateHeads(initId, []string{"h1", "h2"})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("remove objects", func(t *testing.T) {
|
||||||
|
syncer.EXPECT().RemoveObjects([]string{"h1", "h2"})
|
||||||
|
service.RemoveObjects([]string{"h1", "h2"})
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("close", func(t *testing.T) {
|
t.Run("close", func(t *testing.T) {
|
||||||
pSyncMock.EXPECT().Close()
|
pSyncMock.EXPECT().Close()
|
||||||
service.Close()
|
service.Close()
|
||||||
|
|||||||
@ -136,11 +136,11 @@ func (d *diffSyncer) sendPushSpaceRequest(ctx context.Context, cl spacesyncproto
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
spaceSettingsTreeStorage, err := d.storage.TreeStorage(d.storage.SpaceSettingsId())
|
settingsStorage, err := d.storage.TreeStorage(d.storage.SpaceSettingsId())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
spaceSettingsRoot, err := spaceSettingsTreeStorage.Root()
|
spaceSettingsRoot, err := settingsStorage.Root()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/remotediff"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/remotediff"
|
||||||
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/settingsdocument/deletionstate"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto/mock_spacesyncproto"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto/mock_spacesyncproto"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/storage/mock_storage"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/storage/mock_storage"
|
||||||
@ -13,6 +14,8 @@ import (
|
|||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf/mock_nodeconf"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf/mock_nodeconf"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/acl/aclrecordproto"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/acl/aclrecordproto"
|
||||||
mock_aclstorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/acl/storage/mock_storage"
|
mock_aclstorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/acl/storage/mock_storage"
|
||||||
|
mock_treestorage "github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/acl/storage/mock_storage"
|
||||||
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/acl/treechangeproto"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/ldiff/mock_ldiff"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/ldiff/mock_ldiff"
|
||||||
"github.com/golang/mock/gomock"
|
"github.com/golang/mock/gomock"
|
||||||
"github.com/libp2p/go-libp2p/core/sec"
|
"github.com/libp2p/go-libp2p/core/sec"
|
||||||
@ -25,6 +28,7 @@ import (
|
|||||||
type pushSpaceRequestMatcher struct {
|
type pushSpaceRequestMatcher struct {
|
||||||
spaceId string
|
spaceId string
|
||||||
aclRootId string
|
aclRootId string
|
||||||
|
settingsId string
|
||||||
spaceHeader *spacesyncproto.RawSpaceHeaderWithId
|
spaceHeader *spacesyncproto.RawSpaceHeaderWithId
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,7 +38,7 @@ func (p pushSpaceRequestMatcher) Matches(x interface{}) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
return res.Payload.AclPayloadId == p.aclRootId && res.Payload.SpaceHeader == p.spaceHeader
|
return res.Payload.AclPayloadId == p.aclRootId && res.Payload.SpaceHeader == p.spaceHeader && res.Payload.SpaceSettingsPayloadId == p.settingsId
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p pushSpaceRequestMatcher) String() string {
|
func (p pushSpaceRequestMatcher) String() string {
|
||||||
@ -77,10 +81,12 @@ func (m mockPeer) NewStream(ctx context.Context, rpc string, enc drpc.Encoding)
|
|||||||
func newPushSpaceRequestMatcher(
|
func newPushSpaceRequestMatcher(
|
||||||
spaceId string,
|
spaceId string,
|
||||||
aclRootId string,
|
aclRootId string,
|
||||||
|
settingsId string,
|
||||||
spaceHeader *spacesyncproto.RawSpaceHeaderWithId) *pushSpaceRequestMatcher {
|
spaceHeader *spacesyncproto.RawSpaceHeaderWithId) *pushSpaceRequestMatcher {
|
||||||
return &pushSpaceRequestMatcher{
|
return &pushSpaceRequestMatcher{
|
||||||
spaceId: spaceId,
|
spaceId: spaceId,
|
||||||
aclRootId: aclRootId,
|
aclRootId: aclRootId,
|
||||||
|
settingsId: settingsId,
|
||||||
spaceHeader: spaceHeader,
|
spaceHeader: spaceHeader,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -99,10 +105,12 @@ func TestDiffSyncer_Sync(t *testing.T) {
|
|||||||
factory := spacesyncproto.ClientFactoryFunc(func(cc drpc.Conn) spacesyncproto.DRPCSpaceClient {
|
factory := spacesyncproto.ClientFactoryFunc(func(cc drpc.Conn) spacesyncproto.DRPCSpaceClient {
|
||||||
return clientMock
|
return clientMock
|
||||||
})
|
})
|
||||||
|
delState := deletionstate.NewDeletionState(stMock)
|
||||||
spaceId := "spaceId"
|
spaceId := "spaceId"
|
||||||
aclRootId := "aclRootId"
|
aclRootId := "aclRootId"
|
||||||
l := logger.NewNamed(spaceId)
|
l := logger.NewNamed(spaceId)
|
||||||
diffSyncer := newDiffSyncer(spaceId, diffMock, connectorMock, cacheMock, stMock, factory, l)
|
diffSyncer := newDiffSyncer(spaceId, diffMock, connectorMock, cacheMock, stMock, factory, l)
|
||||||
|
diffSyncer.Init(delState)
|
||||||
|
|
||||||
t.Run("diff syncer sync simple", func(t *testing.T) {
|
t.Run("diff syncer sync simple", func(t *testing.T) {
|
||||||
connectorMock.EXPECT().
|
connectorMock.EXPECT().
|
||||||
@ -129,10 +137,16 @@ func TestDiffSyncer_Sync(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("diff syncer sync space missing", func(t *testing.T) {
|
t.Run("diff syncer sync space missing", func(t *testing.T) {
|
||||||
aclStorageMock := mock_aclstorage.NewMockListStorage(ctrl)
|
aclStorageMock := mock_aclstorage.NewMockListStorage(ctrl)
|
||||||
|
settingsStorage := mock_treestorage.NewMockTreeStorage(ctrl)
|
||||||
|
settingsId := "settingsId"
|
||||||
aclRoot := &aclrecordproto.RawACLRecordWithId{
|
aclRoot := &aclrecordproto.RawACLRecordWithId{
|
||||||
Id: aclRootId,
|
Id: aclRootId,
|
||||||
}
|
}
|
||||||
|
settingsRoot := &treechangeproto.RawTreeChangeWithId{
|
||||||
|
Id: settingsId,
|
||||||
|
}
|
||||||
spaceHeader := &spacesyncproto.RawSpaceHeaderWithId{}
|
spaceHeader := &spacesyncproto.RawSpaceHeaderWithId{}
|
||||||
|
spaceSettingsId := "spaceSettingsId"
|
||||||
|
|
||||||
connectorMock.EXPECT().
|
connectorMock.EXPECT().
|
||||||
GetResponsiblePeers(gomock.Any(), spaceId).
|
GetResponsiblePeers(gomock.Any(), spaceId).
|
||||||
@ -140,17 +154,18 @@ func TestDiffSyncer_Sync(t *testing.T) {
|
|||||||
diffMock.EXPECT().
|
diffMock.EXPECT().
|
||||||
Diff(gomock.Any(), gomock.Eq(remotediff.NewRemoteDiff(spaceId, clientMock))).
|
Diff(gomock.Any(), gomock.Eq(remotediff.NewRemoteDiff(spaceId, clientMock))).
|
||||||
Return(nil, nil, nil, spacesyncproto.ErrSpaceMissing)
|
Return(nil, nil, nil, spacesyncproto.ErrSpaceMissing)
|
||||||
stMock.EXPECT().
|
|
||||||
ACLStorage().
|
stMock.EXPECT().ACLStorage().Return(aclStorageMock, nil)
|
||||||
Return(aclStorageMock, nil)
|
stMock.EXPECT().SpaceHeader().Return(spaceHeader, nil)
|
||||||
stMock.EXPECT().
|
stMock.EXPECT().SpaceSettingsId().Return(spaceSettingsId)
|
||||||
SpaceHeader().
|
stMock.EXPECT().TreeStorage(spaceSettingsId).Return(settingsStorage, nil)
|
||||||
Return(spaceHeader, nil)
|
|
||||||
|
settingsStorage.EXPECT().Root().Return(settingsRoot, nil)
|
||||||
aclStorageMock.EXPECT().
|
aclStorageMock.EXPECT().
|
||||||
Root().
|
Root().
|
||||||
Return(aclRoot, nil)
|
Return(aclRoot, nil)
|
||||||
clientMock.EXPECT().
|
clientMock.EXPECT().
|
||||||
PushSpace(gomock.Any(), newPushSpaceRequestMatcher(spaceId, aclRootId, spaceHeader)).
|
PushSpace(gomock.Any(), newPushSpaceRequestMatcher(spaceId, aclRootId, settingsId, spaceHeader)).
|
||||||
Return(nil, nil)
|
Return(nil, nil)
|
||||||
|
|
||||||
require.NoError(t, diffSyncer.Sync(ctx))
|
require.NoError(t, diffSyncer.Sync(ctx))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user