public void WhenCommandFailsToRunValidationResultIsUnavailable()
        {
            // Prepare
            string        aValidOSVersion = "valid_os_version";
            List <string> validOsVersions = new List <string>()
            {
                aValidOSVersion
            };
            IConfiguration configuration = MockFactory.ConfigurationWithValidOSVersions(validOsVersions);

            var powershellCommandRunnerMockFactory = new Moq.Mock <IPowershellCommandRunner>();

            powershellCommandRunnerMockFactory.Setup(powershellCommandRunner => powershellCommandRunner.AddScript(It.IsAny <string>())).Verifiable();

            PSObject     getCimInstanceResult = new PSObject();
            string       anInvalidOSVersion   = "invalid_os_version";
            PSMemberInfo versionMember        = new PSNoteProperty("version", anInvalidOSVersion);

            getCimInstanceResult.Members.Add(versionMember);
            Collection <PSObject> commandResults = new Collection <PSObject>
            {
                getCimInstanceResult
            };

            powershellCommandRunnerMockFactory.Setup(powershellCommandRunner => powershellCommandRunner.Invoke()).Throws(new Exception());

            // Exercise
            OSVersionValidation osVersionValidation = new OSVersionValidation(configuration);
            IValidationResult   validationResult    = osVersionValidation.ValidateUsing(powershellCommandRunnerMockFactory.Object);

            // Verify
            Assert.StrictEqual <Result>(Result.Unavailable, validationResult.Result);
        }