Add tests for older versions of backup details data (#3454)
Add tests for older backup details versions including things like: * SharePoint using OneDriveItem type * not having LocationRef * not having ItemRef * folder names in RepoRef * file names in RepoRef Recommend viewing with ignore whitespace changes --- #### Does this PR need a docs update or release note? - [ ] ✅ Yes, it's included - [ ] 🕐 Yes, but in a later PR - [x] ⛔ No #### Type of change - [ ] 🌻 Feature - [ ] 🐛 Bugfix - [ ] 🗺️ Documentation - [x] 🤖 Supportability/Tests - [ ] 💻 CI/Deployment - [ ] 🧹 Tech Debt/Cleanup #### Issue(s) * #3269 #### Test Plan - [ ] 💪 Manual - [x] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
a3f4d74944
commit
f28c6e53d4
@ -1,6 +1,7 @@
|
||||
package backup
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/alcionai/clues"
|
||||
@ -13,6 +14,8 @@ import (
|
||||
"github.com/alcionai/corso/src/cli/utils"
|
||||
"github.com/alcionai/corso/src/cli/utils/testdata"
|
||||
"github.com/alcionai/corso/src/internal/tester"
|
||||
"github.com/alcionai/corso/src/internal/version"
|
||||
dtd "github.com/alcionai/corso/src/pkg/backup/details/testdata"
|
||||
)
|
||||
|
||||
type ExchangeUnitSuite struct {
|
||||
@ -275,18 +278,26 @@ func (suite *ExchangeUnitSuite) TestExchangeBackupDetailsSelectors() {
|
||||
ctx, flush := tester.NewContext()
|
||||
defer flush()
|
||||
|
||||
for _, test := range testdata.ExchangeOptionDetailLookups {
|
||||
suite.Run(test.Name, func() {
|
||||
t := suite.T()
|
||||
for v := 0; v <= version.Backup; v++ {
|
||||
suite.Run(fmt.Sprintf("version%d", v), func() {
|
||||
for _, test := range testdata.ExchangeOptionDetailLookups {
|
||||
suite.Run(test.Name, func() {
|
||||
t := suite.T()
|
||||
|
||||
output, err := runDetailsExchangeCmd(
|
||||
ctx,
|
||||
test.BackupGetter,
|
||||
"backup-ID",
|
||||
test.Opts,
|
||||
false)
|
||||
assert.NoError(t, err, clues.ToCore(err))
|
||||
assert.ElementsMatch(t, test.Expected, output.Entries)
|
||||
bg := testdata.VersionedBackupGetter{
|
||||
Details: dtd.GetDetailsSetForVersion(t, v),
|
||||
}
|
||||
|
||||
output, err := runDetailsExchangeCmd(
|
||||
ctx,
|
||||
bg,
|
||||
"backup-ID",
|
||||
test.Opts(t, v),
|
||||
false)
|
||||
assert.NoError(t, err, clues.ToCore(err))
|
||||
assert.ElementsMatch(t, test.Expected(t, v), output.Entries)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -303,7 +314,7 @@ func (suite *ExchangeUnitSuite) TestExchangeBackupDetailsSelectorsBadFormats() {
|
||||
ctx,
|
||||
test.BackupGetter,
|
||||
"backup-ID",
|
||||
test.Opts,
|
||||
test.Opts(t, version.Backup),
|
||||
false)
|
||||
assert.Error(t, err, clues.ToCore(err))
|
||||
assert.Empty(t, output)
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package backup
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/alcionai/clues"
|
||||
@ -13,6 +14,8 @@ import (
|
||||
"github.com/alcionai/corso/src/cli/utils"
|
||||
"github.com/alcionai/corso/src/cli/utils/testdata"
|
||||
"github.com/alcionai/corso/src/internal/tester"
|
||||
"github.com/alcionai/corso/src/internal/version"
|
||||
dtd "github.com/alcionai/corso/src/pkg/backup/details/testdata"
|
||||
)
|
||||
|
||||
type OneDriveUnitSuite struct {
|
||||
@ -137,18 +140,26 @@ func (suite *OneDriveUnitSuite) TestOneDriveBackupDetailsSelectors() {
|
||||
ctx, flush := tester.NewContext()
|
||||
defer flush()
|
||||
|
||||
for _, test := range testdata.OneDriveOptionDetailLookups {
|
||||
suite.Run(test.Name, func() {
|
||||
t := suite.T()
|
||||
for v := 0; v <= version.Backup; v++ {
|
||||
suite.Run(fmt.Sprintf("version%d", v), func() {
|
||||
for _, test := range testdata.OneDriveOptionDetailLookups {
|
||||
suite.Run(test.Name, func() {
|
||||
t := suite.T()
|
||||
|
||||
output, err := runDetailsOneDriveCmd(
|
||||
ctx,
|
||||
test.BackupGetter,
|
||||
"backup-ID",
|
||||
test.Opts,
|
||||
false)
|
||||
assert.NoError(t, err, clues.ToCore(err))
|
||||
assert.ElementsMatch(t, test.Expected, output.Entries)
|
||||
bg := testdata.VersionedBackupGetter{
|
||||
Details: dtd.GetDetailsSetForVersion(t, v),
|
||||
}
|
||||
|
||||
output, err := runDetailsOneDriveCmd(
|
||||
ctx,
|
||||
bg,
|
||||
"backup-ID",
|
||||
test.Opts(t, v),
|
||||
false)
|
||||
assert.NoError(t, err, clues.ToCore(err))
|
||||
assert.ElementsMatch(t, test.Expected(t, v), output.Entries)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -165,7 +176,7 @@ func (suite *OneDriveUnitSuite) TestOneDriveBackupDetailsSelectorsBadFormats() {
|
||||
ctx,
|
||||
test.BackupGetter,
|
||||
"backup-ID",
|
||||
test.Opts,
|
||||
test.Opts(t, version.Backup),
|
||||
false)
|
||||
assert.Error(t, err, clues.ToCore(err))
|
||||
assert.Empty(t, output)
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package backup
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/alcionai/clues"
|
||||
@ -14,6 +15,8 @@ import (
|
||||
"github.com/alcionai/corso/src/cli/utils/testdata"
|
||||
"github.com/alcionai/corso/src/internal/common/idname"
|
||||
"github.com/alcionai/corso/src/internal/tester"
|
||||
"github.com/alcionai/corso/src/internal/version"
|
||||
dtd "github.com/alcionai/corso/src/pkg/backup/details/testdata"
|
||||
"github.com/alcionai/corso/src/pkg/selectors"
|
||||
)
|
||||
|
||||
@ -256,18 +259,26 @@ func (suite *SharePointUnitSuite) TestSharePointBackupDetailsSelectors() {
|
||||
ctx, flush := tester.NewContext()
|
||||
defer flush()
|
||||
|
||||
for _, test := range testdata.SharePointOptionDetailLookups {
|
||||
suite.Run(test.Name, func() {
|
||||
t := suite.T()
|
||||
for v := 0; v <= version.Backup; v++ {
|
||||
suite.Run(fmt.Sprintf("version%d", v), func() {
|
||||
for _, test := range testdata.SharePointOptionDetailLookups {
|
||||
suite.Run(test.Name, func() {
|
||||
t := suite.T()
|
||||
|
||||
output, err := runDetailsSharePointCmd(
|
||||
ctx,
|
||||
test.BackupGetter,
|
||||
"backup-ID",
|
||||
test.Opts,
|
||||
false)
|
||||
assert.NoError(t, err, clues.ToCore(err))
|
||||
assert.ElementsMatch(t, test.Expected, output.Entries)
|
||||
bg := testdata.VersionedBackupGetter{
|
||||
Details: dtd.GetDetailsSetForVersion(t, v),
|
||||
}
|
||||
|
||||
output, err := runDetailsSharePointCmd(
|
||||
ctx,
|
||||
bg,
|
||||
"backup-ID",
|
||||
test.Opts(t, v),
|
||||
false)
|
||||
assert.NoError(t, err, clues.ToCore(err))
|
||||
assert.ElementsMatch(t, test.Expected(t, v), output.Entries)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -284,7 +295,7 @@ func (suite *SharePointUnitSuite) TestSharePointBackupDetailsSelectorsBadFormats
|
||||
ctx,
|
||||
test.BackupGetter,
|
||||
"backup-ID",
|
||||
test.Opts,
|
||||
test.Opts(t, version.Backup),
|
||||
false)
|
||||
assert.Error(t, err, clues.ToCore(err))
|
||||
assert.Empty(t, output)
|
||||
|
||||
1022
src/cli/utils/testdata/opts.go
vendored
1022
src/cli/utils/testdata/opts.go
vendored
File diff suppressed because it is too large
Load Diff
1030
src/pkg/backup/details/testdata/testdata.go
vendored
1030
src/pkg/backup/details/testdata/testdata.go
vendored
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,7 @@
|
||||
package selectors_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@ -9,9 +10,11 @@ import (
|
||||
|
||||
"github.com/alcionai/corso/src/internal/common/dttm"
|
||||
"github.com/alcionai/corso/src/internal/tester"
|
||||
"github.com/alcionai/corso/src/internal/version"
|
||||
"github.com/alcionai/corso/src/pkg/backup/details"
|
||||
"github.com/alcionai/corso/src/pkg/backup/details/testdata"
|
||||
"github.com/alcionai/corso/src/pkg/fault"
|
||||
"github.com/alcionai/corso/src/pkg/path"
|
||||
"github.com/alcionai/corso/src/pkg/selectors"
|
||||
)
|
||||
|
||||
@ -27,25 +30,31 @@ func (suite *SelectorReduceSuite) TestReduce() {
|
||||
ctx, flush := tester.NewContext()
|
||||
defer flush()
|
||||
|
||||
allDetails := testdata.GetDetailsSet()
|
||||
table := []struct {
|
||||
name string
|
||||
selFunc func() selectors.Reducer
|
||||
expected []details.Entry
|
||||
selFunc func(t *testing.T, wantVersion int) selectors.Reducer
|
||||
expected func(t *testing.T, wantVersion int) []details.Entry
|
||||
}{
|
||||
{
|
||||
name: "ExchangeAllMail",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.Mails(selectors.Any(), selectors.Any()))
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: testdata.ExchangeEmailItems,
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
-1)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeMailFolderPrefixMatch",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.MailFolders(
|
||||
[]string{testdata.ExchangeEmailInboxPath.FolderLocation()},
|
||||
@ -53,48 +62,79 @@ func (suite *SelectorReduceSuite) TestReduce() {
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: testdata.ExchangeEmailItems,
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
-1)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeMailSubject",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Filter(sel.MailSubject("foo"))
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{testdata.ExchangeEmailItems[0]},
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
0)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeMailSubjectExcludeItem",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
deets := testdata.GetDeetsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion)
|
||||
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Filter(sel.MailSender("a-person"))
|
||||
sel.Exclude(sel.Mails(
|
||||
selectors.Any(),
|
||||
[]string{testdata.ExchangeEmailItemPath2.RR.ShortRef()},
|
||||
[]string{deets[1].ShortRef},
|
||||
))
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{testdata.ExchangeEmailItems[0]},
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
0)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeMailSender",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Filter(sel.MailSender("a-person"))
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{
|
||||
testdata.ExchangeEmailItems[0],
|
||||
testdata.ExchangeEmailItems[1],
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
0, 1)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeMailReceivedTime",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Filter(sel.MailReceivedBefore(
|
||||
dttm.Format(testdata.Time1.Add(time.Second)),
|
||||
@ -102,11 +142,18 @@ func (suite *SelectorReduceSuite) TestReduce() {
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{testdata.ExchangeEmailItems[0]},
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
0)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeMailID",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.Mails(
|
||||
selectors.Any(),
|
||||
@ -115,24 +162,44 @@ func (suite *SelectorReduceSuite) TestReduce() {
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{testdata.ExchangeEmailItems[0]},
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
0)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeMailShortRef",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
deets := testdata.GetDeetsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion)
|
||||
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.Mails(
|
||||
selectors.Any(),
|
||||
[]string{testdata.ExchangeEmailItemPath1.RR.ShortRef()},
|
||||
[]string{deets[0].ShortRef},
|
||||
))
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{testdata.ExchangeEmailItems[0]},
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
0)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeAllEventsAndMailWithSubject",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.Events(
|
||||
selectors.Any(),
|
||||
@ -142,39 +209,62 @@ func (suite *SelectorReduceSuite) TestReduce() {
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{testdata.ExchangeEmailItems[0]},
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
0)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeEventsAndMailWithSubject",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Filter(sel.EventSubject("foo"))
|
||||
sel.Filter(sel.MailSubject("foo"))
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{},
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return []details.Entry{}
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeAll",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.AllData())
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: append(
|
||||
append(
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return append(
|
||||
append(
|
||||
[]details.Entry{},
|
||||
testdata.ExchangeEmailItems...),
|
||||
testdata.ExchangeContactsItems...),
|
||||
testdata.ExchangeEventsItems...,
|
||||
),
|
||||
testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
-1),
|
||||
testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EventsCategory,
|
||||
wantVersion,
|
||||
-1)...),
|
||||
testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.ContactsCategory,
|
||||
wantVersion,
|
||||
-1)...)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeMailByFolder",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.MailFolders(
|
||||
[]string{testdata.ExchangeEmailBasePath.FolderLocation()},
|
||||
@ -182,14 +272,21 @@ func (suite *SelectorReduceSuite) TestReduce() {
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{testdata.ExchangeEmailItems[0]},
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
0)
|
||||
},
|
||||
},
|
||||
// TODO (keepers): all folders are treated as prefix-matches at this time.
|
||||
// so this test actually does nothing different. In the future, we'll
|
||||
// need to amend the non-prefix folder tests to expect non-prefix matches.
|
||||
{
|
||||
name: "ExchangeMailByFolderPrefix",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.MailFolders(
|
||||
[]string{testdata.ExchangeEmailBasePath.FolderLocation()},
|
||||
@ -198,11 +295,18 @@ func (suite *SelectorReduceSuite) TestReduce() {
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{testdata.ExchangeEmailItems[0]},
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
0)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeMailByFolderRoot",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.MailFolders(
|
||||
[]string{testdata.ExchangeEmailInboxPath.FolderLocation()},
|
||||
@ -210,11 +314,18 @@ func (suite *SelectorReduceSuite) TestReduce() {
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: testdata.ExchangeEmailItems,
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EmailCategory,
|
||||
wantVersion,
|
||||
-1)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeContactByFolder",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.ContactFolders(
|
||||
[]string{testdata.ExchangeContactsBasePath.FolderLocation()},
|
||||
@ -222,11 +333,18 @@ func (suite *SelectorReduceSuite) TestReduce() {
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{testdata.ExchangeContactsItems[0]},
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.ContactsCategory,
|
||||
wantVersion,
|
||||
0)
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "ExchangeContactByFolderRoot",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.ContactFolders(
|
||||
[]string{testdata.ExchangeContactsRootPath.FolderLocation()},
|
||||
@ -234,12 +352,19 @@ func (suite *SelectorReduceSuite) TestReduce() {
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: testdata.ExchangeContactsItems,
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.ContactsCategory,
|
||||
wantVersion,
|
||||
-1)
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
name: "ExchangeEventsByFolder",
|
||||
selFunc: func() selectors.Reducer {
|
||||
selFunc: func(t *testing.T, wantVersion int) selectors.Reducer {
|
||||
sel := selectors.NewExchangeRestore(selectors.Any())
|
||||
sel.Include(sel.EventCalendars(
|
||||
[]string{testdata.ExchangeEventsBasePath.FolderLocation()},
|
||||
@ -247,16 +372,28 @@ func (suite *SelectorReduceSuite) TestReduce() {
|
||||
|
||||
return sel
|
||||
},
|
||||
expected: []details.Entry{testdata.ExchangeEventsItems[0]},
|
||||
expected: func(t *testing.T, wantVersion int) []details.Entry {
|
||||
return testdata.GetItemsForVersion(
|
||||
t,
|
||||
path.ExchangeService,
|
||||
path.EventsCategory,
|
||||
wantVersion,
|
||||
0)
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range table {
|
||||
suite.Run(test.name, func() {
|
||||
t := suite.T()
|
||||
for v := 0; v <= version.Backup; v++ {
|
||||
suite.Run(fmt.Sprintf("version%d", v), func() {
|
||||
for _, test := range table {
|
||||
suite.Run(test.name, func() {
|
||||
t := suite.T()
|
||||
|
||||
output := test.selFunc().Reduce(ctx, allDetails, fault.New(true))
|
||||
assert.ElementsMatch(t, test.expected, output.Entries)
|
||||
allDetails := testdata.GetDetailsSetForVersion(t, v)
|
||||
output := test.selFunc(t, v).Reduce(ctx, allDetails, fault.New(true))
|
||||
assert.ElementsMatch(t, test.expected(t, v), output.Entries)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user