protected virtual IEnumerable <UoeDatabaseConnection> GetDatabaseConnections(bool addDatabasesInCurrentDirectory, bool throwWhenNoDatabaseFound) { var nbYield = 0; foreach (var connection in DatabaseConnections.ToNonNullEnumerable().Where(c => !string.IsNullOrEmpty(c))) { foreach (var databaseConnection in UoeDatabaseConnection.GetConnectionStrings(connection)) { nbYield++; yield return(databaseConnection); } } var ope = GetOperator(); foreach (var path in DatabasePaths.ToNonNullEnumerable().Where(d => !string.IsNullOrEmpty(d))) { nbYield++; var loc = new UoeDatabaseLocation(path); loc.ThrowIfNotExist(); yield return(ope.GetDatabaseConnection(loc)); } if (!addDatabasesInCurrentDirectory && throwWhenNoDatabaseFound) { throw new CommandException($"You must specify a database connection string using the option {OptionDatabaseConnectionShortName.PrettyQuote()} or a database path by using the option {OptionDatabaseFileShortName.PrettyQuote()}."); } if (nbYield > 0 || !addDatabasesInCurrentDirectory) { yield break; } foreach (var databaseLocation in GetDatabaseLocationsFromCd(throwWhenNoDatabaseFound)) { databaseLocation.ThrowIfNotExist(); yield return(ope.GetDatabaseConnection(databaseLocation)); } }
public void GetConnectionStrings_Except(string input) { Exception e = null; try { var list = UoeDatabaseConnection.GetConnectionStrings(input); Assert.AreEqual(1, list.Count()); } catch (UoeDatabaseConnectionParseException ex) { e = ex; } Assert.IsNotNull(e); }
public void GetConnectionString(string input, string output) { output = output.Replace(@"""data""", Path.Combine(Directory.GetCurrentDirectory(), "data.db").ToQuotedArg()); Assert.AreEqual(output, new UoeProcessArgs().Append(UoeDatabaseConnection.GetConnectionStrings(input)).ToQuotedArgs()); }
public void GetConnectionStrings_NumberOfCsReturned(string input, int nb) { var list = UoeDatabaseConnection.GetConnectionStrings(input); Assert.AreEqual(nb, list.Count()); }