minor refactoring before changes (#3638)
renaming structs so that they don't follow the interface naming conventions, updating and expanding the test suite setup for api. --- #### Does this PR need a docs update or release note? - [x] ⛔ No #### Type of change - [ ] 🧹 Tech Debt/Cleanup #### Issue(s) * #3562 #### Test Plan - [x] ⚡ Unit test - [x] 💚 E2E
This commit is contained in:
parent
4f9793a824
commit
f68fe90793
@ -2328,7 +2328,7 @@ func (suite *OneDriveCollectionsUnitSuite) TestGet() {
|
||||
},
|
||||
}
|
||||
|
||||
itemPagers := map[string]api.DriveItemEnumerator{}
|
||||
itemPagers := map[string]api.DriveItemDeltaEnumerator{}
|
||||
|
||||
for driveID := range test.items {
|
||||
itemPagers[driveID] = &mockItemPager{
|
||||
@ -2704,7 +2704,7 @@ func (suite *OneDriveCollectionsUnitSuite) TestAddURLCacheToDriveCollections() {
|
||||
ctx, flush := tester.NewContext(t)
|
||||
defer flush()
|
||||
|
||||
itemPagers := map[string]api.DriveItemEnumerator{}
|
||||
itemPagers := map[string]api.DriveItemDeltaEnumerator{}
|
||||
itemPagers[driveID] = &mockItemPager{}
|
||||
|
||||
mbh := mock.DefaultOneDriveBH()
|
||||
|
||||
@ -50,7 +50,7 @@ type BackupHandler interface {
|
||||
// ServiceCat returns the service and category used by this implementation.
|
||||
ServiceCat() (path.ServiceType, path.CategoryType)
|
||||
NewDrivePager(resourceOwner string, fields []string) api.DrivePager
|
||||
NewItemPager(driveID, link string, fields []string) api.DriveItemEnumerator
|
||||
NewItemPager(driveID, link string, fields []string) api.DriveItemDeltaEnumerator
|
||||
// FormatDisplayPath creates a human-readable string to represent the
|
||||
// provided path.
|
||||
FormatDisplayPath(driveName string, parentPath *path.Builder) string
|
||||
|
||||
@ -45,7 +45,7 @@ type itemCollector func(
|
||||
// provided `collector` method
|
||||
func collectItems(
|
||||
ctx context.Context,
|
||||
pager api.DriveItemEnumerator,
|
||||
pager api.DriveItemDeltaEnumerator,
|
||||
driveID, driveName string,
|
||||
collector itemCollector,
|
||||
oldPaths map[string]string,
|
||||
|
||||
@ -70,8 +70,8 @@ func (h itemBackupHandler) NewDrivePager(
|
||||
func (h itemBackupHandler) NewItemPager(
|
||||
driveID, link string,
|
||||
fields []string,
|
||||
) api.DriveItemEnumerator {
|
||||
return h.ac.NewItemPager(driveID, link, fields)
|
||||
) api.DriveItemDeltaEnumerator {
|
||||
return h.ac.NewDriveItemDeltaPager(driveID, link, fields)
|
||||
}
|
||||
|
||||
func (h itemBackupHandler) AugmentItemInfo(
|
||||
|
||||
@ -99,7 +99,7 @@ func (suite *ItemIntegrationSuite) TestItemReader_oneDrive() {
|
||||
|
||||
ip := suite.service.ac.
|
||||
Drives().
|
||||
NewItemPager(suite.userDriveID, "", api.DriveItemSelectDefault())
|
||||
NewDriveItemDeltaPager(suite.userDriveID, "", api.DriveItemSelectDefault())
|
||||
|
||||
_, _, _, err := collectItems(
|
||||
ctx,
|
||||
|
||||
@ -36,7 +36,7 @@ type BackupHandler struct {
|
||||
|
||||
DrivePagerV api.DrivePager
|
||||
// driveID -> itemPager
|
||||
ItemPagerV map[string]api.DriveItemEnumerator
|
||||
ItemPagerV map[string]api.DriveItemDeltaEnumerator
|
||||
|
||||
LocationIDFn locationIDer
|
||||
|
||||
@ -101,7 +101,7 @@ func (h BackupHandler) NewDrivePager(string, []string) api.DrivePager {
|
||||
return h.DrivePagerV
|
||||
}
|
||||
|
||||
func (h BackupHandler) NewItemPager(driveID string, _ string, _ []string) api.DriveItemEnumerator {
|
||||
func (h BackupHandler) NewItemPager(driveID string, _ string, _ []string) api.DriveItemDeltaEnumerator {
|
||||
return h.ItemPagerV[driveID]
|
||||
}
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@ type urlCache struct {
|
||||
refreshMu sync.Mutex
|
||||
deltaQueryCount int
|
||||
|
||||
itemPager api.DriveItemEnumerator
|
||||
itemPager api.DriveItemDeltaEnumerator
|
||||
|
||||
errs *fault.Bus
|
||||
}
|
||||
@ -56,7 +56,7 @@ type urlCache struct {
|
||||
func newURLCache(
|
||||
driveID, prevDelta string,
|
||||
refreshInterval time.Duration,
|
||||
itemPager api.DriveItemEnumerator,
|
||||
itemPager api.DriveItemDeltaEnumerator,
|
||||
errs *fault.Bus,
|
||||
) (*urlCache, error) {
|
||||
err := validateCacheParams(
|
||||
@ -83,7 +83,7 @@ func newURLCache(
|
||||
func validateCacheParams(
|
||||
driveID string,
|
||||
refreshInterval time.Duration,
|
||||
itemPager api.DriveItemEnumerator,
|
||||
itemPager api.DriveItemDeltaEnumerator,
|
||||
) error {
|
||||
if len(driveID) == 0 {
|
||||
return clues.New("drive id is empty")
|
||||
|
||||
@ -69,7 +69,7 @@ func (suite *URLCacheIntegrationSuite) TestURLCacheBasic() {
|
||||
ac = suite.ac.Drives()
|
||||
driveID = suite.driveID
|
||||
newFolderName = testdata.DefaultRestoreConfig("folder").Location
|
||||
driveItemPager = suite.ac.Drives().NewItemPager(driveID, "", api.DriveItemSelectDefault())
|
||||
driveItemPager = suite.ac.Drives().NewDriveItemDeltaPager(driveID, "", api.DriveItemSelectDefault())
|
||||
)
|
||||
|
||||
ctx, flush := tester.NewContext(t)
|
||||
@ -108,7 +108,7 @@ func (suite *URLCacheIntegrationSuite) TestURLCacheBasic() {
|
||||
// Get the previous delta to feed into url cache
|
||||
prevDelta, _, _, err := collectItems(
|
||||
ctx,
|
||||
suite.ac.Drives().NewItemPager(driveID, "", api.DriveItemSelectDefault()),
|
||||
suite.ac.Drives().NewDriveItemDeltaPager(driveID, "", api.DriveItemSelectDefault()),
|
||||
suite.driveID,
|
||||
"drive-name",
|
||||
collectorFunc,
|
||||
@ -506,7 +506,7 @@ func (suite *URLCacheUnitSuite) TestNewURLCache() {
|
||||
name string
|
||||
driveID string
|
||||
refreshInt time.Duration
|
||||
itemPager api.DriveItemEnumerator
|
||||
itemPager api.DriveItemDeltaEnumerator
|
||||
errors *fault.Bus
|
||||
expectedErr require.ErrorAssertionFunc
|
||||
}{
|
||||
|
||||
@ -68,8 +68,8 @@ func (h libraryBackupHandler) NewDrivePager(
|
||||
func (h libraryBackupHandler) NewItemPager(
|
||||
driveID, link string,
|
||||
fields []string,
|
||||
) api.DriveItemEnumerator {
|
||||
return h.ac.NewItemPager(driveID, link, fields)
|
||||
) api.DriveItemDeltaEnumerator {
|
||||
return h.ac.NewDriveItemDeltaPager(driveID, link, fields)
|
||||
}
|
||||
|
||||
func (h libraryBackupHandler) AugmentItemInfo(
|
||||
|
||||
@ -105,7 +105,7 @@ func (c Contacts) NewContactsPager(
|
||||
options := &users.ItemContactFoldersItemContactsRequestBuilderGetRequestConfiguration{
|
||||
Headers: newPreferHeaders(preferPageSize(maxNonDeltaPageSize)),
|
||||
QueryParameters: &users.ItemContactFoldersItemContactsRequestBuilderGetQueryParameters{
|
||||
Top: ptr.To[int32](maxNonDeltaPageSize),
|
||||
Top: ptr.To(maxNonDeltaPageSize),
|
||||
},
|
||||
}
|
||||
|
||||
@ -181,7 +181,7 @@ func (c Contacts) NewContactIDsPager(
|
||||
config := &users.ItemContactFoldersItemContactsRequestBuilderGetRequestConfiguration{
|
||||
QueryParameters: &users.ItemContactFoldersItemContactsRequestBuilderGetQueryParameters{
|
||||
Select: idAnd(parentFolderID),
|
||||
Top: ptr.To[int32](maxNonDeltaPageSize),
|
||||
Top: ptr.To(maxNonDeltaPageSize),
|
||||
},
|
||||
Headers: newPreferHeaders(preferPageSize(maxNonDeltaPageSize), preferImmutableIDs(immutableIDs)),
|
||||
}
|
||||
|
||||
@ -15,7 +15,7 @@ import (
|
||||
|
||||
type ContactsPagerIntgSuite struct {
|
||||
tester.Suite
|
||||
cts clientTesterSetup
|
||||
its intgTesterSetup
|
||||
}
|
||||
|
||||
func TestContactsPagerIntgSuite(t *testing.T) {
|
||||
@ -27,23 +27,23 @@ func TestContactsPagerIntgSuite(t *testing.T) {
|
||||
}
|
||||
|
||||
func (suite *ContactsPagerIntgSuite) SetupSuite() {
|
||||
suite.cts = newClientTesterSetup(suite.T())
|
||||
suite.its = newIntegrationTesterSetup(suite.T())
|
||||
}
|
||||
|
||||
func (suite *ContactsPagerIntgSuite) TestGetItemsInContainerByCollisionKey() {
|
||||
t := suite.T()
|
||||
ac := suite.cts.ac.Contacts()
|
||||
ac := suite.its.ac.Contacts()
|
||||
|
||||
ctx, flush := tester.NewContext(t)
|
||||
defer flush()
|
||||
|
||||
container, err := ac.GetContainerByID(ctx, suite.cts.userID, "contacts")
|
||||
container, err := ac.GetContainerByID(ctx, suite.its.userID, "contacts")
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
conts, err := ac.Stable.
|
||||
Client().
|
||||
Users().
|
||||
ByUserId(suite.cts.userID).
|
||||
ByUserId(suite.its.userID).
|
||||
ContactFolders().
|
||||
ByContactFolderId(ptr.Val(container.GetId())).
|
||||
Contacts().
|
||||
@ -57,7 +57,7 @@ func (suite *ContactsPagerIntgSuite) TestGetItemsInContainerByCollisionKey() {
|
||||
expect = append(expect, api.ContactCollisionKey(c))
|
||||
}
|
||||
|
||||
results, err := ac.GetItemsInContainerByCollisionKey(ctx, suite.cts.userID, "contacts")
|
||||
results, err := suite.its.ac.Contacts().GetItemsInContainerByCollisionKey(ctx, suite.its.userID, "contacts")
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
require.Less(t, 0, len(results), "requires at least one result")
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ import (
|
||||
"github.com/microsoftgraph/msgraph-sdk-go/drives"
|
||||
"github.com/microsoftgraph/msgraph-sdk-go/models"
|
||||
|
||||
"github.com/alcionai/corso/src/internal/common/ptr"
|
||||
"github.com/alcionai/corso/src/internal/m365/graph"
|
||||
"github.com/alcionai/corso/src/pkg/control"
|
||||
)
|
||||
@ -305,3 +306,13 @@ func (c Drives) DeleteItemPermission(
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// DriveItemCollisionKeyy constructs a key from the item name.
|
||||
// collision keys are used to identify duplicate item conflicts for handling advanced restoration config.
|
||||
func DriveItemCollisionKey(item models.DriveItemable) string {
|
||||
if item == nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
return ptr.Val(item.GetName())
|
||||
}
|
||||
|
||||
@ -18,29 +18,29 @@ import (
|
||||
)
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// item pager
|
||||
// delta item pager
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
type DriveItemEnumerator interface {
|
||||
type DriveItemDeltaEnumerator interface {
|
||||
GetPage(context.Context) (DeltaPageLinker, error)
|
||||
SetNext(nextLink string)
|
||||
Reset()
|
||||
ValuesIn(DeltaPageLinker) ([]models.DriveItemable, error)
|
||||
}
|
||||
|
||||
var _ DriveItemEnumerator = &DriveItemPager{}
|
||||
var _ DriveItemDeltaEnumerator = &DriveItemDeltaPageCtrl{}
|
||||
|
||||
type DriveItemPager struct {
|
||||
type DriveItemDeltaPageCtrl struct {
|
||||
gs graph.Servicer
|
||||
driveID string
|
||||
builder *drives.ItemItemsItemDeltaRequestBuilder
|
||||
options *drives.ItemItemsItemDeltaRequestBuilderGetRequestConfiguration
|
||||
}
|
||||
|
||||
func (c Drives) NewItemPager(
|
||||
func (c Drives) NewDriveItemDeltaPager(
|
||||
driveID, link string,
|
||||
selectFields []string,
|
||||
) *DriveItemPager {
|
||||
) *DriveItemDeltaPageCtrl {
|
||||
preferHeaderItems := []string{
|
||||
"deltashowremovedasdeleted",
|
||||
"deltatraversepermissiongaps",
|
||||
@ -56,7 +56,7 @@ func (c Drives) NewItemPager(
|
||||
},
|
||||
}
|
||||
|
||||
res := &DriveItemPager{
|
||||
res := &DriveItemDeltaPageCtrl{
|
||||
gs: c.Stable,
|
||||
driveID: driveID,
|
||||
options: requestConfig,
|
||||
@ -64,7 +64,9 @@ func (c Drives) NewItemPager(
|
||||
Client().
|
||||
Drives().
|
||||
ByDriveId(driveID).
|
||||
Items().ByDriveItemId(onedrive.RootID).Delta(),
|
||||
Items().
|
||||
ByDriveItemId(onedrive.RootID).
|
||||
Delta(),
|
||||
}
|
||||
|
||||
if len(link) > 0 {
|
||||
@ -74,7 +76,7 @@ func (c Drives) NewItemPager(
|
||||
return res
|
||||
}
|
||||
|
||||
func (p *DriveItemPager) GetPage(ctx context.Context) (DeltaPageLinker, error) {
|
||||
func (p *DriveItemDeltaPageCtrl) GetPage(ctx context.Context) (DeltaPageLinker, error) {
|
||||
var (
|
||||
resp DeltaPageLinker
|
||||
err error
|
||||
@ -88,11 +90,11 @@ func (p *DriveItemPager) GetPage(ctx context.Context) (DeltaPageLinker, error) {
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (p *DriveItemPager) SetNext(link string) {
|
||||
func (p *DriveItemDeltaPageCtrl) SetNext(link string) {
|
||||
p.builder = drives.NewItemItemsItemDeltaRequestBuilder(link, p.gs.Adapter())
|
||||
}
|
||||
|
||||
func (p *DriveItemPager) Reset() {
|
||||
func (p *DriveItemDeltaPageCtrl) Reset() {
|
||||
p.builder = p.gs.Client().
|
||||
Drives().
|
||||
ByDriveId(p.driveID).
|
||||
@ -101,12 +103,12 @@ func (p *DriveItemPager) Reset() {
|
||||
Delta()
|
||||
}
|
||||
|
||||
func (p *DriveItemPager) ValuesIn(l DeltaPageLinker) ([]models.DriveItemable, error) {
|
||||
func (p *DriveItemDeltaPageCtrl) ValuesIn(l DeltaPageLinker) ([]models.DriveItemable, error) {
|
||||
return getValues[models.DriveItemable](l)
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// user pager
|
||||
// user's drives pager
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
var _ DrivePager = &userDrivePager{}
|
||||
@ -196,7 +198,7 @@ func (p *userDrivePager) ValuesIn(l PageLinker) ([]models.Driveable, error) {
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// site pager
|
||||
// site's libraries pager
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
var _ DrivePager = &siteDrivePager{}
|
||||
|
||||
@ -12,44 +12,17 @@ import (
|
||||
"github.com/alcionai/corso/src/internal/common/ptr"
|
||||
"github.com/alcionai/corso/src/internal/m365/graph"
|
||||
"github.com/alcionai/corso/src/internal/tester"
|
||||
"github.com/alcionai/corso/src/pkg/account"
|
||||
"github.com/alcionai/corso/src/pkg/control"
|
||||
"github.com/alcionai/corso/src/pkg/control/testdata"
|
||||
"github.com/alcionai/corso/src/pkg/services/m365/api"
|
||||
)
|
||||
|
||||
type DriveAPISuite struct {
|
||||
tester.Suite
|
||||
creds account.M365Config
|
||||
ac api.Client
|
||||
driveID string
|
||||
rootFolderID string
|
||||
its intgTesterSetup
|
||||
}
|
||||
|
||||
func (suite *DriveAPISuite) SetupSuite() {
|
||||
t := suite.T()
|
||||
|
||||
ctx, flush := tester.NewContext(t)
|
||||
defer flush()
|
||||
|
||||
userID := tester.M365UserID(t)
|
||||
a := tester.NewM365Account(t)
|
||||
creds, err := a.M365Config()
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
suite.creds = creds
|
||||
suite.ac, err = api.NewClient(creds)
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
drive, err := suite.ac.Users().GetDefaultDrive(ctx, userID)
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
suite.driveID = ptr.Val(drive.GetId())
|
||||
|
||||
rootFolder, err := suite.ac.Drives().GetRootFolder(ctx, suite.driveID)
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
suite.rootFolderID = ptr.Val(rootFolder.GetId())
|
||||
suite.its = newIntegrationTesterSetup(suite.T())
|
||||
}
|
||||
|
||||
func TestDriveAPIs(t *testing.T) {
|
||||
@ -67,7 +40,7 @@ func (suite *DriveAPISuite) TestDrives_CreatePagerAndGetPage() {
|
||||
defer flush()
|
||||
|
||||
siteID := tester.M365SiteID(t)
|
||||
pager := suite.ac.Drives().NewSiteDrivePager(siteID, []string{"name"})
|
||||
pager := suite.its.ac.Drives().NewSiteDrivePager(siteID, []string{"name"})
|
||||
|
||||
a, err := pager.GetPage(ctx)
|
||||
assert.NoError(t, err, clues.ToCore(err))
|
||||
@ -95,21 +68,22 @@ func (suite *DriveAPISuite) TestDrives_PostItemInContainer() {
|
||||
defer flush()
|
||||
|
||||
rc := testdata.DefaultRestoreConfig("drive_api_post_item")
|
||||
acd := suite.its.ac.Drives()
|
||||
|
||||
// generate a parent for the test data
|
||||
parent, err := suite.ac.Drives().PostItemInContainer(
|
||||
parent, err := acd.PostItemInContainer(
|
||||
ctx,
|
||||
suite.driveID,
|
||||
suite.rootFolderID,
|
||||
suite.its.userDriveID,
|
||||
suite.its.userDriveRootFolderID,
|
||||
newItem(rc.Location, true),
|
||||
control.Replace)
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
// generate a folder to use for collision testing
|
||||
folder := newItem("collision", true)
|
||||
origFolder, err := suite.ac.Drives().PostItemInContainer(
|
||||
origFolder, err := acd.PostItemInContainer(
|
||||
ctx,
|
||||
suite.driveID,
|
||||
suite.its.userDriveID,
|
||||
ptr.Val(parent.GetId()),
|
||||
folder,
|
||||
control.Copy)
|
||||
@ -117,9 +91,9 @@ func (suite *DriveAPISuite) TestDrives_PostItemInContainer() {
|
||||
|
||||
// generate an item to use for collision testing
|
||||
file := newItem("collision.txt", false)
|
||||
origFile, err := suite.ac.Drives().PostItemInContainer(
|
||||
origFile, err := acd.PostItemInContainer(
|
||||
ctx,
|
||||
suite.driveID,
|
||||
suite.its.userDriveID,
|
||||
ptr.Val(parent.GetId()),
|
||||
file,
|
||||
control.Copy)
|
||||
@ -232,9 +206,9 @@ func (suite *DriveAPISuite) TestDrives_PostItemInContainer() {
|
||||
for _, test := range table {
|
||||
suite.Run(test.name, func() {
|
||||
t := suite.T()
|
||||
i, err := suite.ac.Drives().PostItemInContainer(
|
||||
i, err := acd.PostItemInContainer(
|
||||
ctx,
|
||||
suite.driveID,
|
||||
suite.its.userDriveID,
|
||||
ptr.Val(parent.GetId()),
|
||||
test.postItem,
|
||||
test.onCollision)
|
||||
|
||||
@ -113,7 +113,7 @@ func (c Events) NewEventsPager(
|
||||
options := &users.ItemCalendarsItemEventsRequestBuilderGetRequestConfiguration{
|
||||
Headers: newPreferHeaders(preferPageSize(maxNonDeltaPageSize)),
|
||||
QueryParameters: &users.ItemCalendarsItemEventsRequestBuilderGetQueryParameters{
|
||||
Top: ptr.To[int32](maxNonDeltaPageSize),
|
||||
Top: ptr.To(maxNonDeltaPageSize),
|
||||
},
|
||||
}
|
||||
|
||||
@ -189,7 +189,7 @@ func (c Events) NewEventIDsPager(
|
||||
options := &users.ItemCalendarsItemEventsRequestBuilderGetRequestConfiguration{
|
||||
Headers: newPreferHeaders(preferPageSize(maxNonDeltaPageSize), preferImmutableIDs(immutableIDs)),
|
||||
QueryParameters: &users.ItemCalendarsItemEventsRequestBuilderGetQueryParameters{
|
||||
Top: ptr.To[int32](maxNonDeltaPageSize),
|
||||
Top: ptr.To(maxNonDeltaPageSize),
|
||||
},
|
||||
}
|
||||
|
||||
@ -246,7 +246,7 @@ func (c Events) NewEventDeltaIDsPager(
|
||||
options := &users.ItemCalendarsItemEventsDeltaRequestBuilderGetRequestConfiguration{
|
||||
Headers: newPreferHeaders(preferPageSize(maxDeltaPageSize), preferImmutableIDs(immutableIDs)),
|
||||
QueryParameters: &users.ItemCalendarsItemEventsDeltaRequestBuilderGetQueryParameters{
|
||||
Top: ptr.To[int32](maxDeltaPageSize),
|
||||
Top: ptr.To(maxDeltaPageSize),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ import (
|
||||
|
||||
type EventsPagerIntgSuite struct {
|
||||
tester.Suite
|
||||
cts clientTesterSetup
|
||||
its intgTesterSetup
|
||||
}
|
||||
|
||||
func TestEventsPagerIntgSuite(t *testing.T) {
|
||||
@ -27,23 +27,23 @@ func TestEventsPagerIntgSuite(t *testing.T) {
|
||||
}
|
||||
|
||||
func (suite *EventsPagerIntgSuite) SetupSuite() {
|
||||
suite.cts = newClientTesterSetup(suite.T())
|
||||
suite.its = newIntegrationTesterSetup(suite.T())
|
||||
}
|
||||
|
||||
func (suite *EventsPagerIntgSuite) TestGetItemsInContainerByCollisionKey() {
|
||||
t := suite.T()
|
||||
ac := suite.cts.ac.Events()
|
||||
ac := suite.its.ac.Events()
|
||||
|
||||
ctx, flush := tester.NewContext(t)
|
||||
defer flush()
|
||||
|
||||
container, err := ac.GetContainerByID(ctx, suite.cts.userID, "calendar")
|
||||
container, err := ac.GetContainerByID(ctx, suite.its.userID, "calendar")
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
evts, err := ac.Stable.
|
||||
Client().
|
||||
Users().
|
||||
ByUserId(suite.cts.userID).
|
||||
ByUserId(suite.its.userID).
|
||||
Calendars().
|
||||
ByCalendarId(ptr.Val(container.GetId())).
|
||||
Events().
|
||||
@ -57,7 +57,7 @@ func (suite *EventsPagerIntgSuite) TestGetItemsInContainerByCollisionKey() {
|
||||
expect = append(expect, api.EventCollisionKey(e))
|
||||
}
|
||||
|
||||
results, err := ac.GetItemsInContainerByCollisionKey(ctx, suite.cts.userID, "calendar")
|
||||
results, err := suite.its.ac.Events().GetItemsInContainerByCollisionKey(ctx, suite.its.userID, "calendar")
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
require.Less(t, 0, len(results), "requires at least one result")
|
||||
|
||||
|
||||
@ -6,17 +6,23 @@ import (
|
||||
"github.com/alcionai/clues"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/alcionai/corso/src/internal/common/ptr"
|
||||
"github.com/alcionai/corso/src/internal/tester"
|
||||
"github.com/alcionai/corso/src/pkg/services/m365/api"
|
||||
)
|
||||
|
||||
type clientTesterSetup struct {
|
||||
ac api.Client
|
||||
userID string
|
||||
type intgTesterSetup struct {
|
||||
ac api.Client
|
||||
userID string
|
||||
userDriveID string
|
||||
userDriveRootFolderID string
|
||||
siteID string
|
||||
siteDriveID string
|
||||
siteDriveRootFolderID string
|
||||
}
|
||||
|
||||
func newClientTesterSetup(t *testing.T) clientTesterSetup {
|
||||
cts := clientTesterSetup{}
|
||||
func newIntegrationTesterSetup(t *testing.T) intgTesterSetup {
|
||||
its := intgTesterSetup{}
|
||||
|
||||
ctx, flush := tester.NewContext(t)
|
||||
defer flush()
|
||||
@ -25,10 +31,32 @@ func newClientTesterSetup(t *testing.T) clientTesterSetup {
|
||||
creds, err := a.M365Config()
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
cts.ac, err = api.NewClient(creds)
|
||||
its.ac, err = api.NewClient(creds)
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
cts.userID = tester.GetM365UserID(ctx)
|
||||
its.userID = tester.M365UserID(t)
|
||||
|
||||
return cts
|
||||
userDrive, err := its.ac.Users().GetDefaultDrive(ctx, its.userID)
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
its.userDriveID = ptr.Val(userDrive.GetId())
|
||||
|
||||
userDriveRootFolder, err := its.ac.Drives().GetRootFolder(ctx, its.userDriveID)
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
its.userDriveRootFolderID = ptr.Val(userDriveRootFolder.GetId())
|
||||
|
||||
its.siteID = tester.M365SiteID(t)
|
||||
|
||||
siteDrive, err := its.ac.Sites().GetDefaultDrive(ctx, its.siteID)
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
its.siteDriveID = ptr.Val(siteDrive.GetId())
|
||||
|
||||
siteDriveRootFolder, err := its.ac.Drives().GetRootFolder(ctx, its.siteDriveID)
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
its.siteDriveRootFolderID = ptr.Val(siteDriveRootFolder.GetId())
|
||||
|
||||
return its
|
||||
}
|
||||
|
||||
@ -136,7 +136,7 @@ func (c Mail) NewMailPager(
|
||||
options := &users.ItemMailFoldersItemMessagesRequestBuilderGetRequestConfiguration{
|
||||
Headers: newPreferHeaders(preferPageSize(maxNonDeltaPageSize)),
|
||||
QueryParameters: &users.ItemMailFoldersItemMessagesRequestBuilderGetQueryParameters{
|
||||
Top: ptr.To[int32](maxNonDeltaPageSize),
|
||||
Top: ptr.To(maxNonDeltaPageSize),
|
||||
},
|
||||
}
|
||||
|
||||
@ -190,7 +190,7 @@ func (c Mail) NewMailIDsPager(
|
||||
config := &users.ItemMailFoldersItemMessagesRequestBuilderGetRequestConfiguration{
|
||||
QueryParameters: &users.ItemMailFoldersItemMessagesRequestBuilderGetQueryParameters{
|
||||
Select: idAnd("isRead"),
|
||||
Top: ptr.To[int32](maxNonDeltaPageSize),
|
||||
Top: ptr.To(maxNonDeltaPageSize),
|
||||
},
|
||||
Headers: newPreferHeaders(preferPageSize(maxNonDeltaPageSize), preferImmutableIDs(immutableIDs)),
|
||||
}
|
||||
@ -287,7 +287,7 @@ func (c Mail) NewMailDeltaIDsPager(
|
||||
config := &users.ItemMailFoldersItemMessagesDeltaRequestBuilderGetRequestConfiguration{
|
||||
QueryParameters: &users.ItemMailFoldersItemMessagesDeltaRequestBuilderGetQueryParameters{
|
||||
Select: idAnd("isRead"),
|
||||
Top: ptr.To[int32](maxDeltaPageSize),
|
||||
Top: ptr.To(maxDeltaPageSize),
|
||||
},
|
||||
Headers: newPreferHeaders(preferPageSize(maxDeltaPageSize), preferImmutableIDs(immutableIDs)),
|
||||
}
|
||||
|
||||
@ -15,7 +15,7 @@ import (
|
||||
|
||||
type MailPagerIntgSuite struct {
|
||||
tester.Suite
|
||||
cts clientTesterSetup
|
||||
its intgTesterSetup
|
||||
}
|
||||
|
||||
func TestMailPagerIntgSuite(t *testing.T) {
|
||||
@ -27,23 +27,23 @@ func TestMailPagerIntgSuite(t *testing.T) {
|
||||
}
|
||||
|
||||
func (suite *MailPagerIntgSuite) SetupSuite() {
|
||||
suite.cts = newClientTesterSetup(suite.T())
|
||||
suite.its = newIntegrationTesterSetup(suite.T())
|
||||
}
|
||||
|
||||
func (suite *MailPagerIntgSuite) TestGetItemsInContainerByCollisionKey() {
|
||||
t := suite.T()
|
||||
ac := suite.cts.ac.Mail()
|
||||
ac := suite.its.ac.Mail()
|
||||
|
||||
ctx, flush := tester.NewContext(t)
|
||||
defer flush()
|
||||
|
||||
container, err := ac.GetContainerByID(ctx, suite.cts.userID, "inbox")
|
||||
container, err := ac.GetContainerByID(ctx, suite.its.userID, "inbox")
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
|
||||
msgs, err := ac.Stable.
|
||||
Client().
|
||||
Users().
|
||||
ByUserId(suite.cts.userID).
|
||||
ByUserId(suite.its.userID).
|
||||
MailFolders().
|
||||
ByMailFolderId(ptr.Val(container.GetId())).
|
||||
Messages().
|
||||
@ -57,7 +57,7 @@ func (suite *MailPagerIntgSuite) TestGetItemsInContainerByCollisionKey() {
|
||||
expect = append(expect, api.MailCollisionKey(m))
|
||||
}
|
||||
|
||||
results, err := ac.GetItemsInContainerByCollisionKey(ctx, suite.cts.userID, "inbox")
|
||||
results, err := suite.its.ac.Mail().GetItemsInContainerByCollisionKey(ctx, suite.its.userID, "inbox")
|
||||
require.NoError(t, err, clues.ToCore(err))
|
||||
require.Less(t, 0, len(results), "requires at least one result")
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user