Beispiel #1
0
        public void WriteReports_OneOrMoreReportItemNullName()
        {
            ReportItem report = new ReportItem()
            {
                Name        = null,
                Path        = "/SSRSMigrate_AW_Tests/Reports/Company Sales",
                Description = null,
                ID          = "5921480a-1b24-4a6e-abbc-f8db116cd24e",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2010\\Company Sales.rdl")))
            };

            List <ReportItem> items = new List <ReportItem>()
            {
                report
            };

            items.AddRange(reportItems);

            ArgumentException ex = Assert.Throws <ArgumentException>(
                delegate
            {
                writer.WriteReports(items.ToArray());
            });

            Assert.That(ex.Message, Is.EqualTo("item.Name"));
        }
Beispiel #2
0
        public void WriteReports_OneOrMoreReportItemEmptyPath()
        {
            ReportItem report = new ReportItem()
            {
                Name        = "Company Sales",
                Path        = "",
                Description = null,
                ID          = "5921480a-1b24-4a6e-abbc-f8db116cd24e",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2010\\Company Sales.rdl")))
            };

            List <ReportItem> items = new List <ReportItem>()
            {
                report
            };

            items.AddRange(reportItems);

            InvalidPathException ex = Assert.Throws <InvalidPathException>(
                delegate
            {
                writer.WriteReports(items.ToArray());
            });

            Assert.That(ex.Message, Is.EqualTo(string.Format("Invalid path '{0}'.", report.Path)));
        }
        public void ExportReports()
        {
            reader.GetReports("/SSRSMigrate_AW_Tests", GetReports_Reporter);

            foreach (ReportItem actualReportItem in actualReportItems)
            {
                string saveFilePath = outputPath + SSRSUtil.GetServerPathToPhysicalPath(actualReportItem.Path, "rdl");

                ExportStatus actualStatus = reportExporter.SaveItem(
                    actualReportItem,
                    saveFilePath,
                    true);

                // Export was successful
                Assert.True(actualStatus.Success, string.Format("Success; {0}", actualReportItem.Path));

                // Exported to the expected location
                Assert.AreEqual(saveFilePath, actualStatus.ToPath, string.Format("ToPath; {0}", actualReportItem.Path));

                // Was exported from the expected location
                Assert.AreEqual(actualReportItem.Path, actualStatus.FromPath, string.Format("ToPath; {0}", actualReportItem.Path));

                // The exported ReportItem exists on disk
                Assert.True(File.Exists(actualStatus.ToPath));
            }

            // The exported reports file matches the expected file
            Assert.True(TesterUtility.CompareTextFiles(testReportFiles[0], outputPath + "\\SSRSMigrate_AW_Tests\\Reports\\Company Sales.rdl"));
            Assert.True(TesterUtility.CompareTextFiles(testReportFiles[1], outputPath + "\\SSRSMigrate_AW_Tests\\Reports\\Sales Order Detail.rdl"));
            Assert.True(TesterUtility.CompareTextFiles(testReportFiles[2], outputPath + "\\SSRSMigrate_AW_Tests\\Reports\\Store Contacts.rdl"));
        }
Beispiel #4
0
        public void TestFixtureSetUp()
        {
            EnvironmentSetup();

            var settings = new NinjectSettings()
            {
                LoadExtensions = false
            };

            kernel = new StandardKernel(
                settings,
                new Log4NetModule(),
                new DependencyModule());

            exporter = kernel.Get <ReportItemExporter>();

            reportItem_CompanySales = new ReportItem()
            {
                Name        = "Company Sales",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Company Sales",
                Description = "Adventure Works sales by quarter and product category. This report illustrates the use of a tablix data region with nested row groups and column groups. You can drilldown from summary data into detail data by showing and hiding rows. This report also illustrates the use of a logo image and a background image.",
                ID          = "16d599e6-9c87-4ebc-b45b-5a47e3c73746",
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, testReportFiles[0])))
            };

            reportItem_StoreContacts = new ReportItem()
            {
                Name        = "Store Contacts",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Store Contacts",
                Description = "AdventureWorks store contacts. This report is a subreport used in Sales Order Detail to show all contacts for a store. Borderstyle is None so lines do not display in main report.",
                ID          = "18fc782e-dd5f-4c65-95ff-957e1bdc98de",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, testReportFiles[2]))),
            };

            reportItem_SalesOrderDetail = new ReportItem()
            {
                Name        = "Sales Order Detail",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Sales Order Detail",
                Description = "Detail of an individual Adventure Works order. This report can be accessed as a drillthrough report from the Employee Sales Summary and Territory Sales drilldown report. This report illustrates the use of a free form layout, a table, parameters, a subreport that shows multiple store contacts, and expressions.",
                ID          = "70650568-7dd4-4ef4-aeaa-67502de11b4f",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, testReportFiles[1]))),
                SubReports  = new List <ReportItem>()
                {
                    reportItem_StoreContacts
                }
            };

            // Setup GetReports - Expected ReportItems
            reportItems = new List <ReportItem>()
            {
                reportItem_CompanySales,
                reportItem_SalesOrderDetail,
                reportItem_StoreContacts
            };

            outputPath = GetOutPutPath();
        }
Beispiel #5
0
        public void ExportReportItem()
        {
            string filePath = outputPath + SSRSUtil.GetServerPathToPhysicalPath(reportItem_CompanySales.Path, "rdl");

            ExportStatus actualStatus = exporter.SaveItem(reportItem_CompanySales, filePath);

            Assert.True(actualStatus.Success);
            Assert.AreEqual(filePath, actualStatus.ToPath);
            Assert.True(File.Exists(actualStatus.ToPath));
            Assert.Null(actualStatus.Errors);
            Assert.True(TesterUtility.CompareTextFiles(Path.Combine(TestContext.CurrentContext.TestDirectory, testReportFiles[0]), actualStatus.ToPath));
        }
Beispiel #6
0
        public void ExportReportItems()
        {
            for (int i = 0; i < reportItems.Count(); i++)
            {
                ReportItem reportItem = reportItems[i];

                string filePath = outputPath + SSRSUtil.GetServerPathToPhysicalPath(reportItem.Path, "rdl");

                ExportStatus actualStatus = exporter.SaveItem(reportItem, filePath);

                Assert.True(actualStatus.Success, "Success");
                Assert.AreEqual(filePath, actualStatus.ToPath, "ToPath");
                Assert.True(File.Exists(actualStatus.ToPath), " ToPath.Exists");
                Assert.Null(actualStatus.Errors);
                Assert.True(TesterUtility.CompareTextFiles(Path.Combine(TestContext.CurrentContext.TestDirectory, testReportFiles[i]), actualStatus.ToPath), "CompareTextFiles");
            }
        }
Beispiel #7
0
        private void SetupExpectedResults()
        {
            // Setup expected ReportItems
            expectedReportItem_CompanySales = new ReportItem()
            {
                Name        = "Company Sales",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Company Sales",
                Description = "Adventure Works sales by quarter and product category. This report illustrates the use of a tablix data region with nested row groups and column groups. You can drilldown from summary data into detail data by showing and hiding rows. This report also illustrates the use of a logo image and a background image.",
                ID          = "16d599e6-9c87-4ebc-b45b-5a47e3c73746",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2005\\Company Sales.rdl")))
            };

            expectedReportItem_StoreContacts = new ReportItem()
            {
                Name        = "Store Contacts",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Store Contacts",
                Description = "AdventureWorks store contacts. This report is a subreport used in Sales Order Detail to show all contacts for a store. Borderstyle is None so lines do not display in main report.",
                ID          = "18fc782e-dd5f-4c65-95ff-957e1bdc98de",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2005\\Store Contacts.rdl"))),
            };

            expectedReportItem_SalesOrderDetail = new ReportItem()
            {
                Name        = "Sales Order Detail",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Sales Order Detail",
                Description = "Detail of an individual Adventure Works order. This report can be accessed as a drillthrough report from the Employee Sales Summary and Territory Sales drilldown report. This report illustrates the use of a free form layout, a table, parameters, a subreport that shows multiple store contacts, and expressions.",
                ID          = "70650568-7dd4-4ef4-aeaa-67502de11b4f",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2005\\Sales Order Detail.rdl"))),
                SubReports  = new List <ReportItem>()
                {
                    expectedReportItem_StoreContacts
                }
            };

            // Setup GetReports - Expected ReportItems
            expectedReportItems = new List <ReportItem>()
            {
                expectedReportItem_CompanySales,
                expectedReportItem_SalesOrderDetail,
                expectedReportItem_StoreContacts
            };
        }
        public void WriteReport_ReportItemEmptyName()
        {
            ReportItem report = new ReportItem()
            {
                Name        = "",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Company Sales",
                Description = null,
                ID          = "5921480a-1b24-4a6e-abbc-f8db116cd24e",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2005\\Company Sales.rdl")))
            };

            ArgumentException ex = Assert.Throws <ArgumentException>(
                delegate
            {
                writer.WriteReport(report);
            });

            Assert.That(ex.Message, Is.EqualTo("item.Name"));
        }
        public void TestFixtureSetUp()
        {
            reportItem = new ReportItem()
            {
                Name        = "Company Sales",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Company Sales",
                Description = null,
                ID          = "16d599e6-9c87-4ebc-b45b-5a47e3c73746",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, testReportPath)))
            };

            exportWriterMock = new Mock <IExportWriter>();
            var logger = new MockLogger();

            exportWriterMock.Setup(e => e.Save(It.IsAny <string>(), It.IsAny <byte[]>(), true));

            // Mock IExporter.Save where the filename exists but overwrite = false
            exportWriterMock.Setup(e => e.Save(expectedReportItemFileName, It.IsAny <byte[]>(), false))
            .Throws(new IOException(string.Format("File '{0}' already exists.", expectedReportItemFileName)));

            exporter = new ReportItemExporter(exportWriterMock.Object, logger);
        }
Beispiel #10
0
        private void SetupReportItems()
        {
            reportItem_CompanySales = new ReportItem()
            {
                Name         = "Company Sales",
                Path         = "/SSRSMigrate_AW_Tests/Reports/Company Sales",
                CreatedBy    = "DOMAIN\\user",
                CreationDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                Description  = null,
                ID           = "16d599e6-9c87-4ebc-b45b-5a47e3c73746",
                ModifiedBy   = "DOMAIN\\user",
                ModifiedDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                Size         = 10,
                VirtualPath  = null,
                Definition   = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2010\\Company Sales.rdl")))
            };

            reportItem_StoreContacts = new ReportItem()
            {
                Name         = "Store Contacts",
                Path         = "/SSRSMigrate_AW_Tests/Reports/Store Contacts",
                CreatedBy    = "DOMAIN\\user",
                CreationDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                Description  = null,
                ID           = "18fc782e-dd5f-4c65-95ff-957e1bdc98de",
                ModifiedBy   = "DOMAIN\\user",
                ModifiedDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                Size         = 10,
                VirtualPath  = null,
                Definition   = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2010\\Store Contacts.rdl"))),
            };

            reportItem_SalesOrderDetail = new ReportItem()
            {
                Name         = "Sales Order Detail",
                Path         = "/SSRSMigrate_AW_Tests/Reports/Sales Order Detail",
                CreatedBy    = "DOMAIN\\user",
                CreationDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                Description  = null,
                ID           = "70650568-7dd4-4ef4-aeaa-67502de11b4f",
                ModifiedBy   = "DOMAIN\\user",
                ModifiedDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                Size         = 10,
                VirtualPath  = null,
                Definition   = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2010\\Sales Order Detail.rdl"))),
                SubReports   = new List <ReportItem>()
                {
                    reportItem_StoreContacts
                }
            };

            reportItem_AlreadyExists = new ReportItem()
            {
                Name        = "Already Exists",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Already Exists",
                Description = null,
                ID          = "5921480a-1b24-4a6e-abbc-f8db116cd24e",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2010\\Company Sales.rdl")))
            };

            reportItem_InvalidPath = new ReportItem()
            {
                Name        = "Invalid.Path",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Invalid.Path",
                Description = null,
                ID          = "5921480a-1b24-4a6e-abbc-f8db116cd24e",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2010\\Company Sales.rdl")))
            };

            reportItem_NullDefinition = new ReportItem()
            {
                Name        = "Null Definition",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Null Definition",
                Description = null,
                ID          = "5921480a-1b24-4a6e-abbc-f8db116cd24e",
                VirtualPath = null,
                Definition  = null
            };

            reportItem_Error = new ReportItem()
            {
                Name         = "ERROR",
                Path         = "/SSRSMigrate_AW_Tests/Reports/ERROR",
                CreatedBy    = "DOMAIN\\user",
                CreationDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                Description  = null,
                ID           = "16d599e6-9c87-4ebc-b45b-5a47e3c73746",
                ModifiedBy   = "DOMAIN\\user",
                ModifiedDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                Size         = 10,
                VirtualPath  = null,
                Definition   = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2010\\Company Sales.rdl")))
            };

            reportItems = new List <ReportItem>()
            {
                reportItem_CompanySales,
                reportItem_SalesOrderDetail,
                reportItem_StoreContacts
            };
        }
Beispiel #11
0
        public void TestFixtureSetUp()
        {
            SetupReportItems();

            // Setup IReportServerRepository mock
            var reportServerRepositoryMock = new Mock <IReportServerRepository>();

            // Setup IReportServerRepository.WriteReport Mocks
            reportServerRepositoryMock.Setup(r => r.WriteReport(null, It.IsAny <ReportItem>(), It.IsAny <bool>()))
            .Throws(new ArgumentException("reportPath"));

            reportServerRepositoryMock.Setup(r => r.WriteReport("", It.IsAny <ReportItem>(), It.IsAny <bool>()))
            .Throws(new ArgumentException("reportPath"));

            reportServerRepositoryMock.Setup(r => r.WriteReport(It.IsAny <string>(), null, It.IsAny <bool>()))
            .Throws(new ArgumentException("reportItem"));

            reportServerRepositoryMock.Setup(r => r.WriteReport(TesterUtility.GetParentPath(reportItem_NullDefinition), reportItem_NullDefinition, It.IsAny <bool>()))
            .Throws(new InvalidReportDefinitionException(reportItem_NullDefinition.Path));

            reportServerRepositoryMock.Setup(r => r.WriteReport(TesterUtility.GetParentPath(reportItem_CompanySales), reportItem_CompanySales, It.IsAny <bool>()))
            .Returns(() => null);

            reportServerRepositoryMock.Setup(r => r.WriteReport(TesterUtility.GetParentPath(reportItem_SalesOrderDetail), reportItem_SalesOrderDetail, It.IsAny <bool>()))
            .Returns(() => null);

            reportServerRepositoryMock.Setup(r => r.WriteReport(TesterUtility.GetParentPath(reportItem_StoreContacts), reportItem_StoreContacts, It.IsAny <bool>()))
            .Returns(() => null);

            reportServerRepositoryMock.Setup(r => r.WriteReport(TesterUtility.GetParentPath(reportItem_Error), reportItem_Error, It.IsAny <bool>()))
            .Returns(() => new string[] { string.Format("Error writing report '{0}': Error!", reportItem_Error.Path) });

            reportServerRepositoryMock.Setup(r => r.WriteReport(TesterUtility.GetParentPath(reportItem_AlreadyExists), reportItem_AlreadyExists, true))
            .Returns(() => null);

            // Setup IReportServerRepository.ItemExists Mocks
            reportServerRepositoryMock.Setup(r => r.ItemExists(reportItem_AlreadyExists.Path, "Report"))
            .Returns(() => true);

            // Setup IReportServerRepository.ValidatePath Mocks
            reportServerRepositoryMock.Setup(r => r.ValidatePath(reportItem_CompanySales.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(reportItem_SalesOrderDetail.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(reportItem_StoreContacts.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(reportItem_AlreadyExists.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(reportItem_NullDefinition.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(reportItem_Error.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(null))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(""))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(reportItem_InvalidPath.Path))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(It.Is <string>(s => Regex.IsMatch(s ?? "", "[:?;@&=+$,\\*><|.\"]+") == true)))
            .Returns(() => false);

            // Setup IReportServerRepository.ValidateItemPath Mocks
            reportServerRepositoryMock.Setup(r => r.ValidateItemPath(reportItem_CompanySales.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath(reportItem_SalesOrderDetail.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath(reportItem_StoreContacts.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath(reportItem_AlreadyExists.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath(reportItem_NullDefinition.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath(reportItem_Error.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath(null))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath(""))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath(reportItem_InvalidPath.Path))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath(It.Is <string>(s => Regex.IsMatch(s ?? "", "[:?;@&=+$,\\*><|.\"]+") == true)))
            .Returns(() => false);

            MockLogger logger = new MockLogger();

            writer = new ReportServerWriter(reportServerRepositoryMock.Object, logger);
        }
        public void TestFixtureSetUp()
        {
            rootFolderItem = new FolderItem()
            {
                Name = "SSRSMigrate_AW_Tests",
                Path = "/SSRSMigrate_AW_Tests",
            };

            reportsFolderItem = new FolderItem()
            {
                Name = "Reports",
                Path = "/SSRSMigrate_AW_Tests/Reports",
            };

            reportsSubFolderItem = new FolderItem()
            {
                Name = "Sub Folder",
                Path = "/SSRSMigrate_AW_Tests/Reports/Sub Folder",
            };

            rootSubFolderItem = new FolderItem()
            {
                Name = "Data Sources",
                Path = "/SSRSMigrate_AW_Tests/Data Sources",
            };

            alreadyExistsFolderItem = new FolderItem()
            {
                Name = "Already Exists",
                Path = "/SSRSMigrate_AW_Tests/Already Exists"
            };

            invalidPathFolderItem = new FolderItem()
            {
                Name = "SSRSMigrate_AW_Tests.Tests",
                Path = "/SSRSMigrate_AW.Tests",
            };

            errorFolderItem = new FolderItem()
            {
                Name = "ERROR",
                Path = "/SSRSMigrate_AW_Tests/ERROR"
            };

            folderItems = new List <FolderItem>()
            {
                rootFolderItem,
                reportsFolderItem,
                reportsSubFolderItem,
                rootSubFolderItem,
            };

            // Setup IReportServerRepository Mock
            reportServerRepositoryMock = new Mock <IReportServerRepository>();

            // IReportServerRepository.CreateFolder Mocks
            reportServerRepositoryMock.Setup(r => r.CreateFolder(null, It.IsAny <string>()))
            .Throws(new ArgumentException("name"));

            reportServerRepositoryMock.Setup(r => r.CreateFolder("", It.IsAny <string>()))
            .Throws(new ArgumentException("name"));

            reportServerRepositoryMock.Setup(r => r.CreateFolder(It.IsAny <string>(), null))
            .Throws(new ArgumentException("parentPath"));

            reportServerRepositoryMock.Setup(r => r.CreateFolder(It.IsAny <string>(), ""))
            .Throws(new ArgumentException("parentPath"));

            reportServerRepositoryMock.Setup(r => r.CreateFolder(rootFolderItem.Name, TesterUtility.GetParentPath(rootFolderItem)))
            .Returns(() => null);

            reportServerRepositoryMock.Setup(r => r.CreateFolder(reportsFolderItem.Name, TesterUtility.GetParentPath(reportsFolderItem)))
            .Returns(() => null);

            reportServerRepositoryMock.Setup(r => r.CreateFolder(reportsSubFolderItem.Name, TesterUtility.GetParentPath(reportsSubFolderItem)))
            .Returns(() => null);

            reportServerRepositoryMock.Setup(r => r.CreateFolder(rootSubFolderItem.Name, TesterUtility.GetParentPath(rootSubFolderItem)))
            .Returns(() => null);

            reportServerRepositoryMock.Setup(r => r.CreateFolder(alreadyExistsFolderItem.Name, TesterUtility.GetParentPath(alreadyExistsFolderItem)))
            .Returns(() => null);

            reportServerRepositoryMock.Setup(r => r.CreateFolder(errorFolderItem.Name, TesterUtility.GetParentPath(errorFolderItem)))
            .Returns(() => string.Format("Error writing folder '{0}': Error!", errorFolderItem.Path));

            reportServerRepositoryMock.Setup(r => r.ItemExists(alreadyExistsFolderItem.Path, "Folder"))
            .Returns(() => true);

            // IReportServerRepository.ValidatePath Mocks
            reportServerRepositoryMock.Setup(r => r.ValidatePath(rootFolderItem.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(rootSubFolderItem.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(reportsFolderItem.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(reportsSubFolderItem.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(rootSubFolderItem.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(alreadyExistsFolderItem.Path))
            .Returns(() => true);

            // Validate errorFolderItem.Path so we can mock the error returned by IReportServerRepository.CreateFolder
            reportServerRepositoryMock.Setup(r => r.ValidatePath(errorFolderItem.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(null))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(""))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(It.Is <string>(s => Regex.IsMatch(s ?? "", "[:?;@&=+$,\\*><|.\"]+") == true)))
            .Returns(() => false);

            MockLogger logger = new MockLogger();

            writer = new ReportServerWriter(reportServerRepositoryMock.Object, logger);
        }
Beispiel #13
0
        public void TestFixtureSetUp()
        {
            dataSourceItem = new DataSourceItem()
            {
                CreatedBy                            = "DOMAIN\\user",
                CreationDate                         = DateTime.Parse("7/23/2014 8:28:43 AM"),
                Description                          = null,
                ID                                   = Guid.NewGuid().ToString(),
                ModifiedBy                           = "DOMAIN\\user",
                ModifiedDate                         = DateTime.Parse("7/23/2014 8:28:43 AM"),
                Size                                 = 414,
                VirtualPath                          = null,
                Name                                 = "AWDataSource",
                Path                                 = "/SSRSMigrate_AW_Tests/Data Sources/AWDataSource",
                ConnectString                        = "Data Source=(local)\\SQL2008;Initial Catalog=AdventureWorks2008",
                CredentialsRetrieval                 = "Integrated",
                Enabled                              = true,
                EnabledSpecified                     = true,
                Extension                            = "SQL",
                ImpersonateUser                      = false,
                ImpersonateUserSpecified             = true,
                OriginalConnectStringExpressionBased = false,
                Password                             = null,
                Prompt                               = "Enter a user name and password to access the data source:",
                UseOriginalConnectString             = false,
                UserName                             = null,
                WindowsCredentials                   = false
            };

            dataSourceTwoItem = new DataSourceItem()
            {
                CreatedBy                            = "DOMAIN\\user",
                CreationDate                         = DateTime.Parse("7/23/2014 8:29:25 AM"),
                Description                          = null,
                ID                                   = Guid.NewGuid().ToString(),
                ModifiedBy                           = "DOMAIN\\user",
                ModifiedDate                         = DateTime.Parse("7/23/2014 8:29:25 AM"),
                Size                                 = 414,
                VirtualPath                          = null,
                Name                                 = "Test Data Source",
                Path                                 = "/SSRSMigrate_AW_Tests/Data Sources/Test Data Source",
                ConnectString                        = "Data Source=(local)\\SQL2008;Initial Catalog=AdventureWorks2008",
                CredentialsRetrieval                 = "Integrated",
                Enabled                              = true,
                EnabledSpecified                     = true,
                Extension                            = "SQL",
                ImpersonateUser                      = false,
                ImpersonateUserSpecified             = true,
                OriginalConnectStringExpressionBased = false,
                Password                             = null,
                Prompt                               = "Enter a user name and password to access the data source:",
                UseOriginalConnectString             = false,
                UserName                             = null,
                WindowsCredentials                   = false
            };

            alreadyExistsDataSourceItem = new DataSourceItem()
            {
                CreatedBy                            = "DOMAIN\\user",
                CreationDate                         = DateTime.Parse("7/23/2014 8:29:25 AM"),
                Description                          = null,
                ID                                   = Guid.NewGuid().ToString(),
                ModifiedBy                           = "DOMAIN\\user",
                ModifiedDate                         = DateTime.Parse("7/23/2014 8:29:25 AM"),
                Size                                 = 414,
                VirtualPath                          = null,
                Name                                 = "Already Exists Data Source",
                Path                                 = "/SSRSMigrate_AW_Tests/Data Sources/Already Exists Data Source",
                ConnectString                        = "Data Source=(local)\\SQL2008;Initial Catalog=AdventureWorks2008",
                CredentialsRetrieval                 = "Integrated",
                Enabled                              = true,
                EnabledSpecified                     = true,
                Extension                            = "SQL",
                ImpersonateUser                      = false,
                ImpersonateUserSpecified             = true,
                OriginalConnectStringExpressionBased = false,
                Password                             = null,
                Prompt                               = "Enter a user name and password to access the data source:",
                UseOriginalConnectString             = false,
                UserName                             = null,
                WindowsCredentials                   = false
            };

            invalidDataSourcePathItem = new DataSourceItem()
            {
                CreatedBy                            = "DOMAIN\\user",
                CreationDate                         = DateTime.Parse("7/23/2014 8:29:25 AM"),
                Description                          = null,
                ID                                   = Guid.NewGuid().ToString(),
                ModifiedBy                           = "DOMAIN\\user",
                ModifiedDate                         = DateTime.Parse("7/23/2014 8:29:25 AM"),
                Size                                 = 414,
                VirtualPath                          = null,
                Name                                 = "Test.Data Source",
                Path                                 = "/SSRSMigrate_AW_Tests/Data Sources/Test.Data Source",
                ConnectString                        = "Data Source=(local)\\SQL2008;Initial Catalog=AdventureWorks2008",
                CredentialsRetrieval                 = "Integrated",
                Enabled                              = true,
                EnabledSpecified                     = true,
                Extension                            = "SQL",
                ImpersonateUser                      = false,
                ImpersonateUserSpecified             = true,
                OriginalConnectStringExpressionBased = false,
                Password                             = null,
                Prompt                               = "Enter a user name and password to access the data source:",
                UseOriginalConnectString             = false,
                UserName                             = null,
                WindowsCredentials                   = false
            };

            errorDataSourceItem = new DataSourceItem()
            {
                CreatedBy                            = "DOMAIN\\user",
                CreationDate                         = DateTime.Parse("7/23/2014 8:28:43 AM"),
                Description                          = null,
                ID                                   = Guid.NewGuid().ToString(),
                ModifiedBy                           = "DOMAIN\\user",
                ModifiedDate                         = DateTime.Parse("7/23/2014 8:28:43 AM"),
                Size                                 = 414,
                VirtualPath                          = null,
                Name                                 = "ErrorDataSource",
                Path                                 = "/SSRSMigrate_AW_Tests/Data Sources/ErrorDataSource",
                ConnectString                        = "Data Source=(local)\\SQL2008;Initial Catalog=AdventureWorks2008",
                CredentialsRetrieval                 = "Integrated",
                Enabled                              = true,
                EnabledSpecified                     = true,
                Extension                            = "SQL",
                ImpersonateUser                      = false,
                ImpersonateUserSpecified             = true,
                OriginalConnectStringExpressionBased = false,
                Password                             = null,
                Prompt                               = "Enter a user name and password to access the data source:",
                UseOriginalConnectString             = false,
                UserName                             = null,
                WindowsCredentials                   = false
            };

            dataSourceItems = new List <DataSourceItem>()
            {
                dataSourceItem,
                dataSourceTwoItem
            };

            // Setup IReportServerRepository mock
            var reportServerRepositoryMock = new Mock <IReportServerRepository>();

            // Setup IReportServerRepository.WriteDataSource
            reportServerRepositoryMock.Setup(r => r.WriteDataSource(null, It.IsAny <DataSourceItem>(), It.IsAny <bool>()))
            .Throws(new ArgumentException("dataSourcePath"));

            reportServerRepositoryMock.Setup(r => r.WriteDataSource("", It.IsAny <DataSourceItem>(), It.IsAny <bool>()))
            .Throws(new ArgumentException("dataSourcePath"));

            reportServerRepositoryMock.Setup(r => r.WriteDataSource(It.IsAny <string>(), null, It.IsAny <bool>()))
            .Throws(new ArgumentException("dataSource"));

            reportServerRepositoryMock.Setup(r => r.WriteDataSource(TesterUtility.GetParentPath(dataSourceItem), dataSourceItem, It.IsAny <bool>()))
            .Returns(() => null);

            reportServerRepositoryMock.Setup(r => r.WriteDataSource(TesterUtility.GetParentPath(dataSourceTwoItem), dataSourceTwoItem, It.IsAny <bool>()))
            .Returns(() => null);

            reportServerRepositoryMock.Setup(r => r.WriteDataSource(TesterUtility.GetParentPath(errorDataSourceItem), errorDataSourceItem, It.IsAny <bool>()))
            .Returns(() => string.Format("Error writing data source '{0}': Error!", errorDataSourceItem.Path));

            reportServerRepositoryMock.Setup(r => r.WriteDataSource(TesterUtility.GetParentPath(alreadyExistsDataSourceItem), alreadyExistsDataSourceItem, true))
            .Returns(() => null);

            // Setup IReportServerRepository.ItemExists Mocks
            reportServerRepositoryMock.Setup(r => r.ItemExists(alreadyExistsDataSourceItem.Path, "DataSource"))
            .Returns(() => true);

            // Setup IReportServerRepository.ValidatePath Mocks
            reportServerRepositoryMock.Setup(r => r.ValidatePath(dataSourceItem.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(dataSourceTwoItem.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(alreadyExistsDataSourceItem.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath("/SSRSMigrate_AW_Tests"))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(errorDataSourceItem.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(null))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(""))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(It.Is <string>(s => Regex.IsMatch(s ?? "", "[:?;@&=+$,\\*><|.\"]+") == true)))
            .Returns(() => false);

            MockLogger logger = new MockLogger();

            writer = new ReportServerWriter(reportServerRepositoryMock.Object, logger);
        }
        private void SetupExpectedValues()
        {
            // ReportItem
            expectedReportItem_CompanySales = new ReportItem()
            {
                Name        = "Company Sales",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Company Sales",
                Description = "Adventure Works sales by quarter and product category. This report illustrates the use of a tablix data region with nested row groups and column groups. You can drilldown from summary data into detail data by showing and hiding rows. This report also illustrates the use of a logo image and a background image.",
                ID          = "16d599e6-9c87-4ebc-b45b-5a47e3c73746",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, testReportFiles[0])))
            };

            expectedReportItem_StoreContacts = new ReportItem()
            {
                Name        = "Store Contacts",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Store Contacts",
                Description = "AdventureWorks store contacts. This report is a subreport used in Sales Order Detail to show all contacts for a store. Borderstyle is None so lines do not display in main report.",
                ID          = "18fc782e-dd5f-4c65-95ff-957e1bdc98de",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, testReportFiles[2]))),
            };

            expectedReportItem_SalesOrderDetail = new ReportItem()
            {
                Name        = "Sales Order Detail",
                Path        = "/SSRSMigrate_AW_Tests/Reports/Sales Order Detail",
                Description = "Detail of an individual Adventure Works order. This report can be accessed as a drillthrough report from the Employee Sales Summary and Territory Sales drilldown report. This report illustrates the use of a free form layout, a table, parameters, a subreport that shows multiple store contacts, and expressions.",
                ID          = "70650568-7dd4-4ef4-aeaa-67502de11b4f",
                VirtualPath = null,
                Definition  = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, testReportFiles[1]))),
                SubReports  = new List <ReportItem>()
                {
                    expectedReportItem_StoreContacts
                }
            };

            expectedReportItems = new List <ReportItem>()
            {
                expectedReportItem_CompanySales,
                expectedReportItem_SalesOrderDetail,
                expectedReportItem_StoreContacts
            };

            // DataSourceItem
            expectedDataSourceItems = new List <DataSourceItem>()
            {
                new DataSourceItem()
                {
                    Description                          = null,
                    VirtualPath                          = null,
                    Name                                 = "AWDataSource",
                    Path                                 = "/SSRSMigrate_AW_Tests/Data Sources/AWDataSource",
                    ConnectString                        = "Data Source=(local)\\SQL2008;Initial Catalog=AdventureWorks2008",
                    CredentialsRetrieval                 = "Integrated",
                    Enabled                              = true,
                    EnabledSpecified                     = true,
                    Extension                            = "SQL",
                    ImpersonateUser                      = false,
                    ImpersonateUserSpecified             = true,
                    OriginalConnectStringExpressionBased = false,
                    Password                             = null,
                    Prompt                               = "Enter a user name and password to access the data source:",
                    UseOriginalConnectString             = false,
                    UserName                             = null,
                    WindowsCredentials                   = false
                },
                new DataSourceItem()
                {
                    Description                          = null,
                    VirtualPath                          = null,
                    Name                                 = "Test Data Source",
                    Path                                 = "/SSRSMigrate_AW_Tests/Data Sources/Test Data Source",
                    ConnectString                        = "Data Source=(local)\\SQL2008;Initial Catalog=AdventureWorks2008",
                    CredentialsRetrieval                 = "Integrated",
                    Enabled                              = true,
                    EnabledSpecified                     = true,
                    Extension                            = "SQL",
                    ImpersonateUser                      = false,
                    ImpersonateUserSpecified             = true,
                    OriginalConnectStringExpressionBased = false,
                    Password                             = null,
                    Prompt                               = "Enter a user name and password to access the data source:",
                    UseOriginalConnectString             = false,
                    UserName                             = null,
                    WindowsCredentials                   = false
                },
            };

            expectedDataSource1Json = JsonConvert.SerializeObject(expectedDataSourceItems[0], Formatting.Indented);
            expectedDataSource2Json = JsonConvert.SerializeObject(expectedDataSourceItems[1], Formatting.Indented);

            // FolderItem
            expectedFolderItems = new List <FolderItem>()
            {
                new FolderItem()
                {
                    Name = "Reports",
                    Path = "/SSRSMigrate_AW_Tests/Reports",
                },
                new FolderItem()
                {
                    Name = "Sub Folder",
                    Path = "/SSRSMigrate_AW_Tests/Reports/Sub Folder",
                },
                new FolderItem()
                {
                    Name = "Data Sources",
                    Path = "/SSRSMigrate_AW_Tests/Data Sources",
                }
            };
        }
        public void TestFixtureSetUp()
        {
            // Setup IReportServerRepository mock
            var reportServerRepositoryMock = new Mock <IReportServerRepository>();

            // Setup GetReport - Expected ReportItem
            expectedReportItem = new ReportItemProxy(reportServerRepositoryMock.Object)
            {
                Name         = "Company Sales",
                Path         = "/SSRSMigrate_AW_Tests/Reports/Company Sales",
                CreatedBy    = "DOMAIN\\user",
                CreationDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                Description  = null,
                ID           = "16d599e6-9c87-4ebc-b45b-5a47e3c73746",
                ModifiedBy   = "DOMAIN\\user",
                ModifiedDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                Size         = 10,
                VirtualPath  = null,
                Definition   = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2010\\Company Sales.rdl")))
            };

            // Setup GetReports - Expected ReportItems
            expectedReportItems = new List <ReportItem>()
            {
                expectedReportItem,
                new ReportItemProxy(reportServerRepositoryMock.Object)
                {
                    Name         = "Sales Order Detail",
                    Path         = "/SSRSMigrate_AW_Tests/Reports/Sales Order Detail",
                    CreatedBy    = "DOMAIN\\user",
                    CreationDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                    Description  = null,
                    ID           = "70650568-7dd4-4ef4-aeaa-67502de11b4f",
                    ModifiedBy   = "DOMAIN\\user",
                    ModifiedDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                    Size         = 10,
                    VirtualPath  = null,
                    Definition   = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2005\\Sales Order Detail.rdl"))),
                    SubReports   = new List <ReportItem>()
                    {
                        new ReportItem()
                        {
                            Name         = "Store Contacts",
                            Path         = "/SSRSMigrate_AW_Tests/Reports/Store Contacts",
                            CreatedBy    = "DOMAIN\\user",
                            CreationDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                            Description  = null,
                            ID           = "18fc782e-dd5f-4c65-95ff-957e1bdc98de",
                            ModifiedBy   = "DOMAIN\\user",
                            ModifiedDate = DateTime.Parse("7/28/2014 12:06:43 PM"),
                            Size         = 10,
                            VirtualPath  = null,
                            Definition   = TesterUtility.StringToByteArray(TesterUtility.LoadRDLFile(Path.Combine(TestContext.CurrentContext.TestDirectory, "Test AW Reports\\2005\\Store Contacts.rdl"))),
                        }
                    }
                }
            };

            // Setup IReportServerRepository.GetReportDefinition Mocks
            reportServerRepositoryMock.Setup(r => r.GetReportDefinition(null))
            .Throws(new ArgumentException("reportPath"));

            reportServerRepositoryMock.Setup(r => r.GetReportDefinition(""))
            .Throws(new ArgumentException("reportPath"));

            reportServerRepositoryMock.Setup(r => r.GetReportDefinition("/SSRSMigrate_AW_Tests/Reports/Company Sales"))
            .Returns(() => expectedReportItem.Definition);

            reportServerRepositoryMock.Setup(r => r.GetReportDefinition("/SSRSMigrate_AW_Tests/Reports/Sales Order Detail"))
            .Returns(() => expectedReportItems[1].Definition);

            reportServerRepositoryMock.Setup(r => r.GetReportDefinition("/SSRSMigrate_AW_Tests/Reports/Store Contacts"))
            .Returns(() => expectedReportItems[1].SubReports[0].Definition);

            // Setup IReportServerRepository.GetReport Mocks
            reportServerRepositoryMock.Setup(r => r.GetReport(null))
            .Throws(new ArgumentException("reportPath"));

            reportServerRepositoryMock.Setup(r => r.GetReport(""))
            .Throws(new ArgumentException("reportPath"));

            reportServerRepositoryMock.Setup(r => r.GetReport("/SSRSMigrate_AW_Tests/Reports/Company Sales"))
            .Returns(() => expectedReportItem);

            reportServerRepositoryMock.Setup(r => r.GetReport("/SSRSMigrate_AW_Tests/Reports/Sales Order Detail"))
            .Returns(() => expectedReportItems[1]);

            reportServerRepositoryMock.Setup(r => r.GetReport("/SSRSMigrate_AW_Tests/Reports/Report Doesnt Exist"))
            .Returns(() => null);

            // Setup IReportServerRepository.GetReports Mocks
            reportServerRepositoryMock.Setup(r => r.GetReports(null))
            .Throws(new ArgumentException("path"));

            reportServerRepositoryMock.Setup(r => r.GetReports(""))
            .Throws(new ArgumentException("path"));

            reportServerRepositoryMock.Setup(r => r.GetReports("/SSRSMigrate_AW_Tests"))
            .Returns(() => expectedReportItems);

            reportServerRepositoryMock.Setup(r => r.GetReports("/SSRSMigrate_AW_Tests Doesnt Exist"))
            .Returns(() => new List <ReportItem>());

            // Setup IReportServerRepository.GetReportsLazy Mocks
            reportServerRepositoryMock.Setup(r => r.GetReportsLazy(null))
            .Throws(new ArgumentException("path"));

            reportServerRepositoryMock.Setup(r => r.GetReportsLazy(""))
            .Throws(new ArgumentException("path"));

            reportServerRepositoryMock.Setup(r => r.GetReportsLazy("/SSRSMigrate_AW_Tests"))
            .Returns(() => expectedReportItems);

            reportServerRepositoryMock.Setup(r => r.GetReportsLazy("/SSRSMigrate_AW_Tests Doesnt Exist"))
            .Returns(() => new List <ReportItemProxy>());

            // Setup IReportServerRepository.ValidatePath Mocks
            reportServerRepositoryMock.Setup(r => r.ValidatePath("/SSRSMigrate_AW_Tests"))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath("/SSRSMigrate_AW_Tests Doesnt Exist"))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(null))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(""))
            .Returns(() => false);

            reportServerRepositoryMock.Setup(r => r.ValidatePath(It.Is <string>(s => Regex.IsMatch(s ?? "", "[:?;@&=+$,\\*><|.\"]+") == true)))
            .Returns(() => false);

            // Setup IReportServerRepository.ValidateItemPath Mocks
            reportServerRepositoryMock.Setup(r => r.ValidateItemPath("/SSRSMigrate_AW_Tests"))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath("/SSRSMigrate_AW_Tests Doesnt Exist"))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath("/SSRSMigrate_AW_Tests/Reports/Report Doesnt Exist"))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath(expectedReportItem.Path))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath("/SSRSMigrate_AW_Tests/Reports/Sales Order Detail"))
            .Returns(() => true);

            reportServerRepositoryMock.Setup(r => r.ValidateItemPath("/SSRSMigrate_AW_Tests/Reports/Store Contacts"))
            .Returns(() => true);

            MockLogger logger = new MockLogger();

            reader = new ReportServerReader(reportServerRepositoryMock.Object, logger);
        }