From 036e4f85f737acb5101355e423f9afef31cd7401 Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Wed, 3 Apr 2024 14:04:36 +0200 Subject: [PATCH] testAclState --- commonspace/object/acl/list/listutils.go | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/commonspace/object/acl/list/listutils.go b/commonspace/object/acl/list/listutils.go index 77fe2084..397653c5 100644 --- a/commonspace/object/acl/list/listutils.go +++ b/commonspace/object/acl/list/listutils.go @@ -1,6 +1,8 @@ package list import ( + "fmt" + "github.com/anyproto/any-sync/commonspace/object/accountdata" "github.com/anyproto/any-sync/commonspace/object/acl/liststorage" "github.com/anyproto/any-sync/consensus/consensusproto" @@ -53,3 +55,30 @@ func NewTestAclWithRoot(keys *accountdata.AccountKeys, root *consensusproto.RawR } return BuildAclListWithIdentity(keys, st, NoOpAcceptorVerifier{}) } + +func NewTestAclStateWithUsers(numWriters, numReaders, numInvites int) *AclState { + st := &AclState{ + keys: make(map[string]AclKeys), + accountStates: make(map[string]AccountState), + inviteKeys: make(map[string]crypto.PubKey), + requestRecords: make(map[string]RequestRecord), + pendingRequests: make(map[string]string), + keyStore: crypto.NewKeyStorage(), + } + for i := 0; i < numWriters; i++ { + st.accountStates[fmt.Sprint("w", i)] = AccountState{ + Permissions: AclPermissionsWriter, + Status: StatusActive, + } + } + for i := 0; i < numReaders; i++ { + st.accountStates[fmt.Sprint("r", i)] = AccountState{ + Permissions: AclPermissionsReader, + Status: StatusActive, + } + } + for i := 0; i < numInvites; i++ { + st.inviteKeys[fmt.Sprint("r", i)] = nil + } + return st +}