public void Overwrite_Should_Be_False_By_Default()
        {
            // Given, When
            var settings = new UniversalPackageInstallSettings("package.id", "http://proget.com/upack/feed", "./folder/test.upack");

            // Then
            Assert.False(settings.Overwrite);
        }
            public void HasVersionShouldBeTrueIfVersionIsNotNullOrWhitespace(string version, bool expected)
            {
                var settings = new UniversalPackageInstallSettings("package.id", "http://proget.com/upack/feed", "./folder/test.upack")
                {
                    Version = version
                };

                settings.HasVersion().Should().Be(expected);
            }
            public void Both_Username_And_Password_Must_Be_Specified_To_Be_Considered_Valid(string username, string password, bool expected)
            {
                var settings = new UniversalPackageInstallSettings("package.id", "http://proget.com/upack/feed", "./folder/test.upack")
                {
                    UserName = username, Password = password
                };

                settings.AreCredentialsValid().Should().Be(expected);
            }
        public static void Install(this ICakeContext context, UniversalPackageInstallSettings settings)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var resolver = new UPackToolResolver(context.FileSystem, context.Environment, context.Tools);
            var runner   = new UniversalPackageInstaller(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools, resolver);

            runner.Execute(settings);
        }