public string WriteDataSource(DataSourceItem dataSourceItem) { if (dataSourceItem == null) throw new ArgumentNullException("dataSourceItem"); if (!this.mReportRepository.ValidatePath(dataSourceItem.Path)) throw new InvalidPathException(dataSourceItem.Path); string name = dataSourceItem.Name; string parentPath = SSRSUtil.GetParentPath(dataSourceItem); if (!this.mOverwrite) if (this.mReportRepository.ItemExists(dataSourceItem.Path, "DataSource")) throw new ItemAlreadyExistsException(dataSourceItem.Path); return this.mReportRepository.WriteDataSource(parentPath, dataSourceItem, this.mOverwrite); }
public void WriteDataSource_DataSourceItemNullPath() { DataSourceItem dataSource = new DataSourceItem() { Name = "Test Data Source", Path = null, }; InvalidPathException ex = Assert.Throws<InvalidPathException>( delegate { writer.WriteDataSource(dataSource); }); Assert.That(ex.Message, Is.EqualTo(string.Format("Invalid path '{0}'.", dataSource.Path))); }
public void WriteDatasource_DataSourceItemNullName() { DataSourceItem dataSource = new DataSourceItem() { Name = null, Path = "/SSRSMigrate_AW_Tests/Data Sources/Test Data Source", }; ArgumentException ex = Assert.Throws<ArgumentException>( delegate { writer.WriteDataSource(dataSource); }); Assert.That(ex.Message, Is.EqualTo("item.Name")); }
public void WriteDataSource_DataSourceItemEmptyPath() { DataSourceItem dataSource = new DataSourceItem() { Name = "Test Data Source", Path = "", }; InvalidPathException ex = Assert.Throws<InvalidPathException>( delegate { writer.WriteDataSource(dataSource); }); Assert.That(ex.Message, Is.StringContaining("Invalid path")); }
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); }
public void WriteDataSources_OneOrMoreDataSourceItemNullPath() { DataSourceItem dataSource = new DataSourceItem() { Name = "Test Data Source", Path = null, }; List<DataSourceItem> items = new List<DataSourceItem>() { dataSource }; items.AddRange(dataSourceItems); InvalidPathException ex = Assert.Throws<InvalidPathException>( delegate { writer.WriteDataSources(items.ToArray()); }); Assert.That(ex.Message, Is.EqualTo(string.Format("Invalid path '{0}'.", dataSource.Path))); }
private static void CreateDataSource(ReportingService2010 reportingService, DataSourceItem dataSource) { if (reportingService == null) throw new ArgumentNullException("reportingService"); if (dataSource == null) throw new ArgumentNullException("dataSource"); DataSourceDefinition def = new DataSourceDefinition(); def.ConnectString = dataSource.ConnectString; switch (dataSource.CredentialsRetrieval) { case "Integrated": def.CredentialRetrieval = CredentialRetrievalEnum.Integrated; break; case "None": def.CredentialRetrieval = CredentialRetrievalEnum.None; break; case "Prompt": def.CredentialRetrieval = CredentialRetrievalEnum.Prompt; break; case "Store": def.CredentialRetrieval = CredentialRetrievalEnum.Store; break; } def.Enabled = dataSource.Enabled; def.EnabledSpecified = dataSource.EnabledSpecified; def.Extension = dataSource.Extension; def.ImpersonateUser = dataSource.ImpersonateUser; def.ImpersonateUserSpecified = dataSource.ImpersonateUserSpecified; def.OriginalConnectStringExpressionBased = dataSource.OriginalConnectStringExpressionBased; def.Password = dataSource.Password; def.Prompt = dataSource.Prompt; def.UseOriginalConnectString = dataSource.UseOriginalConnectString; def.UserName = dataSource.UserName; def.WindowsCredentials = dataSource.WindowsCredentials; string parent = TesterUtility.GetParentPath(dataSource.Path); ReportingService2010TestEnvironment.CreateFolderFromPath(reportingService, parent); reportingService.CreateDataSource(dataSource.Name, parent, true, def, null); }
public void GetDataSources_Reporter(DataSourceItem dataSource) { if (dataSource != null) actualDataSourceItems.Add(dataSource); }
public void TestFixtureSetUp() { outputPath = Properties.Settings.Default.DestinationPath; // Setup DataSourceItems dataSourceItems = new List<DataSourceItem>() { new DataSourceItem() { Description = null, Name = "AWDataSource", Path = string.Format("{0}/Data Sources/AWDataSource", outputPath), 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, Name = "Test Data Source", Path = string.Format("{0}/Data Sources/Test Data Source", outputPath), 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 } }; // To test invalid path invalidPathDataSourceItem = new DataSourceItem() { Description = null, Name = "Test.Data Source", Path = string.Format("{0}/Data Sources/Test.Data Source", outputPath), 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() { Description = null, Name = "Data Source Already Exists", Path = string.Format("{0}/Data Sources/Data Source Already Exists", outputPath), 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 }; nullNameDataSourceItem = new DataSourceItem() { Description = null, Name = null, Path = string.Format("{0}/Data Sources/Test Data Source", outputPath), 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 }; emptyNameDataSourceItem = new DataSourceItem() { Description = null, Name = null, Path = string.Format("{0}/Data Sources/Test Data Source", outputPath), 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 }; nullPathDataSourceItem = new DataSourceItem() { Description = null, Name = "Test Data Source", Path = null, 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 }; emptyPathDataSourceItem = new DataSourceItem() { Description = null, Name = "Test Data Source", Path = "", 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 }; writer = TestKernel.Instance.Get<IReportServerWriter>("2005-DEST"); }
public void WriteDataSource_DataSourceItemNullName() { DataSourceItem dataSource = new DataSourceItem() { Name = null, Path = string.Format("{0}/Data Sources/Test Data Source", outputPath), }; ArgumentException ex = Assert.Throws<ArgumentException>( delegate { writer.WriteDataSource(dataSource); }); Assert.That(ex.Message, Is.EqualTo("item.Name")); }
public void TestFixtureSetUp() { EnvironmentSetup(); var settings = new NinjectSettings() { LoadExtensions = false }; kernel = new StandardKernel( settings, new Log4NetModule(), new DependencyModule()); exporter = kernel.Get<DataSourceItemExporter>(); 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 }; outputPath = GetOutPutPath(); }
public string[] WriteDataSources(DataSourceItem[] dataSourceItems) { if (dataSourceItems == null) throw new ArgumentNullException("dataSourceItems"); List<string> warnings = new List<string>(); for (int i = 0; i < dataSourceItems.Count(); i++) { if (!this.mReportRepository.ValidatePath(dataSourceItems[i].Path)) throw new InvalidPathException(dataSourceItems[i].Path); string name = dataSourceItems[i].Name; string parentPath = SSRSUtil.GetParentPath(dataSourceItems[i]); if (!this.mOverwrite) if (this.mReportRepository.ItemExists(dataSourceItems[i].Path, "DataSource")) throw new ItemAlreadyExistsException(dataSourceItems[i].Path); string warning = this.mReportRepository.WriteDataSource(parentPath, dataSourceItems[i], this.mOverwrite); if (!string.IsNullOrEmpty(warning)) warnings.Add(warning); } return warnings.ToArray(); }
private void GetDataSources_Reporter(DataSourceItem dataSourceItem) { actualDataSourceItems.Add(dataSourceItem); }