public void Should_Not_Throw_If_Install_Path_Is_Null()
            {
                // Given
                var fixture = new DNFPackageInstallerFixture();

                fixture.InstallPath = null;

                // When
                var result = Record.Exception(() => fixture.Install());

                // Then
                Assert.Null(result);
            }
            public void Should_Use_Custom_Source_If_RelativeUri_Is_Used()
            {
                var fixture = new DNFPackageInstallerFixture();

                fixture.Package = new PackageReference("dnf:?package=glx-utils");

                // When
                var result = Record.Exception(() => fixture.Install());

                // Then
                Assert.Null(result);
                fixture.Config.Received().GetValue(DNF_CONFIGKEY);
            }
            public void Should_Ignore_Custom_Source_If_AbsoluteUri_Is_Used()
            {
                var fixture = new DNFPackageInstallerFixture();

                fixture.Package = new PackageReference("dnf:http://absolute/?package=windirstat");

                // When
                var result = Record.Exception(() => fixture.Install());

                // Then
                Assert.Null(result);
                fixture.Config.DidNotReceive().GetValue(DNF_CONFIGKEY);
            }
            public void Should_Not_Be_Able_To_Install_If_Scheme_Is_Incorrect()
            {
                // Given
                var fixture = new DNFPackageInstallerFixture();

                fixture.Package = new PackageReference("homebrew:?package=windirstat");

                // When
                var result = fixture.CanInstall();

                // Then
                Assert.False(result);
            }
            public void Should_Be_Able_To_Install_If_Scheme_Is_Correct()
            {
                // Given
                var fixture = new DNFPackageInstallerFixture();

                fixture.Package = new PackageReference("dnf:?package=glxgears");

                // When
                var result = fixture.CanInstall();

                // Then
                Assert.True(result);
            }
            public void Should_Throw_If_URI_Is_Null()
            {
                // Given
                var fixture = new DNFPackageInstallerFixture();

                fixture.Package = null;

                // When
                var result = Record.Exception(() => fixture.CanInstall());

                // Then
                Assert.IsType <ArgumentNullException>(result);
                Assert.Equal("package", ((ArgumentNullException)result).ParamName);
            }
            public void Should_Throw_If_Content_Resolver_Is_Null()
            {
                // Given
                var fixture = new DNFPackageInstallerFixture();

                fixture.ContentResolver = null;

                // When
                var result = Record.Exception(() => fixture.CreateInstaller());

                // Then
                Assert.IsType <ArgumentNullException>(result);
                Assert.Equal("contentResolver", ((ArgumentNullException)result).ParamName);
            }