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")); }
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")); }
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(); }
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)); }
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"); } }
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); }
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 }; }
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); }
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); }