Add test component structure

This commit is contained in:
mcrakhman 2023-03-13 22:03:38 +01:00 committed by Mikhail Iudin
parent b333d16b6f
commit df867395ae
No known key found for this signature in database
GPG Key ID: FAAAA8BAABDFF1C0

View File

@ -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)
}