public void TestGettingConnectionStrings() { foreach (TableInfo tbl in CatalogueRepository.GetAllObjects <TableInfo>().Where(table => table.Name.ToLower().Equals("bob"))) { tbl.DeleteInDatabase(); } foreach (var c in CatalogueRepository.GetAllObjects <DataAccessCredentials>().Where(cred => cred.Name.ToLower().Equals("bob"))) { c.DeleteInDatabase(); } //test it with TableInfos TableInfo t = new TableInfo(CatalogueRepository, "Bob"); try { t.Server = "fish"; t.Database = "bobsDatabase"; t.SaveToDatabase(); //t has no credentials var server = DataAccessPortal.GetInstance().ExpectServer(t, DataAccessContext.InternalDataProcessing); Assert.AreEqual(typeof(SqlConnectionStringBuilder), server.Builder.GetType()); Assert.AreEqual("fish", ((SqlConnectionStringBuilder)server.Builder).DataSource); Assert.AreEqual("bobsDatabase", ((SqlConnectionStringBuilder)server.Builder).InitialCatalog); Assert.AreEqual(true, ((SqlConnectionStringBuilder)server.Builder).IntegratedSecurity); var creds = new DataAccessCredentials(CatalogueRepository, "Bob"); try { t.SetCredentials(creds, DataAccessContext.InternalDataProcessing, true); creds.Username = "******"; creds.Password = "******"; creds.SaveToDatabase(); ////t has some credentials now server = DataAccessPortal.GetInstance().ExpectServer(t, DataAccessContext.InternalDataProcessing); Assert.AreEqual(typeof(SqlConnectionStringBuilder), server.Builder.GetType()); Assert.AreEqual("fish", ((SqlConnectionStringBuilder)server.Builder).DataSource); Assert.AreEqual("bobsDatabase", ((SqlConnectionStringBuilder)server.Builder).InitialCatalog); Assert.AreEqual("frank", ((SqlConnectionStringBuilder)server.Builder).UserID); Assert.AreEqual("bobsPassword", ((SqlConnectionStringBuilder)server.Builder).Password); Assert.AreEqual(false, ((SqlConnectionStringBuilder)server.Builder).IntegratedSecurity); } finally { var linker = new TableInfoCredentialsManager(CatalogueRepository); linker.BreakAllLinksBetween(creds, t); creds.DeleteInDatabase(); } } finally { t.DeleteInDatabase(); } }
public void Test_BlankPasswords() { var creds = new DataAccessCredentials(CatalogueRepository, "blankpwdCreds"); creds.Username = "******"; creds.Password = ""; creds.SaveToDatabase(); var manager = new TableInfoCredentialsManager(CatalogueRepository); Assert.AreEqual(creds, manager.GetCredentialByUsernameAndPasswordIfExists("Root", null)); Assert.AreEqual(creds, manager.GetCredentialByUsernameAndPasswordIfExists("Root", "")); }
/// <summary> /// Sets up an <see cref="IRepository"/> which connects to the database <paramref name="catalogueConnectionString"/> to fetch/create <see cref="DatabaseEntity"/> objects. /// </summary> /// <param name="catalogueConnectionString"></param> public CatalogueRepository(DbConnectionStringBuilder catalogueConnectionString) : base(null, catalogueConnectionString) { AggregateForcedJoinManager = new AggregateForcedJoin(this); GovernanceManager = new GovernanceManager(this); TableInfoCredentialsManager = new TableInfoCredentialsManager(this); JoinManager = new JoinManager(this); CohortContainerManager = new CohortContainerManager(this); MEF = new MEF(); FilterManager = new AggregateFilterManager(this); EncryptionManager = new PasswordEncryptionKeyLocation(this); PluginManager = new PluginManager(this); CommentStore = new CommentStoreWithKeywords(); ObscureDependencyFinder = new CatalogueObscureDependencyFinder(this); //Shortcuts to improve performance of ConstructEntity (avoids reflection) Constructors.Add(typeof(Catalogue), (rep, r) => new Catalogue((ICatalogueRepository)rep, r)); Constructors.Add(typeof(CohortAggregateContainer), (rep, r) => new CohortAggregateContainer((ICatalogueRepository)rep, r)); Constructors.Add(typeof(CohortIdentificationConfiguration), (rep, r) => new CohortIdentificationConfiguration((ICatalogueRepository)rep, r)); Constructors.Add(typeof(GovernanceDocument), (rep, r) => new GovernanceDocument((ICatalogueRepository)rep, r)); Constructors.Add(typeof(GovernancePeriod), (rep, r) => new GovernancePeriod((ICatalogueRepository)rep, r)); Constructors.Add(typeof(StandardRegex), (rep, r) => new StandardRegex((ICatalogueRepository)rep, r)); Constructors.Add(typeof(AnyTableSqlParameter), (rep, r) => new AnyTableSqlParameter((ICatalogueRepository)rep, r)); Constructors.Add(typeof(Curation.Data.Plugin), (rep, r) => new Curation.Data.Plugin((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ANOTable), (rep, r) => new ANOTable((ICatalogueRepository)rep, r)); Constructors.Add(typeof(AggregateConfiguration), (rep, r) => new AggregateConfiguration((ICatalogueRepository)rep, r)); Constructors.Add(typeof(AggregateContinuousDateAxis), (rep, r) => new AggregateContinuousDateAxis((ICatalogueRepository)rep, r)); Constructors.Add(typeof(AggregateDimension), (rep, r) => new AggregateDimension((ICatalogueRepository)rep, r)); Constructors.Add(typeof(AggregateFilter), (rep, r) => new AggregateFilter((ICatalogueRepository)rep, r)); Constructors.Add(typeof(AggregateFilterContainer), (rep, r) => new AggregateFilterContainer((ICatalogueRepository)rep, r)); Constructors.Add(typeof(AggregateFilterParameter), (rep, r) => new AggregateFilterParameter((ICatalogueRepository)rep, r)); Constructors.Add(typeof(CatalogueItem), (rep, r) => new CatalogueItem((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ColumnInfo), (rep, r) => new ColumnInfo((ICatalogueRepository)rep, r)); Constructors.Add(typeof(JoinableCohortAggregateConfiguration), (rep, r) => new JoinableCohortAggregateConfiguration((ICatalogueRepository)rep, r)); Constructors.Add(typeof(JoinableCohortAggregateConfigurationUse), (rep, r) => new JoinableCohortAggregateConfigurationUse((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ExternalDatabaseServer), (rep, r) => new ExternalDatabaseServer((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ExtractionFilter), (rep, r) => new ExtractionFilter((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ExtractionFilterParameter), (rep, r) => new ExtractionFilterParameter((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ExtractionInformation), (rep, r) => new ExtractionInformation((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ExtractionFilterParameterSet), (rep, r) => new ExtractionFilterParameterSet((ICatalogueRepository)rep, r)); Constructors.Add(typeof(LoadMetadata), (rep, r) => new LoadMetadata((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ExtractionFilterParameterSetValue), (rep, r) => new ExtractionFilterParameterSetValue((ICatalogueRepository)rep, r)); Constructors.Add(typeof(LoadModuleAssembly), (rep, r) => new LoadModuleAssembly((ICatalogueRepository)rep, r)); Constructors.Add(typeof(LoadProgress), (rep, r) => new LoadProgress((ICatalogueRepository)rep, r)); Constructors.Add(typeof(Favourite), (rep, r) => new Favourite((ICatalogueRepository)rep, r)); Constructors.Add(typeof(Pipeline), (rep, r) => new Pipeline((ICatalogueRepository)rep, r)); Constructors.Add(typeof(Lookup), (rep, r) => new Lookup((ICatalogueRepository)rep, r)); Constructors.Add(typeof(AggregateTopX), (rep, r) => new AggregateTopX((ICatalogueRepository)rep, r)); Constructors.Add(typeof(PipelineComponent), (rep, r) => new PipelineComponent((ICatalogueRepository)rep, r)); Constructors.Add(typeof(LookupCompositeJoinInfo), (rep, r) => new LookupCompositeJoinInfo((ICatalogueRepository)rep, r)); Constructors.Add(typeof(PipelineComponentArgument), (rep, r) => new PipelineComponentArgument((ICatalogueRepository)rep, r)); Constructors.Add(typeof(PreLoadDiscardedColumn), (rep, r) => new PreLoadDiscardedColumn((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ProcessTask), (rep, r) => new ProcessTask((ICatalogueRepository)rep, r)); Constructors.Add(typeof(DashboardLayout), (rep, r) => new DashboardLayout((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ProcessTaskArgument), (rep, r) => new ProcessTaskArgument((ICatalogueRepository)rep, r)); Constructors.Add(typeof(DashboardControl), (rep, r) => new DashboardControl((ICatalogueRepository)rep, r)); Constructors.Add(typeof(DataAccessCredentials), (rep, r) => new DataAccessCredentials((ICatalogueRepository)rep, r)); Constructors.Add(typeof(SupportingDocument), (rep, r) => new SupportingDocument((ICatalogueRepository)rep, r)); Constructors.Add(typeof(DashboardObjectUse), (rep, r) => new DashboardObjectUse((ICatalogueRepository)rep, r)); Constructors.Add(typeof(SupportingSQLTable), (rep, r) => new SupportingSQLTable((ICatalogueRepository)rep, r)); Constructors.Add(typeof(TableInfo), (rep, r) => new TableInfo((ICatalogueRepository)rep, r)); Constructors.Add(typeof(RemoteRDMP), (rep, r) => new RemoteRDMP((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ObjectImport), (rep, r) => new ObjectImport((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ObjectExport), (rep, r) => new ObjectExport((ICatalogueRepository)rep, r)); Constructors.Add(typeof(CacheProgress), (rep, r) => new CacheProgress((ICatalogueRepository)rep, r)); Constructors.Add(typeof(ConnectionStringKeyword), (rep, r) => new ConnectionStringKeyword((ICatalogueRepository)rep, r)); Constructors.Add(typeof(WindowLayout), (rep, r) => new WindowLayout((ICatalogueRepository)rep, r)); Constructors.Add(typeof(PermissionWindow), (rep, r) => new PermissionWindow((ICatalogueRepository)rep, r)); Constructors.Add(typeof(TicketingSystemConfiguration), (rep, r) => new TicketingSystemConfiguration((ICatalogueRepository)rep, r)); Constructors.Add(typeof(CacheFetchFailure), (rep, r) => new CacheFetchFailure((ICatalogueRepository)rep, r)); }