public void Ctor_ResultNull_Error()
		{
			CustomAssert.ThrowsException<ArgumentNullException>(() =>
			{
				ParameterValidationResult result = new ParameterValidationResult(null);
			});
		}
		public void Ctor_IntStringConstraint_Success()
		{
			ParameterValidationResult result = new ParameterValidationResult(42, Constants.ErrorMessage, new DummyConstraint());
			Assert.AreEqual(42, result.HResult);
			Assert.AreEqual(Constants.ErrorMessage, result.ErrorMessage);
			Assert.IsNotNull(result.Constraint);
			Assert.IsFalse(result.MemberNames.GetEnumerator().MoveNext());
		}
コード例 #3
0
        /// <summary>
        /// Validates the host parameters and ensures a connection can be made to the server
        /// </summary>
        /// <param name="configParameters">The configuration parameters from the user interface</param>
        /// <param name="page">The configuration page</param>
        /// <returns>A ParameterValidationResult containing the validation status</returns>
        public static ParameterValidationResult ValidateHost(KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            ParameterValidationResult myResults = new ParameterValidationResult();

            if (string.IsNullOrWhiteSpace(configParameters[MAParameterNames.HostName].Value))
            {
                myResults.Code           = ParameterValidationResultCode.Failure;
                myResults.ErrorMessage   = "The hostname cannot be blank";
                myResults.ErrorParameter = MAParameterNames.HostName;
                return(myResults);
            }

            int result = 0;

            if (!int.TryParse(configParameters[MAParameterNames.Port].Value, out result))
            {
                myResults.Code           = ParameterValidationResultCode.Failure;
                myResults.ErrorMessage   = "The port number must be an integer";
                myResults.ErrorParameter = MAParameterNames.Port;
                return(myResults);
            }
            else if (result <= 0)
            {
                myResults.Code           = ParameterValidationResultCode.Failure;
                myResults.ErrorMessage   = "The port number must be an integer greater than 0";
                myResults.ErrorParameter = MAParameterNames.Port;
                return(myResults);
            }

            try
            {
                SshConnection.OpenSshConnection(new MAParameters(configParameters));
                SshConnection.CloseSshConnection();
            }
            catch (Exception ex)
            {
                myResults.Code           = ParameterValidationResultCode.Failure;
                myResults.ErrorMessage   = "Could not connect to the target server\n" + ex.Message;
                myResults.ErrorParameter = MAParameterNames.HostName;
                return(myResults);
            }

            myResults.Code = ParameterValidationResultCode.Success;

            return(myResults);
        }
コード例 #4
0
        /// <summary>
        /// Validates the values provided in the UI for the supplied configuration parameters
        /// </summary>
        /// <param name="configParameters">The list of configuration parameters</param>
        /// <param name="page">The page to get the configuration parameters for</param>
        /// <returns>A ParameterValidationResult object containing the results of the validation</returns>
        ParameterValidationResult IMAExtensible2GetParameters.ValidateConfigParameters(KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            ParameterValidationResult myResults = new ParameterValidationResult();

            myResults = MAParameterValidator.ValidateConfigFile(configParameters, page);

            if (myResults.Code != ParameterValidationResultCode.Success)
            {
                return(myResults);
            }

            myResults = MAParameterValidator.ValidateHost(configParameters, page);

            if (myResults.Code != ParameterValidationResultCode.Success)
            {
                return(myResults);
            }

            myResults.Code = ParameterValidationResultCode.Success;
            return(myResults);
        }
コード例 #5
0
        public ParameterValidationResult ValidateConfigParameters(System.Collections.ObjectModel.KeyedCollection <string, ConfigParameter> configParameters, ConfigParameterPage page)
        {
            ParameterValidationResult myResults = new ParameterValidationResult();

            return(myResults);
        }
コード例 #6
0
        public void ValidateEBIWuBlastManadatoryParams()
        {
            // Gets the search query parameter and their values.
            string querySequence = utilityObj.xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.QuerySequency);
            string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.DatabaseValue);
            string queryProgramValue = utilityObj.xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.ProgramValue);
            string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.DatabaseParameter);
            string queryProgramParameter = utilityObj.xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.ProgramParameter);
            string emailParameter = utilityObj.xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.Emailparameter);
            string email = utilityObj.xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.EmailAdress);
            string alphabetName = utilityObj.xmlUtil.GetTextValue(
                Constants.EbiAsynchronousResultsNode, Constants.AlphabetNameNode);

            // Set Service confiruration parameters true.
            IBlastServiceHandler service = null;

            try
            {
                service = new EbiWuBlastHandler();
                ConfigParameters configParameters = new ConfigParameters();
                configParameters.UseBrowserProxy = true;
                service.Configuration            = configParameters;

                // Create search parameters object.
                BlastParameters ebiParams = new BlastParameters();

                // Add mandatory parameter values to search query parameters.
                //ebiParams.Add(querySequenceParameter, querySequence);
                ebiParams.Add(queryDatabaseParameter, queryDatabaseValue);
                ebiParams.Add(queryProgramParameter, queryProgramValue);
                ebiParams.Add(emailParameter, email);
                ebiParams.Add("SequenceType",
                              alphabetName.ToLower(CultureInfo.CurrentCulture).Replace("ambiguous", ""));

                // Validate search query parameters.
                ParameterValidationResult validateParameters =
                    EbiWuBlastHandler.ValidateParameters(ebiParams);
                bool result = validateParameters.IsValid;

                Assert.IsTrue(result);
                // Assert.IsTrue(ebiParams.Settings.ContainsValue(querySequence));
                Assert.IsTrue(ebiParams.Settings.ContainsValue(queryDatabaseValue));
                Assert.IsTrue(ebiParams.Settings.ContainsValue(queryProgramValue));
                Assert.IsTrue(ebiParams.Settings.ContainsValue(email));
                Assert.AreEqual(ebiParams.Settings.Count, 4);

                // Logs to the VSTest GUI (Console.Out) window
                Console.WriteLine(string.Format((IFormatProvider)null,
                                                "Ebi Blast BVT: Query Sequence{0} is as expected.", querySequence));
                Console.WriteLine(string.Format((IFormatProvider)null,
                                                "Ebi Blast BVT: DataBase Value{0} is as expected.", queryDatabaseValue));
                Console.WriteLine(string.Format((IFormatProvider)null,
                                                "Ebi Blast BVT: Program Value {0} is as expected.", queryProgramValue));
            }
            catch (Exception ex) { Assert.Fail(ex.Message); }
            finally
            {
                if (service != null)
                {
                    ((IDisposable)service).Dispose();
                }
            }
        }
コード例 #7
0
        public void ValidateEBIWuBlastManadatoryParams()
        {
            // Gets the search query parameter and their values.
            string querySequence = _utilityObj._xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.QuerySequency);
            string queryDatabaseValue = _utilityObj._xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.DatabaseValue);
            string queryProgramValue = _utilityObj._xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.ProgramValue);
            string queryDatabaseParameter = _utilityObj._xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.DatabaseParameter);
            string queryProgramParameter = _utilityObj._xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.ProgramParameter);
            string emailParameter = _utilityObj._xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.Emailparameter);
            string email = _utilityObj._xmlUtil.GetTextValue(
                Constants.BlastParametersNode, Constants.EmailAdress);

            // Set Service confiruration parameters true.
            IBlastServiceHandler service = null;

            try
            {
                service = new EbiWuBlastHandler();
                ConfigParameters configParameters = new ConfigParameters();
                configParameters.UseBrowserProxy = true;
                service.Configuration            = configParameters;

                // Create search parameters object.
                BlastParameters ebiParams = new BlastParameters();

                // Add mandatory parameter values to search query parameters.
                //ebiParams.Add(querySequenceParameter, querySequence);
                ebiParams.Add(queryDatabaseParameter, queryDatabaseValue);
                ebiParams.Add(queryProgramParameter, queryProgramValue);
                ebiParams.Add(emailParameter, email);

                // Validate search query parameters.
                ParameterValidationResult validateParameters =
                    EbiWuBlastHandler.ValidateParameters(ebiParams);
                bool result = validateParameters.IsValid;

                Assert.IsTrue(result);
                // Assert.IsTrue(ebiParams.Settings.ContainsValue(querySequence));
                Assert.IsTrue(ebiParams.Settings.ContainsValue(queryDatabaseValue));
                Assert.IsTrue(ebiParams.Settings.ContainsValue(queryProgramValue));
                Assert.IsTrue(ebiParams.Settings.ContainsValue(email));
                Assert.AreEqual(ebiParams.Settings.Count, 3);

                // Logs to the NUnit GUI (Console.Out) window
                Console.WriteLine(string.Format((IFormatProvider)null,
                                                "Ebi Blast BVT: Query Sequence{0} is as expected.", querySequence));
                Console.WriteLine(string.Format((IFormatProvider)null,
                                                "Ebi Blast BVT: DataBase Value{0} is as expected.", queryDatabaseValue));
                Console.WriteLine(string.Format((IFormatProvider)null,
                                                "Ebi Blast BVT: Program Value {0} is as expected.", queryProgramValue));
            }
            finally
            {
                if (service != null)
                {
                    ((IDisposable)service).Dispose();
                }
            }
        }
        public ParameterValidationResult ValidateParameters(ConfigParameterPage page)
        {
            ParameterValidationResult result = new ParameterValidationResult {
                Code = ParameterValidationResultCode.Success
            };

            switch (page)
            {
            case ConfigParameterPage.Capabilities:
                break;

            case ConfigParameterPage.Connectivity:
                if (string.IsNullOrWhiteSpace(this.ServiceAccountEmailAddress))
                {
                    result.Code           = ParameterValidationResultCode.Failure;
                    result.ErrorMessage   = "A service account email address is required";
                    result.ErrorParameter = ManagementAgentParametersBase.ServiceAccountEmailAddressParameter;
                    return(result);
                }

                if (string.IsNullOrWhiteSpace(this.UserEmailAddress))
                {
                    result.Code           = ParameterValidationResultCode.Failure;
                    result.ErrorMessage   = "A user email address is required";
                    result.ErrorParameter = ManagementAgentParametersBase.UserEmailAddressParameter;
                    return(result);
                }

                if (string.IsNullOrWhiteSpace(this.Domain))
                {
                    result.Code           = ParameterValidationResultCode.Failure;
                    result.ErrorMessage   = "The primary domain is required";
                    result.ErrorParameter = ManagementAgentParametersBase.DomainParameter;
                    return(result);
                }

                if (string.IsNullOrWhiteSpace(this.KeyFilePath))
                {
                    result.Code           = ParameterValidationResultCode.Failure;
                    result.ErrorMessage   = "A key file is required";
                    result.ErrorParameter = ManagementAgentParametersBase.KeyFilePathParameter;
                    return(result);
                }
                else
                {
                    if (!File.Exists(this.KeyFilePath))
                    {
                        result.Code           = ParameterValidationResultCode.Failure;
                        result.ErrorMessage   = "The specified key file could not be found";
                        result.ErrorParameter = ManagementAgentParametersBase.KeyFilePathParameter;
                        return(result);
                    }
                    else
                    {
                        try
                        {
                            X509Certificate2 cert = this.Certificate;
                        }
                        catch (Exception ex)
                        {
                            result.Code           = ParameterValidationResultCode.Failure;
                            result.ErrorMessage   = "The specified key file could not be opened. " + ex.Message;
                            result.ErrorParameter = ManagementAgentParametersBase.KeyFilePathParameter;
                            return(result);
                        }
                    }
                }

                if (!string.IsNullOrWhiteSpace(this.GroupRegexFilter))
                {
                    try
                    {
                        Regex r = new Regex(this.GroupRegexFilter);
                    }
                    catch (Exception ex)
                    {
                        result.Code           = ParameterValidationResultCode.Failure;
                        result.ErrorMessage   = "The specified group regular expression was not valid. " + ex.Message;
                        result.ErrorParameter = ManagementAgentParametersBase.GroupRegexFilterParameter;
                        return(result);
                    }
                }

                if (!string.IsNullOrWhiteSpace(this.ContactRegexFilter))
                {
                    try
                    {
                        Regex r = new Regex(this.ContactRegexFilter);
                    }
                    catch (Exception ex)
                    {
                        result.Code           = ParameterValidationResultCode.Failure;
                        result.ErrorMessage   = "The specified contact regular expression was not valid. " + ex.Message;
                        result.ErrorParameter = ManagementAgentParametersBase.ContactRegexFilterParameter;
                        return(result);
                    }
                }

                if (!string.IsNullOrWhiteSpace(this.UserRegexFilter))
                {
                    try
                    {
                        Regex r = new Regex(this.UserRegexFilter);
                    }
                    catch (Exception ex)
                    {
                        result.Code           = ParameterValidationResultCode.Failure;
                        result.ErrorMessage   = "The specified user regular expression was not valid. " + ex.Message;
                        result.ErrorParameter = ManagementAgentParametersBase.UserRegexFilterParameter;
                        return(result);
                    }
                }

                break;

            case ConfigParameterPage.Global:
                break;

            case ConfigParameterPage.Partition:
                break;

            case ConfigParameterPage.RunStep:
                break;

            case ConfigParameterPage.Schema:


                if (this.OrganizationsAttributeFixedTypes.Any())
                {
                    if (!this.OrganizationsAttributeFixedTypes.All(new HashSet <string>().Add))
                    {
                        result.Code           = ParameterValidationResultCode.Failure;
                        result.ErrorMessage   = "The organization types cannot contain duplicates";
                        result.ErrorParameter = ManagementAgentParametersBase.OrganizationsFixedTypeFormatParameter;
                        return(result);
                    }
                }

                if (this.IMsAttributeFixedTypes.Any())
                {
                    if (!this.IMsAttributeFixedTypes.All(new HashSet <string>().Add))
                    {
                        result.Code           = ParameterValidationResultCode.Failure;
                        result.ErrorMessage   = "The IM types cannot contain duplicates";
                        result.ErrorParameter = ManagementAgentParametersBase.IMsFixedTypeFormatParameter;
                        return(result);
                    }
                }

                if (this.AddressesAttributeFixedTypes.Any())
                {
                    if (!this.AddressesAttributeFixedTypes.All(new HashSet <string>().Add))
                    {
                        result.Code           = ParameterValidationResultCode.Failure;
                        result.ErrorMessage   = "The address types cannot contain duplicates";
                        result.ErrorParameter = ManagementAgentParametersBase.AddressesFixedTypeFormatParameter;
                        return(result);
                    }
                }

                if (this.WebsitesAttributeFixedTypes.Any())
                {
                    if (!this.WebsitesAttributeFixedTypes.All(new HashSet <string>().Add))
                    {
                        result.Code           = ParameterValidationResultCode.Failure;
                        result.ErrorMessage   = "The website types cannot contain duplicates";
                        result.ErrorParameter = ManagementAgentParametersBase.WebsitesFixedTypeFormatParameter;
                        return(result);
                    }
                }

                if (this.ExternalIDsAttributeFixedTypes.Any())
                {
                    if (!this.ExternalIDsAttributeFixedTypes.All(new HashSet <string>().Add))
                    {
                        result.Code           = ParameterValidationResultCode.Failure;
                        result.ErrorMessage   = "The external ID types cannot contain duplicates";
                        result.ErrorParameter = ManagementAgentParametersBase.ExternalIDsFixedTypeFormatParameter;
                        return(result);
                    }
                }

                if (this.RelationsAttributeFixedTypes.Any())
                {
                    if (!this.RelationsAttributeFixedTypes.All(new HashSet <string>().Add))
                    {
                        result.Code           = ParameterValidationResultCode.Failure;
                        result.ErrorMessage   = "The relations types field cannot contain duplicates";
                        result.ErrorParameter = ManagementAgentParametersBase.RelationsFixedTypeFormatParameter;
                        return(result);
                    }
                }

                if (this.PhonesAttributeFixedTypes.Any())
                {
                    if (!this.PhonesAttributeFixedTypes.All(new HashSet <string>().Add))
                    {
                        result.Code           = ParameterValidationResultCode.Failure;
                        result.ErrorMessage   = "The phone types cannot contain duplicates";
                        result.ErrorParameter = ManagementAgentParametersBase.PhonesFixedTypeFormatParameter;
                        return(result);
                    }
                }
                break;

            default:
                break;
            }

            return(result);
        }
		public void GetObjectData_InfoNull_Error()
		{
			CustomAssert.ThrowsException<CodedArgumentNullException>(() =>
			{
				ParameterValidationResult result = new ParameterValidationResult(42, Constants.ErrorMessage, new DummyConstraint());
				result.GetObjectData(null, new System.Runtime.Serialization.StreamingContext());
			});
		}
		public void Ctor_SerializationInfo_Success()
		{
			ParameterValidationResult result = new ParameterValidationResult(42, Constants.ErrorMessage, new NerdyDuck.ParameterValidation.Constraints.NullConstraint());
			System.IO.MemoryStream Buffer = SerializationHelper.Serialize(result);
			ParameterValidationResult result2 = SerializationHelper.Deserialize<ParameterValidationResult>(Buffer);

			Assert.AreEqual(42, result2.HResult);
			Assert.AreEqual(Constants.ErrorMessage, result2.ErrorMessage);
			Assert.IsNotNull(result2.Constraint);
		}
		/// <summary>
		/// Initializes a new instance of the <see cref="ParameterValidationResult"/> by using another <see cref="ParameterValidationResult"/> object.
		/// </summary>
		/// <param name="validationResult">The validation result object to copy.</param>
		public ParameterValidationResult(ParameterValidationResult validationResult)
			: base(validationResult)
		{
			if (validationResult == null)
			{
				throw new CodedArgumentNullException(Errors.CreateHResult(ErrorCodes.ParameterValidationResult_ctor_ResultNull), nameof(validationResult));
			}
			mHResult = validationResult.HResult;
			mConstraint = validationResult.Constraint;
		}