예제 #1
0
    public void Skips_BothWindowsAndLinux()
    {
        // Act
        var osSkipAttribute      = new OSSkipConditionAttribute(OperatingSystems.Linux | OperatingSystems.Windows, OperatingSystems.Windows);
        var osSkipAttributeLinux = new OSSkipConditionAttribute(OperatingSystems.Linux | OperatingSystems.Windows, OperatingSystems.Linux);

        // Assert
        Assert.False(osSkipAttribute.IsMet);
        Assert.False(osSkipAttributeLinux.IsMet);
    }
예제 #2
0
    public void Skips_BothMacOSXAndLinux()
    {
        // Act
        var osSkipAttributeLinux  = new OSSkipConditionAttribute(OperatingSystems.Linux | OperatingSystems.MacOSX, OperatingSystems.Linux);
        var osSkipAttributeMacOSX = new OSSkipConditionAttribute(OperatingSystems.Linux | OperatingSystems.MacOSX, OperatingSystems.MacOSX);

        // Assert
        Assert.False(osSkipAttributeLinux.IsMet);
        Assert.False(osSkipAttributeMacOSX.IsMet);
    }
예제 #3
0
    public void Skips_BothMacOSXAndWindows()
    {
        // Act
        var osSkipAttribute       = new OSSkipConditionAttribute(OperatingSystems.Windows | OperatingSystems.MacOSX, OperatingSystems.Windows);
        var osSkipAttributeMacOSX = new OSSkipConditionAttribute(OperatingSystems.Windows | OperatingSystems.MacOSX, OperatingSystems.MacOSX);

        // Assert
        Assert.False(osSkipAttribute.IsMet);
        Assert.False(osSkipAttributeMacOSX.IsMet);
    }
예제 #4
0
    public void Skips_WhenOperatingSystemMatches()
    {
        // Act
        var osSkipAttribute = new OSSkipConditionAttribute(
            OperatingSystems.Windows,
            OperatingSystems.Windows);

        // Assert
        Assert.False(osSkipAttribute.IsMet);
    }
예제 #5
0
    public void DoesNotSkip_WhenOperatingSystemDoesNotMatch()
    {
        // Act
        var osSkipAttribute = new OSSkipConditionAttribute(
            OperatingSystems.Linux,
            OperatingSystems.Windows);

        // Assert
        Assert.True(osSkipAttribute.IsMet);
    }
예제 #6
0
        public void Skips_WhenVersionsMatchesOutOfMultiple()
        {
            // Arrange
            var env = new MockRuntimeEnvironment("Windows", "2.5");

            // Act
            var osSkipAttribute = new OSSkipConditionAttribute(OperatingSystems.Windows, env, "10.0", "3.4", "2.5");

            // Assert
            Assert.False(osSkipAttribute.IsMet);
        }
예제 #7
0
        public void Skips_WhenVersionsMatches(string currentOSVersion, string skipVersion)
        {
            // Arrange
            var env = new MockRuntimeEnvironment("Windows", currentOSVersion);

            // Act
            var osSkipAttribute = new OSSkipConditionAttribute(OperatingSystems.Windows, env, skipVersion);

            // Assert
            Assert.False(osSkipAttribute.IsMet);
        }
예제 #8
0
        public void DoesNotSkip_WhenOnlyVersionsMatch()
        {
            // Arrange
            var env = new MockRuntimeEnvironment("Windows", "2.5");

            // Act
            var osSkipAttribute = new OSSkipConditionAttribute(OperatingSystems.Linux, env, "2.5");

            // Assert
            Assert.True(osSkipAttribute.IsMet);
        }
예제 #9
0
        public void Skips_WhenOnlyOperatingSystemIsSupplied()
        {
            // Arrange
            var env = new MockRuntimeEnvironment("Windows", "2.5");

            // Act
            var osSkipAttribute = new OSSkipConditionAttribute(OperatingSystems.Windows, env);

            // Assert
            Assert.False(osSkipAttribute.IsMet);
        }
예제 #10
0
        public void Throws_OnUnrecognizedOperatingSystem()
        {
            // Arrange
            var osName = "Blah";
            var env    = new MockRuntimeEnvironment(osName, "2.5");

            // Act
            var osSkipAttribute = new OSSkipConditionAttribute(OperatingSystems.Windows, env);

            // Assert
            var exception = Assert.Throws <InvalidOperationException>(() => osSkipAttribute.IsMet);

            Assert.Equal($"Unrecognized operating system '{osName}'.", exception.Message);
        }