public void TestFixtureSetUp() { outputPath = Properties.Settings.Default.DestinationPath; rootFolderItem = new FolderItem() { Name = string.Format("{0}", outputPath.Replace("/", "")), Path = string.Format("{0}", outputPath) }; reportsFolderItem = new FolderItem() { Name = "Reports", Path = string.Format("{0}/Reports", outputPath) }; reportsSubFolderItem = new FolderItem() { Name = "Sub Folder", Path = string.Format("{0}/Reports/Sub Folder", outputPath) }; rootSubFolderItem = new FolderItem() { Name = "Data Sources", Path = string.Format("{0}/Data Sources", outputPath) }; alreadyExistsFolderItem = new FolderItem() { Name = "Folder Already Exists", Path = "/SSRSMigrate_AW_Tests_Exists/Folder Already Exists" }; invalidPathFolderItem = new FolderItem() { Name = "SSRSMigrate_AW_Tests.Tests", Path = "/SSRSMigrate_AW.Tests", }; folderItems = new List<FolderItem>() { rootFolderItem, reportsFolderItem, reportsSubFolderItem, rootSubFolderItem, }; writer = TestKernel.Instance.Get<IReportServerWriter>("2010-DEST"); }
private void GetFolders_Reporter(FolderItem folderItem) { actualFolderItems.Add(folderItem); }
public void TestFixtureSetUp() { // Setup expected FolderItems expectedFolderItem = new FolderItem() { Name = "Reports", Path = "/SSRSMigrate_AW_Tests/Reports", }; expectedFolderItems = new List<FolderItem>() { expectedFolderItem, new FolderItem() { Name = "Sub Folder", Path = "/SSRSMigrate_AW_Tests/Reports/Sub Folder", }, new FolderItem() { Name = "Data Sources", Path = "/SSRSMigrate_AW_Tests/Data Sources", } }; // Setup IReportServerRepository mock var reportServerRepositoryMock = new Mock<IReportServerRepository>(); // IReportServerRepository.GetFolder Mocks reportServerRepositoryMock.Setup(r => r.GetFolder(null)) .Throws(new ArgumentException("path")); reportServerRepositoryMock.Setup(r => r.GetFolder("")) .Throws(new ArgumentException("path")); reportServerRepositoryMock.Setup(r => r.GetFolder("/SSRSMigrate_AW_Tests/Reports")) .Returns(() => expectedFolderItem); reportServerRepositoryMock.Setup(r => r.GetFolder("/SSRSMigrate_AW_Tests/Doesnt Exist")) .Returns(() => null); // IReportServerRepository.GetFolders Mocks reportServerRepositoryMock.Setup(r => r.GetFolders(null)) .Throws(new ArgumentException("path")); reportServerRepositoryMock.Setup(r => r.GetFolders("")) .Throws(new ArgumentException("path")); reportServerRepositoryMock.Setup(r => r.GetFolders("/SSRSMigrate_AW_Tests")) .Returns(() => expectedFolderItems); reportServerRepositoryMock.Setup(r => r.GetFolders("/SSRSMigrate_AW_Tests Doesnt Exist")) .Returns(() => new List<FolderItem>()); // IReportServerRepository.GetFolderList Mocks reportServerRepositoryMock.Setup(r => r.GetFolderList(null)) .Throws(new ArgumentException("path")); reportServerRepositoryMock.Setup(r => r.GetFolderList("")) .Throws(new ArgumentException("path")); reportServerRepositoryMock.Setup(r => r.GetFolderList("/SSRSMigrate_AW_Tests")) .Returns(() => expectedFolderItems); reportServerRepositoryMock.Setup(r => r.GetFolderList("/SSRSMigrate_AW_Tests Doesnt Exist")) .Returns(() => new List<FolderItem>()); // 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); // For IReportServerRepository.GetFolder doesnt exist test reportServerRepositoryMock.Setup(r => r.ValidatePath("/SSRSMigrate_AW_Tests/Doesnt Exist")) .Returns(() => true); reportServerRepositoryMock.Setup(r => r.ValidatePath("/SSRSMigrate_AW_Tests/Reports")) .Returns(() => true); reportServerRepositoryMock.Setup(r => r.ValidatePath("/SSRSMigrate_AW_Tests/Reports/Sub Folder")) .Returns(() => true); reportServerRepositoryMock.Setup(r => r.ValidatePath("/SSRSMigrate_AW_Tests/Data Sources")) .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(); reader = new ReportServerReader(reportServerRepositoryMock.Object, logger); }
public void TestFixtureSetUp() { // Setup expected FolderItems expectedFolderItem = new FolderItem() { Name = "Reports", Path = "/SSRSMigrate_AW_Tests/Reports", }; expectedFolderItems = new List<FolderItem>() { expectedFolderItem, new FolderItem() { Name = "Sub Folder", Path = "/SSRSMigrate_AW_Tests/Reports/Sub Folder", }, new FolderItem() { Name = "Data Sources", Path = "/SSRSMigrate_AW_Tests/Data Sources", } }; reader = TestKernel.Instance.Get<IReportServerReader>("2005-SRC"); }
public string[] WriteFolders(FolderItem[] folderItems) { if (folderItems == null) throw new ArgumentNullException("folderItems"); List<string> warnings = new List<string>(); for (int i = 0; i < folderItems.Count(); i++) { // Verify that the folder's path is valid if (!this.mReportRepository.ValidatePath(folderItems[i].Path)) throw new InvalidPathException(folderItems[i].Path); // Get the folder's name and path to its parent folder string name = folderItems[i].Name; string parentPath = SSRSUtil.GetParentPath(folderItems[i]); // Check if a folder already exists at the specified path if (this.mReportRepository.ItemExists(folderItems[i].Path, "Folder")) // If allow overwrite is False, throw ItemAlreadyExistsException, otherwise delete the folder if (!this.mOverwrite) throw new ItemAlreadyExistsException(folderItems[i].Path); else { //TODO Add tests for ReportServerWriter.WriteFolders where the folder exists and overwrite is True this.mReportRepository.DeleteItem(folderItems[i].Path); } string warning = this.mReportRepository.CreateFolder(name, parentPath); if (!string.IsNullOrEmpty(warning)) warnings.Add(warning); } return warnings.ToArray(); }
public string WriteFolder(FolderItem folderItem) { if (folderItem == null) throw new ArgumentNullException("folderItem"); // Verify that the folder's path is valid if (!this.mReportRepository.ValidatePath(folderItem.Path)) throw new InvalidPathException(folderItem.Path); //TODO Check folderItem.HasValidProperties and throw exception //if (!folderItem.HasValidProperties) // throw new InvalidItemException(string.Format("The item with ID '{0}' has a null or empty name or path value.", folderItem.ID)); // Get the folder's name and path to its parent folder string name = folderItem.Name; string parentPath = SSRSUtil.GetParentPath(folderItem); // Check if a folder already exists at the specified path if (this.mReportRepository.ItemExists(folderItem.Path, "Folder")) // If allow overwrite is False, throw ItemAlreadyExistsException, otherwise delete the folder if (!this.mOverwrite) throw new ItemAlreadyExistsException(folderItem.Path); else { //TODO Add tests for ReportServerWriter.WriteFolder where the folder exists and overwrite is True this.mReportRepository.DeleteItem(folderItem.Path); } return this.mReportRepository.CreateFolder(name, parentPath); }
public void WriteFolder_FolderItemNullPath() { FolderItem folderItem = new FolderItem() { Name = "SSRSMigrate_AW_Tests", Path = null, }; InvalidPathException ex = Assert.Throws<InvalidPathException>( delegate { writer.WriteFolder(folderItem); }); Assert.That(ex.Message, Is.EqualTo(string.Format("Invalid path '{0}'.", folderItem.Path))); }
public void WriteFolder_FolderItemNullName() { FolderItem folderItem = new FolderItem() { Name = null, Path = "/SSRSMigrate_AW_Tests", }; ArgumentException ex = Assert.Throws<ArgumentException>( delegate { writer.WriteFolder(folderItem); }); Assert.That(ex.Message, Is.EqualTo("item.Name")); }
public void WriteFolder_FolderItemEmptyPath() { FolderItem folderItem = new FolderItem() { Name = "SSRSMigrate_AW_Tests", Path = "", }; InvalidPathException ex = Assert.Throws<InvalidPathException>( delegate { writer.WriteFolder(folderItem); }); Assert.That(ex.Message, Is.StringContaining("Invalid path")); }
public void WriteFolders_OneOrMoreNullPaths() { FolderItem folderItem = new FolderItem() { Name = "SSRSMigrate_AW_Tests", Path = null, }; List<FolderItem> items = new List<FolderItem>() { folderItem }; items.AddRange(folderItems); InvalidPathException ex = Assert.Throws<InvalidPathException>( delegate { writer.WriteFolders(items.ToArray()); }); Assert.That(ex.Message, Is.EqualTo(string.Format("Invalid path '{0}'.", folderItem.Path))); }
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() { expectedFolderItem = new FolderItem() { Name = "Reports", Path = "/SSRSMigrate_AW_Tests/Reports", }; exportWriterMock = new Mock<IExportWriter>(); exportWriterMock.Setup(e => e.Save(It.IsAny<string>(), It.IsAny<string>(), true)); // Mock IExporter.Save where the directory exists but overwrite = false exportWriterMock.Setup(e => e.Save(expectedFolderItemFileName, false)) .Throws(new IOException(string.Format("Directory '{0}' already exists.", expectedFolderItemFileName))); exporter = new FolderItemExporter(exportWriterMock.Object); }