From d656bc181c8321ff633e9b552a6a3f80c30bb03f Mon Sep 17 00:00:00 2001 From: Danny Date: Wed, 3 Aug 2022 17:53:19 -0400 Subject: [PATCH] =?UTF-8?q?Regression=20test=20added=20for=20serialization?= =?UTF-8?q?=20and=20(de)serialization=20process=E2=80=A6=20(#461)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Regression test added for serialization and (de)serialization process for graphConnector. --- .../connector/graph_connector_test.go | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/internal/connector/graph_connector_test.go b/src/internal/connector/graph_connector_test.go index 487976d26..0a6da7e85 100644 --- a/src/internal/connector/graph_connector_test.go +++ b/src/internal/connector/graph_connector_test.go @@ -3,6 +3,8 @@ package connector import ( "bytes" "context" + "fmt" + "strings" "testing" "time" @@ -86,6 +88,44 @@ func (suite *GraphConnectorIntegrationSuite) TestGraphConnector_ExchangeDataColl suite.Greater(len(exchangeData.FullPath()), 2) } +func (suite *GraphConnectorIntegrationSuite) TestGraphConnector_MailRegressionTest() { + t := suite.T() + user, err := tester.M365UserID() + require.NoError(t, err) + sel := selectors.NewExchangeBackup() + sel.Include(sel.Users([]string{user})) + eb, err := sel.ToExchangeBackup() + require.NoError(t, err) + var mailScope selectors.ExchangeScope + all := eb.Scopes() + for _, scope := range all { + fmt.Printf("%v\n", scope) + if scope.IncludesCategory(selectors.ExchangeMail) { + mailScope = scope + } + } + + collection, err := suite.connector.createCollections(context.Background(), mailScope) + require.NoError(t, err) + for _, edc := range collection { + testName := strings.Join(edc.FullPath(), " ") + suite.T().Run(testName, func(t *testing.T) { + streamChannel := edc.Items() + // Verify that each message can be restored + for stream := range streamChannel { + buf := &bytes.Buffer{} + read, err := buf.ReadFrom(stream.ToReader()) + suite.NoError(err) + suite.NotZero(read) + message, err := support.CreateMessageFromBytes(buf.Bytes()) + suite.NotNil(message) + suite.NoError(err) + + } + }) + } +} + //TestGraphConnector_restoreMessages uses mock data to ensure GraphConnector // is able to restore a messageable item to a Mailbox. func (suite *GraphConnectorIntegrationSuite) TestGraphConnector_restoreMessages() {