Add test component structure
This commit is contained in:
parent
b333d16b6f
commit
df867395ae
@ -2,29 +2,31 @@ package synctree
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/anytypeio/any-sync/commonspace/object/acl/list"
|
||||||
|
"github.com/anytypeio/any-sync/commonspace/object/acl/testutils/acllistbuilder"
|
||||||
"github.com/anytypeio/any-sync/commonspace/object/tree/objecttree"
|
"github.com/anytypeio/any-sync/commonspace/object/tree/objecttree"
|
||||||
|
"github.com/anytypeio/any-sync/commonspace/object/tree/treestorage"
|
||||||
"github.com/anytypeio/any-sync/commonspace/objectsync/synchandler"
|
"github.com/anytypeio/any-sync/commonspace/objectsync/synchandler"
|
||||||
"github.com/anytypeio/any-sync/commonspace/peermanager"
|
"github.com/anytypeio/any-sync/commonspace/peermanager"
|
||||||
"github.com/anytypeio/any-sync/commonspace/spacesyncproto"
|
"github.com/anytypeio/any-sync/commonspace/spacesyncproto"
|
||||||
"github.com/anytypeio/any-sync/commonspace/syncstatus"
|
"github.com/anytypeio/any-sync/commonspace/syncstatus"
|
||||||
"github.com/anytypeio/any-sync/net/peer"
|
"github.com/anytypeio/any-sync/net/peer"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
type mockPeerManager struct {
|
type mockPeerManager struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *mockPeerManager) SendPeer(ctx context.Context, peerId string, msg *spacesyncproto.ObjectSyncMessage) (err error) {
|
func (m *mockPeerManager) SendPeer(ctx context.Context, peerId string, msg *spacesyncproto.ObjectSyncMessage) (err error) {
|
||||||
//TODO implement me
|
|
||||||
panic("implement me")
|
panic("implement me")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *mockPeerManager) Broadcast(ctx context.Context, msg *spacesyncproto.ObjectSyncMessage) (err error) {
|
func (m *mockPeerManager) Broadcast(ctx context.Context, msg *spacesyncproto.ObjectSyncMessage) (err error) {
|
||||||
//TODO implement me
|
|
||||||
panic("implement me")
|
panic("implement me")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *mockPeerManager) GetResponsiblePeers(ctx context.Context) (peers []peer.Peer, err error) {
|
func (m *mockPeerManager) GetResponsiblePeers(ctx context.Context) (peers []peer.Peer, err error) {
|
||||||
//TODO implement me
|
|
||||||
panic("implement me")
|
panic("implement me")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,7 +45,7 @@ func (b *broadcastTree) AddRawChanges(ctx context.Context, changes objecttree.Ra
|
|||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func build(spaceId string, objTree objecttree.ObjectTree, peerManager peermanager.PeerManager) synchandler.SyncHandler {
|
func createSyncHandler(spaceId string, objTree objecttree.ObjectTree, peerManager peermanager.PeerManager) synchandler.SyncHandler {
|
||||||
factory := GetRequestFactory()
|
factory := GetRequestFactory()
|
||||||
syncClient := newSyncClient(spaceId, peerManager, factory)
|
syncClient := newSyncClient(spaceId, peerManager, factory)
|
||||||
netTree := &broadcastTree{
|
netTree := &broadcastTree{
|
||||||
@ -52,3 +54,33 @@ func build(spaceId string, objTree objecttree.ObjectTree, peerManager peermanage
|
|||||||
}
|
}
|
||||||
return newSyncTreeHandler(spaceId, netTree, syncClient, syncstatus.NewNoOpSyncStatus())
|
return newSyncTreeHandler(spaceId, netTree, syncClient, syncstatus.NewNoOpSyncStatus())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func createAclList() (list.AclList, error) {
|
||||||
|
st, err := acllistbuilder.NewListStorageWithTestName("userjoinexample.yml")
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return list.BuildAclList(st)
|
||||||
|
}
|
||||||
|
|
||||||
|
func createStorage(treeId string, aclList list.AclList) treestorage.TreeStorage {
|
||||||
|
changeCreator := objecttree.NewMockChangeCreator()
|
||||||
|
st := changeCreator.CreateNewTreeStorage(treeId, aclList.Head().Id)
|
||||||
|
return st
|
||||||
|
}
|
||||||
|
|
||||||
|
func createTestTree(aclList list.AclList, storage treestorage.TreeStorage) (objecttree.ObjectTree, error) {
|
||||||
|
return objecttree.BuildTestableTree(aclList, storage)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSyncProtocol(t *testing.T) {
|
||||||
|
aclList, err := createAclList()
|
||||||
|
require.NoError(t, err)
|
||||||
|
treeId := "treeId"
|
||||||
|
spaceId := "spaceId"
|
||||||
|
storage := createStorage(treeId, aclList)
|
||||||
|
testTree, err := createTestTree(aclList, storage)
|
||||||
|
require.NoError(t, err)
|
||||||
|
peerManager := &mockPeerManager{}
|
||||||
|
_ = createSyncHandler(spaceId, testTree, peerManager)
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user