public void Should_Set_Source_Specified_In_Directive_As_Primary_But_Not_For_Settings() { var nugetV3Api = "https://api.nuget.org/v3/index.json"; var nugetV2Api = "https://packages.nuget.org/api/v2"; var primaryApi = "https://foo.bar/api.json"; var package = new PackageReference($"nuget:{primaryApi}?package=First.Package"); var settings = new FakeNuGetSettings(); settings.AddOrUpdate(ConfigurationConstants.PackageSources, new SourceItem("V3", nugetV3Api)); settings.AddOrUpdate(ConfigurationConstants.PackageSources, new SourceItem("V2", nugetV2Api)); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = string.Empty, }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package, "/Work/packages/"); Assert.Single(provider.PrimaryRepositories); Assert.Contains(provider.PrimaryRepositories, p => p.PackageSource.Source == primaryApi); Assert.Equal(3, provider.Repositories.Count()); Assert.Contains(provider.Repositories, p => p.PackageSource.Source == primaryApi); Assert.Contains(provider.Repositories, p => p.PackageSource.Source == nugetV2Api); Assert.Contains(provider.Repositories, p => p.PackageSource.Source == nugetV3Api); }
public void Should_Set_Source_From_Settings_If_Cake_Config_Source_Is_Not_Provided() { var settingsApi = "https://foo.bar/api.json"; var package = new PackageReference($"nuget:?package=First.Package"); var settings = Substitute.For <ISettings>(); var settingSection = Activator.CreateInstance( type: typeof(VirtualSettingSection), bindingAttr: System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance, binder: null, args: new object[] { ConfigurationConstants.PackageSources, (IReadOnlyDictionary <string, string>)null, new[] { new SourceItem("foobar", settingsApi) } }, culture: null); settings.GetSection(ConfigurationConstants.PackageSources).Returns(settingSection); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = string.Empty, }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package); Assert.Single(provider.GetRepositories()); Assert.Contains(provider.GetRepositories(), p => p.PackageSource.Source == settingsApi); }
public void Should_Use_Feed_Specified_In_NuGet_Config_If_Available() { var feed = "https://foo.bar/api.json"; var package = new PackageReference($"nuget:{feed}?package=First.Package"); var settings = Substitute.For <ISettings>(); settings.GetSettingValues(ConfigurationConstants.PackageSources, Arg.Any <bool>()) .Returns(new List <SettingValue> { new SettingValue("foobar", feed, false) }); settings.GetNestedValues(ConfigurationConstants.CredentialsSectionName, "foobar") .Returns(new Dictionary <string, string>() { ["Username"] = "******", ["ClearTextPassword"] = "******" }.ToList()); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = string.Empty, }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package); Assert.Single(provider.GetRepositories()); Assert.Contains(provider.GetRepositories(), p => p.PackageSource.Source == feed && p.PackageSource.Credentials.Username == "*****@*****.**" && p.PackageSource.Credentials.Password == "p455w0rdz"); }
static CakeAPI() { var env = new CakeEnvironment(new CakePlatform(), new CakeRuntime()); var fileSystem = new FileSystem(); var verbosity = Verbosity.Normal; if (Startup.HasArgument("cake-verbosity")) { verbosity = Enum.Parse <Verbosity>(Startup.Argument("cake-verbosity")); } var cakeLog = new CakeBuildLog(new CakeConsole(env), verbosity); var cakeConfiguration = new CakeConfiguration(new Dictionary <string, string>()); var toolRepos = new ToolRepository(env); Globber = new Globber(fileSystem, env); var cakeDataService = new CakeDataService(); var registry = new WindowsRegistry(); var toolLocator = new ToolLocator(env, toolRepos, new ToolResolutionStrategy(fileSystem, env, Globber, cakeConfiguration, cakeLog)); var cakeArgs = new CakeArguments(new List <string>().ToLookup(x => x)); var procRunner = new ProcessRunner(fileSystem, env, cakeLog, toolLocator, cakeConfiguration); Context = new CakeContext(fileSystem, env, Globber, cakeLog, cakeArgs, procRunner, registry, toolLocator, cakeDataService, cakeConfiguration); }
public void Should_Set_Source_Specified_In_Directive_As_Primary_But_Not_For_Settings() { var nugetV3Api = "https://api.nuget.org/v3/index.json"; var nugetV2Api = "https://packages.nuget.org/api/v2"; var primaryApi = "https://foo.bar/api.json"; var package = new PackageReference($"nuget:{primaryApi}?package=First.Package"); var settings = Substitute.For <ISettings>(); settings.GetSettingValues(ConfigurationConstants.PackageSources, Arg.Any <bool>()) .Returns(new List <SettingValue> { new SettingValue("V3", nugetV3Api, true), new SettingValue("V2", nugetV2Api, true), }); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = string.Empty, }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package); Assert.Single(provider.GetPrimaryRepositories()); Assert.Contains(provider.GetPrimaryRepositories(), p => p.PackageSource.Source == primaryApi); Assert.Equal(3, provider.GetRepositories().Count()); Assert.Contains(provider.GetRepositories(), p => p.PackageSource.Source == primaryApi); Assert.Contains(provider.GetRepositories(), p => p.PackageSource.Source == nugetV2Api); Assert.Contains(provider.GetRepositories(), p => p.PackageSource.Source == nugetV3Api); }
public void Should_Set_Settings_Source_As_Primary_If_Not_Specified_In_Directive() { var nugetV3Api = "https://api.nuget.org/v3/index.json"; var nugetV2Api = "https://packages.nuget.org/api/v2"; var package = new PackageReference($"nuget:?package=First.Package"); var settings = Substitute.For <ISettings>(); var settingSection = Activator.CreateInstance( type: typeof(VirtualSettingSection), bindingAttr: System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance, binder: null, args: new object[] { ConfigurationConstants.PackageSources, (IReadOnlyDictionary <string, string>)null, new[] { new SourceItem("V3", nugetV3Api), new SourceItem("V2", nugetV2Api) } }, culture: null); settings.GetSection(ConfigurationConstants.PackageSources).Returns(settingSection); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = string.Empty, }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package); Assert.Equal(2, provider.GetPrimaryRepositories().Count()); Assert.Contains(provider.GetPrimaryRepositories(), p => p.PackageSource.Source == nugetV2Api); Assert.Contains(provider.GetPrimaryRepositories(), p => p.PackageSource.Source == nugetV3Api); }
public void Should_Throw_If_Settings_Is_Null() { var configuration = new CakeConfiguration(new Dictionary <string, string>()); var package = new PackageReference("nuget:?package=First.Package"); var result = Record.Exception(() => new NuGetSourceRepositoryProvider(null, configuration, package)); AssertEx.IsArgumentNullException(result, "settings"); }
public void Should_Throw_If_PackageReference_Is_Null() { var configuration = new CakeConfiguration(new Dictionary <string, string>()); var settings = Substitute.For <ISettings>(); var result = Record.Exception(() => new NuGetSourceRepositoryProvider(settings, configuration, null)); AssertEx.IsArgumentNullException(result, "package"); }
public void Should_Not_Throw_For_Null_NuGet_Source_Value_In_CakeConfiguration() { var package = new PackageReference("nuget:?package=First.Package"); var settings = Substitute.For <ISettings>(); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = null, }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package); Assert.Empty(provider.GetRepositories()); }
public void Should_Use_Feed_Specified_In_NuGet_Config_If_Available() { var feed = "https://foo.bar/api.json"; var package = new PackageReference($"nuget:{feed}?package=First.Package"); var settings = Substitute.For <ISettings>(); var packageSourceSection = Activator.CreateInstance( type: typeof(VirtualSettingSection), bindingAttr: System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance, binder: null, args: new object[] { ConfigurationConstants.PackageSources, (IReadOnlyDictionary <string, string>)null, new[] { new SourceItem("foobar", feed) } }, culture: null); var credentialSection = Activator.CreateInstance( type: typeof(VirtualSettingSection), bindingAttr: System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance, binder: null, args: new object[] { ConfigurationConstants.CredentialsSectionName, (IReadOnlyDictionary <string, string>)null, new[] { new CredentialsItem("foobar", "*****@*****.**", "p455w0rdz", true) } }, culture: null); settings.GetSection(ConfigurationConstants.PackageSources).Returns(packageSourceSection); settings.GetSection(ConfigurationConstants.CredentialsSectionName).Returns(credentialSection); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = string.Empty, }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package); Assert.Single(provider.GetRepositories()); Assert.Contains(provider.GetRepositories(), p => p.PackageSource.Source == feed && p.PackageSource.Credentials.Username == "*****@*****.**" && p.PackageSource.Credentials.Password == "p455w0rdz"); }
public void Should_Ignore_Trailing_Separator_For_NuGet_Source_Argument() { var nugetV2Api = "https://packages.nuget.org/api/v2"; var package = new PackageReference("nuget:?package=First.Package"); var settings = Substitute.For <ISettings>(); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = nugetV2Api + ";", }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package); Assert.Single(provider.GetRepositories()); Assert.Contains(provider.GetRepositories(), p => p.PackageSource.Source == nugetV2Api); }
public void SetupBot() { _logger.Log(Type.Info, "Setting up Cake"); var config = new DiscordSocketConfig() { GatewayIntents = GatewayIntents.All }; _client = new DiscordShardedClient(config); _commandHandler = new CommandHandler(_client, new SetupServices().ReturnProvider()); _cakeConfiguration = new CakeConfiguration(); _ = new Database.Init(); Running = false; }
public void Should_Set_Configuration_Source_As_Primary_If_Not_Specified_In_Directive() { var nugetV3Api = "https://api.nuget.org/v3/index.json"; var nugetV2Api = "https://packages.nuget.org/api/v2"; var package = new PackageReference($"nuget:?package=First.Package"); var settings = Substitute.For <ISettings>(); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = $"{nugetV3Api};{nugetV2Api}", }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package); Assert.Equal(2, provider.GetPrimaryRepositories().Count()); Assert.Contains(provider.GetPrimaryRepositories(), p => p.PackageSource.Source == nugetV2Api); Assert.Contains(provider.GetPrimaryRepositories(), p => p.PackageSource.Source == nugetV3Api); }
public CakeFixture() { var env = FakeEnvironment.CreateUnixEnvironment(); FileSystem = new FakeFileSystem(env); var globber = new Globber(FileSystem, env); var log = new NullLog(); var reg = new WindowsRegistry(); var config = new CakeConfiguration(new Dictionary <string, string>()); var strategy = new ToolResolutionStrategy(FileSystem, env, globber, config, log); var toolLocator = new ToolLocator(env, new ToolRepository(env), strategy); var cakeDataService = new FakeDataService(); var runner = new ProcessRunner(FileSystem, env, log, toolLocator, config); var args = new FakeArguments(); Context = new CakeContext(FileSystem, env, globber, log, args, runner, reg, toolLocator, cakeDataService, config); }
public void Should_Split_Multiple_NuGet_Sources_Into_Multiple_Repositories() { var nugetV3Api = "https://api.nuget.org/v3/index.json"; var nugetV2Api = "https://packages.nuget.org/api/v2"; var package = new PackageReference("nuget:?package=First.Package"); var settings = Substitute.For <ISettings>(); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = nugetV2Api + ";" + nugetV3Api, }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package); Assert.Equal(2, provider.GetRepositories().Count()); Assert.Contains(provider.GetRepositories(), p => p.PackageSource.Source == nugetV2Api); Assert.Contains(provider.GetRepositories(), p => p.PackageSource.Source == nugetV3Api); }
public static IScriptHost GetScriptHost() { IFileSystem fileSystem = new FileSystem(); ICakeDataService data = new CakeDataService(); ICakeEnvironment environment = new CakeEnvironment( new CakePlatform(), new CakeRuntime() ); var console = new CakeConsole(environment); ICakeLog log = new CakeBuildLog(console); IGlobber globber = new Globber(fileSystem, environment); ICakeArguments arguments = new CakeArguments(BridgeArgumentParser.GetParsedCommandLine()); ICakeConfiguration configuration = new CakeConfiguration(new Dictionary <string, string>()); IToolLocator tools = new ToolLocator( environment, new ToolRepository(environment), new ToolResolutionStrategy( fileSystem, environment, globber, configuration, log ) ); ICakeContext context = new CakeContext( fileSystem, environment, globber, log, arguments, new ProcessRunner(fileSystem, environment, log, tools, configuration), new WindowsRegistry(), tools, data, configuration ); return(new BridgeScriptHost( new CakeEngine(data, log), context, new DefaultExecutionStrategy(log), new CakeReportPrinter(console, context), arguments )); }
public void Should_Set_Source_From_Settings_If_Cake_Config_Source_Is_Not_Provided() { var settingsApi = "https://foo.bar/api.json"; var package = new PackageReference($"nuget:?package=First.Package"); var settings = new FakeNuGetSettings(); settings.AddOrUpdate(ConfigurationConstants.PackageSources, new SourceItem("foobar", settingsApi)); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = string.Empty, }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package, "/Work/packages/"); Assert.Single(provider.Repositories); Assert.Contains(provider.Repositories, p => p.PackageSource.Source == settingsApi); }
internal UrlLoadDirectiveProviderFixture() { Environment = FakeEnvironment.CreateUnixEnvironment(); FileSystem = new FakeFileSystem(Environment); ProcessRunner = Substitute.For <IProcessRunner>(); LoadedReferences = new Dictionary <string, string>(); ScriptAnalyzerContext = Substitute.For <IScriptAnalyzerContext>(); ScriptAnalyzerContext.Root.Returns(new FilePath(System.IO.Directory.GetCurrentDirectory())); ScriptAnalyzerContext .WhenForAnyArgs(x => x.Analyze(Arg.Any <FilePath>())) .Do(c => { var fp = c.Arg <FilePath>(); LoadedReferences[fp.FullPath] = System.IO.File.ReadAllText(fp.FullPath); }); Log = new FakeLog(); Config = new CakeConfiguration(new Dictionary <string, string> ()); }
public void Should_Set_Source_From_Settings_If_Cake_Config_Source_Is_Not_Provided() { var settingsApi = "https://foo.bar/api.json"; var package = new PackageReference($"nuget:?package=First.Package"); var settings = Substitute.For <ISettings>(); settings.GetSettingValues(ConfigurationConstants.PackageSources, Arg.Any <bool>()) .Returns(new List <SettingValue> { new SettingValue("foobar", settingsApi, true) }); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = string.Empty, }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package); Assert.Single(provider.GetRepositories()); Assert.Contains(provider.GetRepositories(), p => p.PackageSource.Source == settingsApi); }
public void Should_Not_Set_Source_From_Settings_If_Cake_Config_Source_Is_Provided() { var nugetV3Api = "https://api.nuget.org/v3/index.json"; var nugetV2Api = "https://packages.nuget.org/api/v2"; var settingsApi = "https://foo.bar/api.json"; var package = new PackageReference($"nuget:?package=First.Package"); var settings = new FakeNuGetSettings(); settings.AddOrUpdate(ConfigurationConstants.PackageSources, new SourceItem("foobar", settingsApi)); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = $"{nugetV3Api};{nugetV2Api}", }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package, "/Work/packages/"); Assert.Equal(2, provider.Repositories.Count()); Assert.Contains(provider.Repositories, p => p.PackageSource.Source == nugetV2Api); Assert.Contains(provider.Repositories, p => p.PackageSource.Source == nugetV3Api); }
public void Should_Use_Feed_Specified_In_NuGet_Config_If_Available() { var feed = "https://foo.bar/api.json"; var package = new PackageReference($"nuget:{feed}?package=First.Package"); var settings = new FakeNuGetSettings(); settings.AddOrUpdate(ConfigurationConstants.PackageSources, new SourceItem("foobar", feed)); settings.AddOrUpdate(ConfigurationConstants.CredentialsSectionName, new CredentialsItem("foobar", "*****@*****.**", "p455w0rdz", true, "foo")); var configuration = new CakeConfiguration(new Dictionary <string, string>() { [Constants.NuGet.Source] = string.Empty, }); var provider = new NuGetSourceRepositoryProvider(settings, configuration, package, "/Work/packages/"); Assert.Single(provider.Repositories); Assert.Contains(provider.Repositories, p => p.PackageSource.Source == feed && p.PackageSource.Credentials.Username == "*****@*****.**" && p.PackageSource.Credentials.Password == "p455w0rdz"); }