// Start is called before the first frame update void Start() { ConfigParameters newConfigPrms = new ConfigParameters(); createJointGrid(newConfigPrms); applyParamsToConfig(newConfigPrms); /* * Here are the public variables this script must address: * public List<Vector3> Joints; * public List<int> LoadIndices; //not necessary * public List<int> LoadValues; // not necessary * public List<int> PinIndices; * public List<int> RollingJointIndices; //not necessary * public List<int> MembersFirst; * public List<int> MembersSecond; * The following can still be modified directly in unity (not dependent on grid configuration): * public GameObject VisualJoint; * public GameObject VisualMember; * public GameObject VisualPin; * public GameObject VisualRolling; * public float dt; * public float speed; * * */ }
private static void UpdateHostConfig() { //Logger.Info("Enter"); AddRegisterEntriesInstaller.RegistryEditor regEditor = new AddRegisterEntriesInstaller.RegistryEditor(); if (ConfigHandler.Config.Policies.IsProxyEnabled) { if (PreviousConfig.Policies.IsProxyEnabled != ConfigHandler.Config.Policies.IsProxyEnabled) { regEditor.Start("enable"); } regEditor.Start("recheck"); if (PreviousConfig.ByPassDetails.ByPassString != ConfigHandler.Config.ByPassDetails.ByPassString) { regEditor.Start("proxyoverride", ConfigHandler.Config.ByPassDetails.ByPassString); } } else { if (PreviousConfig.Policies.IsProxyEnabled != ConfigHandler.Config.Policies.IsProxyEnabled) { regEditor.Start("disable"); } } PreviousConfig = ConfigHandler.Config; //Logger.Info("Exit"); }
public static ConfigParameters ConfigLoad() { ConfigParameters config = null; try { using (var stream = File.Open(configPath, FileMode.Open)) { BinaryFormatter bFormatter = new BinaryFormatter(); try { config = (ConfigParameters)bFormatter.Deserialize(stream); } catch (SerializationException) //This must be a new client verion, reset config { config = null; } } } catch (DirectoryNotFoundException) { createDirectory(); } catch (FileNotFoundException) { config = null; //We'll assign a new one. } return(config); }
/// <summary> /// Validate general http request status by /// differnt parameters for Azure web service.. /// <param name="nodeName">different alphabet node name</param> /// </summary> void ValidateGeneralGetRequestStatusMethod(string nodeName) { // Gets the search query parameter and their values. string alphabet = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.AlphabetNameNode); string querySequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseValue); string queryProgramValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramValue); string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseParameter); string queryProgramParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramParameter); string reqId = string.Empty; Sequence seq = new Sequence(Utility.GetAlphabet(alphabet), querySequence); // Set Service confiruration parameters true. IBlastServiceHandler service = new AzureBlastHandler(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; configParams.DefaultTimeout = 5; configParams.Connection = new Uri(Constants.AzureUri); service.Configuration = configParams; // Create search parameters object. BlastParameters searchParams = new BlastParameters(); // Add mandatory parameter values to search query parameters. searchParams.Add(queryProgramParameter, queryProgramValue); searchParams.Add(queryDatabaseParameter, queryDatabaseValue); // Get Request identifier from web service. reqId = service.SubmitRequest(seq, searchParams); // Get request information for first time. ServiceRequestInformation reqInfo = service.GetRequestStatus(reqId); // Validate job status. if (reqInfo.Status != ServiceRequestStatus.Waiting && reqInfo.Status != ServiceRequestStatus.Ready && reqInfo.Status != ServiceRequestStatus.Queued) { string error = ApplicationLog.WriteLine(string.Concat( "Unexpected error", reqInfo.Status)); Assert.Fail(error); } else { ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Azure Blast BVT: Client Request status has been validated successfully.")); ApplicationLog.WriteLine(string.Concat( "Azure Blast BVT: Request status ", reqInfo.Status)); } }
public void ValidateEbiWebServiceProperties() { ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; IBlastServiceHandler service = null; try { service = new EbiWuBlastHandler(configParams); // Validate EBI Web Service properties. Assert.AreEqual(Constants.EbiWebServiceDescription, service.Description); Assert.AreEqual(Constants.EbiWebServiceName, service.Name); ApplicationLog.WriteLine( "EbiWebService : Successfully validated the Ebi WebService Properties"); Console.WriteLine( "EbiWebService : Successfully validated the Ebi WebService Properties"); } catch (Exception ex) { Assert.Fail(ex.Message); } finally { if (service != null) { ((IDisposable)service).Dispose(); } } }
/// <summary> /// Get Request identifier for submitted job. /// </summary> /// <param name="blastParameters">Blast Input config parameters</param> /// <returns></returns> private TestCaseOutput GetRequestIdentifier(Dictionary <string, object> blastParameters) { // Get the input query string string sequenceString = blastParameters[Constants.QuerySeqString] as string; Sequence sequence = new Sequence(Alphabets.DNA, sequenceString); // Set NCBIHandler configuration services IBlastServiceHandler service = null; object reqId = null; try { service = new AzureBlastHandler(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; configParams.DefaultTimeout = 5; configParams.Connection = new Uri(Constants.AzureUri); service.Configuration = configParams; BlastParameters blastSearchPams = blastParameters[Constants.BlastParmsConst] as BlastParameters; // Get Request identifier from web service. reqId = service.SubmitRequest(sequence, blastSearchPams); } finally { if (service != null) { ((IDisposable)service).Dispose(); } } return(new TestCaseOutput(reqId, false)); }
private static ConfigParameters GetConfigParameters(InterceptCallInfo info) { ConfigParameters cp = info.CallMethodInfo.LogParameters; if (cp == null) { info.CallMethodInfo.LogParameters = cp = new ConfigParameters(); string[] ps = info.ConfigString.Split(';'); foreach (string p in ps) { string[] vs = p.Split('='); if (vs.Length == 2) { switch (vs[0].ToLower().Trim()) { case "filename": cp.FileName = vs[1].Trim(); break; case "mincalltime": cp.MinCallTime = int. Parse(vs[1].Trim()); break; case "logexceptions": cp.LogExceptions = bool.Parse(vs[1].Trim()); break; case "logparameters": cp.LogParameters = bool.Parse(vs[1].Trim()); break; } } } } return cp; }
/// <summary> /// Gets the hash code /// </summary> /// <returns>Hash code</returns> public override int GetHashCode() { unchecked // Overflow is fine, just wrap { int hashCode = 41; if (UID != null) { hashCode = hashCode * 59 + UID.GetHashCode(); } if (Label != null) { hashCode = hashCode * 59 + Label.GetHashCode(); } if (Description != null) { hashCode = hashCode * 59 + Description.GetHashCode(); } if (Category != null) { hashCode = hashCode * 59 + Category.GetHashCode(); } if (Listed != null) { hashCode = hashCode * 59 + Listed.GetHashCode(); } if (SupportedBridgeTypeUIDs != null) { hashCode = hashCode * 59 + SupportedBridgeTypeUIDs.GetHashCode(); } if (Bridge != null) { hashCode = hashCode * 59 + Bridge.GetHashCode(); } if (Channels != null) { hashCode = hashCode * 59 + Channels.GetHashCode(); } if (ChannelGroups != null) { hashCode = hashCode * 59 + ChannelGroups.GetHashCode(); } if (ConfigParameters != null) { hashCode = hashCode * 59 + ConfigParameters.GetHashCode(); } if (ParameterGroups != null) { hashCode = hashCode * 59 + ParameterGroups.GetHashCode(); } if (Properties != null) { hashCode = hashCode * 59 + Properties.GetHashCode(); } if (ExtensibleChannelTypeIds != null) { hashCode = hashCode * 59 + ExtensibleChannelTypeIds.GetHashCode(); } return(hashCode); } }
private static ConfigParameters GetConfigParameters(InterceptCallInfo info) { ConfigParameters cp = info.CallMethodInfo.CacheParameters; if (cp == null) { info.CallMethodInfo.CacheParameters = cp = new ConfigParameters(); string[] ps = info.ConfigString.Split(';'); foreach (string p in ps) { string[] vs = p.Split('='); if (vs.Length == 2) { switch (vs[0].ToLower().Trim()) { case "maxcachetime": cp.MaxCacheTime = int.Parse(vs[1].Trim()); break; case "isweak": cp.IsWeak = bool.Parse(vs[1].Trim()); break; } } } } return(cp); }
public void InvalidateBlastResultsUsingConstructorPams() { // create Ncbi Blast service object. ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; // Validate NcbiWebService ctor by passing null parser. try { new NCBIBlastHandler(null, configParams); Assert.Fail(); } catch (ArgumentNullException) { ApplicationLog.WriteLine( "NcbiWebService P2 : Successfully validated the Argument null exception"); Console.WriteLine( "NcbiWebService P2 : Successfully validated the Argument null exception"); } // Validate NcbiWebService ctor by passing null config. try { new NCBIBlastHandler(new BlastXmlParser(), null); Assert.Fail(); } catch (ArgumentNullException) { ApplicationLog.WriteLine( "NcbiWebService P2 : Successfully validated the Argument null exception"); Console.WriteLine( "NcbiWebService P2 : Successfully validated the Argument null exception"); } }
public void InvalidateBlastResultsUsingConstructorPam() { // create Ncbi Blast service object. ConfigParameters configParams = null; IBlastServiceHandler service = null; // Validate NcbiWebService ctor by passing null parser. try { service = new NCBIBlastHandler(configParams); Assert.Fail(); } catch (ArgumentNullException) { ApplicationLog.WriteLine( "NcbiWebService P2 : Successfully validated the Argument null exception"); Console.WriteLine( "NcbiWebService P2 : Successfully validated the Argument null exception"); } finally { if (service != null) { ((IDisposable)service).Dispose(); } } }
private static ConfigParameters GetConfigParameters(InterceptCallInfo info) { ConfigParameters cp = info.CallMethodInfo.LogParameters; if (cp == null) { info.CallMethodInfo.LogParameters = cp = new ConfigParameters(); string[] ps = info.ConfigString.Split(';'); foreach (string p in ps) { string[] vs = p.Split('='); if (vs.Length == 2) { switch (vs[0].ToLower().Trim()) { case "filename": cp.FileName = vs[1].Trim(); break; case "mincalltime": cp.MinCallTime = int.Parse(vs[1].Trim()); break; case "logexceptions": cp.LogExceptions = bool.Parse(vs[1].Trim()); break; case "logparameters": cp.LogParameters = bool.Parse(vs[1].Trim()); break; } } } } return(cp); }
public void InvalidateEbiWebServiceRequestStatusWithoutConfigPams() { // Gets the search query parameter and their values. string alphabet = utilityObj.xmlUtil.GetTextValue( Constants.EbiBlastResultsNode, Constants.AlphabetNameNode); string querySequence = utilityObj.xmlUtil.GetTextValue( Constants.EbiBlastResultsNode, Constants.QuerySequency); Sequence seq = new Sequence(Utility.GetAlphabet(alphabet), querySequence); // Set Service confiruration parameters true. EbiWuBlastHandler service = new EbiWuBlastHandler(); // Dispose Ebi Blast Handler. service.Dispose(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; service.Configuration = configParams; BlastParameters searchParams = new BlastParameters(); // Get Request identifier from web service. try { service.SubmitRequest(seq, searchParams); Assert.Fail(); } catch (Exception) { ApplicationLog.WriteLine( "EbiWebService P2 : Successfully validated the exception"); } }
public void ValidateBioHPCBlastWebServiceProperties() { ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; BioHPCBlastHandler service = null; try { service = new BioHPCBlastHandler(configParams); // Validate BioHPC Blast Web Service properties. Assert.AreEqual(Constants.BioHPCWebServiceDescription, service.Description); Assert.AreEqual(Constants.BioHPCWebServiceName, service.Name); Assert.IsNotNull(service.Configuration); Assert.IsNotNull(service.Parser); ApplicationLog.WriteLine( "BioHPC Blast Bvt : Successfully validated the BioHPC Blast WebService Properties"); Console.WriteLine( "BioHPC Blast Bvt : Successfully validated the BioHPC Blast WebService Properties"); } finally { if (service != null) { ((IDisposable)service).Dispose(); } } }
/// <summary> /// Validate Submit Job and Fetch ResultSync() using multiple input sequences /// </summary> /// <param name="nodeName">xml node name</param> void ValidateFetchResultSync(string nodeName) { // Read input from config file string filepath = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.FilePathNode); string emailId = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.EmailIDNode); string clusterOption = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ClusterOptionNode); string actionAlign = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ActionAlignNode); // Initialize with parser and config params ConfigParameters configparams = new ConfigParameters(); ClustalWParser clustalparser = new ClustalWParser(); configparams.UseBrowserProxy = true; TestIClustalWServiceHandler handler = new TestIClustalWServiceHandler(clustalparser, configparams); ClustalWParameters parameters = new ClustalWParameters(); parameters.Values[ClustalWParameters.Email] = emailId; parameters.Values[ClustalWParameters.ClusterOption] = clusterOption; parameters.Values[ClustalWParameters.ActionAlign] = actionAlign; IEnumerable <ISequence> sequence = null; // Get the input sequences using (FastAParser parser = new FastAParser(filepath)) { sequence = parser.Parse(); // Submit job and validate it returned valid job id and control id ServiceParameters svcparameters = handler.SubmitRequest(sequence.ToList(), parameters); Assert.IsFalse(string.IsNullOrEmpty(svcparameters.JobId)); ApplicationLog.WriteLine(string.Concat("JobId", svcparameters.JobId)); foreach (string key in svcparameters.Parameters.Keys) { Assert.IsFalse(string.IsNullOrEmpty(svcparameters.Parameters[key].ToString())); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "{0}:{1}", key, svcparameters.Parameters[key].ToString())); } // Get the results and validate it is not null. ClustalWResult result = handler.FetchResultsSync(svcparameters); Assert.IsNotNull(result); Assert.IsNotNull(result.SequenceAlignment); foreach (IAlignedSequence alignSeq in result.SequenceAlignment.AlignedSequences) { ApplicationLog.WriteLine("Aligned Sequence Sequences :"); foreach (ISequence seq in alignSeq.Sequences) { ApplicationLog.WriteLine(string.Concat("Sequence:", seq.ToString())); } } } ApplicationLog.WriteLine(@"ClustalWServiceHandler BVT : Submit job and Get Results is successfully completed using FetchResultSync()"); }
/// <summary> /// Validate if the connection is successful /// </summary> /// <returns>True, if connection is successful</returns> static bool ValidateWebServiceConnection() { // Read input from config file string filepath = Utility._xmlUtil.GetTextValue( Constants.DefaultOptionNode, Constants.FilePathNode); string emailId = Utility._xmlUtil.GetTextValue( Constants.DefaultOptionNode, Constants.EmailIDNode); string clusterOption = Utility._xmlUtil.GetTextValue( Constants.DefaultOptionNode, Constants.ClusterOptionNode); string actionAlign = Utility._xmlUtil.GetTextValue( Constants.DefaultOptionNode, Constants.ActionAlignNode); // Initialize with parser and config params ConfigParameters configparams = new ConfigParameters(); ClustalWParser clustalparser = new ClustalWParser(); configparams.UseBrowserProxy = true; TestIClustalWServiceHandler handler = new TestIClustalWServiceHandler(clustalparser, configparams); ClustalWParameters parameters = new ClustalWParameters(); parameters.Values[ClustalWParameters.Email] = emailId; parameters.Values[ClustalWParameters.ClusterOption] = clusterOption; parameters.Values[ClustalWParameters.ActionAlign] = actionAlign; // Get the input sequences FastaParser parser = new FastaParser(); IList <ISequence> sequence = parser.Parse(filepath); try { // Submit job and validate it returned valid job id and control id ServiceParameters svcparameters = handler.SubmitRequest(sequence, parameters); if (string.IsNullOrEmpty(svcparameters.JobId)) { Console.WriteLine( "ClustalW BVT : Connection not successful with no Job ID"); ApplicationLog.WriteLine( "ClustalW BVT : Connection not successful with no Job ID"); return(false); } handler.FetchResultsSync(svcparameters); } catch (Exception ex) { Console.WriteLine(string.Format( "ClustalW BVT : Connection not successful with error '{0}'", ex.Message)); ApplicationLog.WriteLine(string.Format( "ClustalW BVT : Connection not successful with error '{0}'", ex.Message)); return(false); } Console.WriteLine("ClustalW BVT : Connection Successful"); return(true); }
void applyParamsToConfig(ConfigParameters theseParams) { BeamConfiguration thisConfig = GetComponent <BeamConfiguration>(); thisConfig.MembersFirst = theseParams.MembersFirst; thisConfig.MembersSecond = theseParams.MembersSecond; thisConfig.Joints = theseParams.Joints; thisConfig.PinIndices = theseParams.PinIndices; }
/// <summary> /// Fetch results asynchronous /// </summary> /// <param name="blastParameters">Blast Input config parameters</param> /// <returns></returns> private TestCaseOutput FetchResultsAsync(Dictionary <string, object> blastParameters) { // Get the input query string string sequenceString = blastParameters[Constants.QuerySeqString] as string; Sequence sequence = new Sequence(Alphabets.DNA, sequenceString); // Set NCBIHandler configuration services IBlastServiceHandler service = null; object resultsObject = null; try { service = new AzureBlastHandler(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; configParams.DefaultTimeout = 5; configParams.Connection = new Uri(Constants.AzureUri); service.Configuration = configParams; BlastParameters blastSearchPams = blastParameters[Constants.BlastParmsConst] as BlastParameters; // Get Request identifier from web service. string reqId = service.SubmitRequest(sequence, blastSearchPams); // Get request information for first time. ServiceRequestInformation info = service.GetRequestStatus(reqId); // Ping service until request staus is ready. int maxAttempts = 10; int attempt = 1; while (attempt <= maxAttempts && info.Status != ServiceRequestStatus.Ready && info.Status != ServiceRequestStatus.Error) { System.Threading.Thread.Sleep(2000); ++attempt; info = service.GetRequestStatus(reqId); } IBlastParser blastXmlParser = new BlastXmlParser(); using (StringReader reader = new StringReader(service.GetResult(reqId, blastSearchPams))) { resultsObject = blastXmlParser.Parse(reader); } } finally { if (service != null) { ((IDisposable)service).Dispose(); } } return(new TestCaseOutput(resultsObject, false)); }
/// <summary> /// Initializes a new instance of the WebServiceInputEventArgs class /// </summary> /// <param name="parameters">the selected service parameters</param> /// <param name="webserviceName">Name of the webservice used.</param> /// <param name="configuration">Configuration of service</param> public WebServiceInputEventArgs( BlastParameters parameters, string webServiceName, ConfigParameters configuration) { this.serviceParam = parameters; this.webServiceName = webServiceName; this.configuration = configuration; }
/// <summary> /// Validate Cancel submitted job by passing job id. /// <param name="nodeName">different alphabet node name</param> /// </summary> static void ValidateCancelSubmittedJob(string nodeName) { if (_IsWebServiceAvailable) { // Gets the search query parameter and their values. string alphabetName = Utility._xmlUtil.GetTextValue( nodeName, Constants.AlphabetNameNode); string querySequence = Utility._xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string queryDatabaseValue = Utility._xmlUtil.GetTextValue( nodeName, Constants.DatabaseValue); string emailParameter = Utility._xmlUtil.GetTextValue( nodeName, Constants.Emailparameter); string email = Utility._xmlUtil.GetTextValue( nodeName, Constants.EmailAdress); string queryProgramValue = Utility._xmlUtil.GetTextValue( nodeName, Constants.ProgramValue); string queryDatabaseParameter = Utility._xmlUtil.GetTextValue( nodeName, Constants.DatabaseParameter); string queryProgramParameter = Utility._xmlUtil.GetTextValue( nodeName, Constants.ProgramParameter); Sequence seq = new Sequence(Utility.GetAlphabet(alphabetName), querySequence); // create Ebi Blast service object. IBlastServiceHandler service = new EbiWuBlastHandler(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; service.Configuration = configParams; BlastParameters searchParams = new BlastParameters(); // Set Request parameters. searchParams.Add(queryDatabaseParameter, queryDatabaseValue); searchParams.Add(queryProgramParameter, queryProgramValue); searchParams.Add(emailParameter, email); // Create a request without passing sequence. string reqId = service.SubmitRequest(seq, searchParams); // Cancel subitted job. bool result = service.CancelRequest(reqId); // validate the cancelled job. Assert.IsTrue(result); Console.WriteLine(string.Format(null, "EBI Blast P1 : Submitted job cancelled was successfully.", queryProgramValue)); } else { Assert.Ignore("The test case ignored due to connection failure"); } }
/// <summary> /// Validates general Add method test cases with the xml node name specified. /// </summary> /// <param name="nodeName">xml node name.</param> /// <param name="methodName">Name of the Add method</param> void ValidateAddGeneralTescases(string nodeName, string methodName) { // Gets the search query parameter and their values. string querySequence = _utilityObj._xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string queryDatabaseValue = _utilityObj._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.DatabaseValue); string queryProgramValue = _utilityObj._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.ProgramValue); string querySequenceParameter = _utilityObj._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.QuerySequencyparameter); string queryDatabaseParameter = _utilityObj._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.DatabaseParameter); string queryProgramParameter = _utilityObj._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.ProgramParameter); // Set Service confiruration parameters true. ConfigParameters configParameters = new ConfigParameters(); configParameters.UseBrowserProxy = true; // Create search parameters object. BlastParameters queryParams = new BlastParameters(); // Add mandatory parameter values to search query parameters. if (0 == string.Compare(methodName, "Add", true, CultureInfo.CurrentCulture)) { queryParams.Add(querySequenceParameter, querySequence); queryParams.Add(queryDatabaseParameter, queryDatabaseValue); queryParams.Add(queryProgramParameter, queryProgramValue); } else { queryParams.AddIfAbsent(querySequenceParameter, querySequence); queryParams.AddIfAbsent(queryDatabaseParameter, queryDatabaseValue); queryParams.AddIfAbsent(queryProgramParameter, queryProgramValue); } // Validate search query parameters. Assert.IsTrue(queryParams.Settings.ContainsValue(querySequence)); Assert.IsTrue(queryParams.Settings.ContainsValue(queryDatabaseValue)); Assert.IsTrue(queryParams.Settings.ContainsValue(queryProgramValue)); Assert.AreEqual(queryParams.Settings.Count, 3); // Logs to the NUnit GUI (Console.Out) window Console.WriteLine(string.Format((IFormatProvider)null, "Azure Blast BVT : Query Sequence{0} is as expected.", querySequence)); Console.WriteLine(string.Format((IFormatProvider)null, "Azure Blast BVT : DataBase Value{0} is as expected.", queryDatabaseValue)); Console.WriteLine(string.Format((IFormatProvider)null, "Azure Blast BVT : Program Value {0} is as expected.", queryProgramValue)); }
/// <summary> /// Validate Cancelling submitted Job. /// Input Data :Valid search query, Database value and program value. /// Output Data : Validation of Cancelling submitted Job. /// </summary> /// Invalidated the test case for the Bug 115 /// Disabling this test case till web service is up. public void ValidateCancelSubmittedJob() { if (_IsWebServiceAvailable) { // Gets the search query parameter and their values. string alphabet = Utility._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.AlphabetNameNode); string querySequence = Utility._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.QuerySequency); string queryDatabaseValue = Utility._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.DatabaseValue); string queryProgramValue = Utility._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.ProgramValue); string queryDatabaseParameter = Utility._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.DatabaseParameter); string queryProgramParameter = Utility._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.ProgramParameter); string reqId = string.Empty; bool result = false; Sequence seq = new Sequence(Utility.GetAlphabet(alphabet), querySequence); // Set Service confiruration parameters true. IBlastServiceHandler service = new AzureBlastHandler(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; configParams.DefaultTimeout = 5; configParams.Connection = new Uri(Constants.AzureUri); service.Configuration = configParams; // Create search parameters object. BlastParameters searchParams = new BlastParameters(); // Add mandatory parameter values to search query parameters. searchParams.Add(queryProgramParameter, queryProgramValue); searchParams.Add(queryDatabaseParameter, queryDatabaseValue); // Get Request identifier from web service. reqId = service.SubmitRequest(seq, searchParams); // Cancel subitted job. result = service.CancelRequest(reqId); // validate the cancelled job. Assert.IsTrue(result); Console.WriteLine(string.Format(null, "Azure Blast BVT : Submitted job cancelled was successfully.", queryProgramValue)); } else { Assert.Ignore("The test case ignored due to connection failure"); } }
/// <summary> /// Validate the CancelRequest() /// </summary> /// <param name="nodeName">xml node name</param> void ValidateCancelRequest(string nodeName) { // Read input from config file string filepath = _utilityObj._xmlUtil.GetTextValue(nodeName, Constants.FilePathNode); string emailId = _utilityObj._xmlUtil.GetTextValue(nodeName, Constants.EmailIDNode); string clusterOption = _utilityObj._xmlUtil.GetTextValue(nodeName, Constants.ClusterOptionNode); string actionAlign = _utilityObj._xmlUtil.GetTextValue(nodeName, Constants.ActionAlignNode); ClustalWParameters parameters = new ClustalWParameters(); parameters.Values[ClustalWParameters.Email] = emailId; parameters.Values[ClustalWParameters.ClusterOption] = clusterOption; parameters.Values[ClustalWParameters.ActionAlign] = actionAlign; IList <ISequence> sequence = null; // Get the input sequences using (FastaParser parser = new FastaParser()) { sequence = parser.Parse(filepath); } // Submit job and cancel job // Validate cancel job is working as expected ConfigParameters configparams = new ConfigParameters(); ClustalWParser clustalparser = new ClustalWParser(); configparams.UseBrowserProxy = true; TestIClustalWServiceHandler handler = new TestIClustalWServiceHandler(clustalparser, configparams); ServiceParameters svcparams = handler.SubmitRequest(sequence, parameters); bool result = handler.CancelRequest(svcparams); Assert.IsTrue(result); Console.WriteLine(string.Concat("JobId:", svcparams.JobId)); ApplicationLog.WriteLine(string.Concat("JobId:", svcparams.JobId)); Assert.IsTrue(string.IsNullOrEmpty(svcparams.JobId)); foreach (string key in svcparams.Parameters.Keys) { Assert.IsTrue(string.IsNullOrEmpty(svcparams.Parameters[key].ToString())); Console.WriteLine(string.Format((IFormatProvider)null, "{0} : {1}", key, svcparams.Parameters[key].ToString())); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "{0} : {1}", key, svcparams.Parameters[key].ToString())); } Console.WriteLine( "ClustalWServiceHandler BVT : Cancel job is submitted as expected"); ApplicationLog.WriteLine( "ClustalWServiceHandler BVT : Cancel job is submitted as expected"); }
/// <summary> /// Validate a Azure Blast Service constructor with invalid parameters. /// Input : Invalid service config parameters. /// Output : Invalidate Azure web service constructor. /// </summary> public void InvalidateAzureWebHandlerCtor() { ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; configParams.DefaultTimeout = 10; configParams.Connection = new Uri(Constants.AzureUri); BlastXmlParser parser = new BlastXmlParser(); // Validate AzureWebService ctor by passing null parser. IBlastServiceHandler service = null; try { service = new AzureBlastHandler(null, configParams); Assert.IsNotNull(service); Assert.Fail(); } catch (ArgumentNullException) { ApplicationLog.WriteLine( "AzureWebService P2 : Successfully validated the Argument null exception"); Console.WriteLine( "AzureWebService P2 : Successfully validated the Argument null exception"); } finally { if (service != null) { ((IDisposable)service).Dispose(); } } // Validate AzureWebService ctor by passing null configuration parameters. try { service = new AzureBlastHandler(parser, null); Assert.Fail(); } catch (ArgumentNullException) { ApplicationLog.WriteLine( "AzureWebService P2 : Successfully validated the Argument null exception"); Console.WriteLine( "AzureWebService P2 : Successfully validated the Argument null exception"); } finally { if (service != null) { ((IDisposable)service).Dispose(); } } }
public void SetParameters(ConfigParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } long min; if (parameters.TryGet("size", out min)) { minSize = min * 1024 * 1024; } }
public void ValidateEBIWuBlastManadatoryParams() { // Gets the search query parameter and their values. string querySequence = Utility._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.QuerySequency); string queryDatabaseValue = Utility._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.DatabaseValue); string queryProgramValue = Utility._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.ProgramValue); string queryDatabaseParameter = Utility._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.DatabaseParameter); string queryProgramParameter = Utility._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.ProgramParameter); string emailParameter = Utility._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.Emailparameter); string email = Utility._xmlUtil.GetTextValue( Constants.BlastParametersNode, Constants.EmailAdress); // Set Service confiruration parameters true. IBlastServiceHandler 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(null, "Ebi Blast BVT: Query Sequence{0} is as expected.", querySequence)); Console.WriteLine(string.Format(null, "Ebi Blast BVT: DataBase Value{0} is as expected.", queryDatabaseValue)); Console.WriteLine(string.Format(null, "Ebi Blast BVT: Program Value {0} is as expected.", queryProgramValue)); }
/// <summary> /// Submits a blast query to a blast search provider. /// This sample uses NCBI as the provider. /// </summary> /// <param name="sequence">Sequence to submit for searching.</param> /// <returns>Job ID of the query. You can get the results using GetBlastResults after the job is completed.</returns> public static string SubmitBlastQuery(ISequence sequence) { // Create the service provider NCBIBlastHandler serviceProvider = new NCBIBlastHandler(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; serviceProvider.Configuration = configParams; // create the request and return the job ID. return serviceProvider.SubmitRequest(sequence, GetBlastSearchParams()); }
/// <summary> /// Validate submit job and Get Results using event handler /// </summary> /// <param name="nodeName">xml node name</param> void ValidateFetchResultsUsingEvent(string nodeName) { // Read input from config file string filepath = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FilePathNode); string emailId = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.EmailIDNode); string clusterOption = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.ClusterOptionNode); string actionAlign = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.ActionAlignNode); ClustalWParameters parameters = new ClustalWParameters(); parameters.Values[ClustalWParameters.Email] = emailId; parameters.Values[ClustalWParameters.ClusterOption] = clusterOption; parameters.Values[ClustalWParameters.ActionAlign] = actionAlign; IEnumerable <ISequence> sequence = null; // Get the input sequences using (FastAParser parser = new FastAParser(filepath)) { sequence = parser.Parse(); // Register event and submit request ConfigParameters configparams = new ConfigParameters(); ClustalWParser clustalparser = new ClustalWParser(); configparams.UseBrowserProxy = true; TestIClustalWServiceHandler handler = new TestIClustalWServiceHandler(clustalparser, configparams); handler.RequestCompleted += new EventHandler <ClustalWCompletedEventArgs>(handler_RequestCompleted); ServiceParameters svcparams = handler.SubmitRequest(sequence.ToList(), parameters); WaitHandle[] aryHandler = new WaitHandle[1]; aryHandler[0] = _resetEvent; WaitHandle.WaitAny(aryHandler); // Validate the submit job results Assert.IsFalse(string.IsNullOrEmpty(svcparams.JobId)); Console.WriteLine("JobId:" + svcparams.JobId); foreach (string key in svcparams.Parameters.Keys) { Assert.IsFalse(string.IsNullOrEmpty(svcparams.Parameters[key].ToString())); Console.WriteLine(string.Format((IFormatProvider)null, "{0} : {1}", key, svcparams.Parameters[key].ToString())); } aryHandler = null; _resetEvent.Close(); _resetEvent.Dispose(); } }
public static void Start() { //Logger.Info("Enter"); PreviousConfig = ConfigHandler.Config; while (true) { //while (!ThreadPool.UnsafeQueueUserWorkItem(new WaitCallback(SearchConfigurationChange), null)) ; SearchConfigurationChange(null); UpdateHostConfig(); Thread.Sleep(ConfigHandler.Config.Policies.HeartBeatInterval); } }
public void SetParameters(ConfigParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } min = parameters.MaybeGet<uint>("min"); max = parameters.MaybeGet<uint>("max"); minWidth = parameters.MaybeGet<uint>("minwidth"); maxWidth = parameters.MaybeGet<uint>("maxwidth"); minHeight = parameters.MaybeGet<uint>("minheight"); maxHeight = parameters.MaybeGet<uint>("maxheight"); }
void createJointGrid(ConfigParameters thisConfig) { thisConfig.initialize(); for (int i = 0; i < length; i++) { for (int j = 0; j < width; j++) { thisConfig.Joints.Add(new Vector3(i * spacing, height, j * spacing)); //0,0, 0,width (last in row )length,0 (first in last row) length,width (last in last row) } } for (int i = 0; i < length * width; i++) { //i % length - //i / length == width: if (((i) / width != length - 1)) { thisConfig.MembersFirst.Add(i); thisConfig.MembersSecond.Add(i + width); } if (i % width != (width - 1)) { thisConfig.MembersFirst.Add(i); thisConfig.MembersSecond.Add(i + 1); } } for (int i = 0; i < length * width; i++) { //i % length - //i / length == width: switch (thisStyle) { case pinStyle.noPins: break; case pinStyle.pinPerimeter: if (i % width == (width - 1) || i % width == 0 || ((i) / width == length - 1) || ((i) / width == 0)) { thisConfig.PinIndices.Add(i); } break; case pinStyle.pinCorners: if (i % width == (width - 1) && ((i) / width == length - 1) || i % width == 0 && ((i) / width == 0)) { thisConfig.PinIndices.Add(i); } break; } } }
/// <summary> /// Validate a Azure Blast Service Request status for invalid Sequence. /// Input : Invalid sequence. /// Output : Valdiate request status for invalid sequence. /// </summary> public void InvalidateAzureWebServiceRequestStatusForInvalidConfigPams() { // Gets the search query parameter and their values. string alphabet = _utilityObj._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.AlphabetNameNode); string querySequence = _utilityObj._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.QuerySequency); string queryDatabaseValue = _utilityObj._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.DatabaseValue); string queryProgramValue = _utilityObj._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.ProgramValue); string queryDatabaseParameter = _utilityObj._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.DatabaseParameter); string queryProgramParameter = _utilityObj._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.ProgramParameter); Sequence seq = new Sequence(Utility.GetAlphabet(alphabet), querySequence); // Set Service confiruration parameters true. AzureBlastHandler service = new AzureBlastHandler(); // Dispose Azure Blast Handler. service.Dispose(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; configParams.DefaultTimeout = 10; configParams.Connection = new Uri(Constants.AzureUri); service.Configuration = configParams; // Create search parameters object. BlastParameters searchParams = new BlastParameters(); // Add mandatory parameter values to search query parameters. searchParams.Add(queryProgramParameter, queryProgramValue); searchParams.Add(queryDatabaseParameter, queryDatabaseValue); // Get Request identifier from web service. try { service.SubmitRequest(seq, null); Assert.Fail(); } catch (ArgumentNullException) { ApplicationLog.WriteLine( "AzureWebService P2 : Successfully validated the exception"); Console.WriteLine( "AzureWebService P2 : Successfully validated the exception"); } }
public void SetParameters(ConfigParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } min = parameters.MaybeGet <uint>("min"); max = parameters.MaybeGet <uint>("max"); minWidth = parameters.MaybeGet <uint>("minwidth"); maxWidth = parameters.MaybeGet <uint>("maxwidth"); minHeight = parameters.MaybeGet <uint>("minheight"); maxHeight = parameters.MaybeGet <uint>("maxheight"); }
public void SetParameters(ConfigParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } foreach (var v in parameters.GetValuesForKey("date")) { DateTime min; if (DateTime.TryParse(v, out min)) { minDate = min; } } }
public void SetParameters(ConfigParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } var filters = from f in parameters.Keys let e = Escape(f) select e; filter = new Regex( string.Join("|", filters), RegexOptions.Compiled | RegexOptions.IgnoreCase ); NoticeFormat("Using filter {0}", filter.ToString()); }
/// <summary> /// Gets the blast results from a given job ID. /// If the job is not complete, this method will throw an exception. /// </summary> /// <param name="jobID">Job ID for which the blast results should be fetched.</param> /// <returns>List of BlastResult.</returns> public static IList<BlastResult> GetBlastResults(string jobID) { // Create the service provider NCBIBlastHandler serviceProvider = new NCBIBlastHandler(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; serviceProvider.Configuration = configParams; // Check the job status ServiceRequestInformation info = serviceProvider.GetRequestStatus(jobID); if (info.Status != ServiceRequestStatus.Ready) { throw new InvalidOperationException("Blast search results are not yet ready!"); } // Get the results back and parse it. IBlastParser blastXmlParser = new BlastXmlParser(); return blastXmlParser.Parse(new System.IO.StringReader(serviceProvider.GetResult(jobID, GetBlastSearchParams()))); }
public void SetParameters(ConfigParameters parameters) { cascade = !parameters.Has("no-cascade") && parameters.Get("cascade", cascade); }
public void ValidateAddIfAbsentForOptionalQuerySearchValues() { // Gets the search query parameter and their values. string optionalParameter = utilityObj.xmlUtil.GetTextValue( Constants.BlastProgramNode, Constants.Expectparameter); string optionalParameterValue = utilityObj.xmlUtil.GetTextValue( Constants.BlastProgramNode, Constants.optionalValue); string expectedParametersCount = utilityObj.xmlUtil.GetTextValue( Constants.BlastProgramNode, Constants.expectedParameterCount); // Set Service confiruration parameters true. IBlastServiceHandler blastService = null; try { blastService = new NCBIBlastHandler(); ConfigParameters configParameters = new ConfigParameters(); configParameters.UseBrowserProxy = true; blastService.Configuration = configParameters; // Create search parameters object. BlastParameters queryParams = new BlastParameters(); // Add a threshold parameter value. queryParams.AddIfAbsent(optionalParameter, optionalParameterValue); // Validate threshold parameter value. Assert.IsTrue(queryParams.Settings.ContainsValue(optionalParameterValue)); Assert.AreEqual(queryParams.Settings.Count.ToString(( IFormatProvider)null), expectedParametersCount); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast P1: Validation of expect parameter was completed successfully.")); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast P1: expect value parameter {0} is as expected.", optionalParameterValue)); } finally { if (blastService != null) ((IDisposable)blastService).Dispose(); } }
/// <summary> /// Validate Cancel submitted job by passing job id. /// <param name="nodeName">different alphabet node name</param> /// </summary> void ValidateCancelSubmittedJob( string nodeName, RequestType type) { // Gets the search query parameter and their values. string alphabetName = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.AlphabetNameNode); string querySequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseValue); string email = Constants.EmailForWS; ; string queryProgramValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramValue); string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseParameter); string queryProgramParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramParameter); string expect = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.Expectparameter); string emailNotify = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.EmailNotifyParameterNode); string jobName = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.JobNameParameterNode); string expectValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ExpectNode); string emailNotifyValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.EmailNotifyNode); string jobNameValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.JobNameNode); // Set Blast Parameters Sequence seq = new Sequence(Utility.GetAlphabet(alphabetName), querySequence); IBlastServiceHandler service = new BioHPCBlastHandler(); ConfigParameters configParameters = new ConfigParameters(); configParameters.EmailAddress = email; configParameters.Password = String.Empty; configParameters.UseBrowserProxy = true; service.Configuration = configParameters; BlastParameters searchParams = new BlastParameters(); // Set Request parameters. searchParams.Add(queryDatabaseParameter, queryDatabaseValue); searchParams.Add(queryProgramParameter, queryProgramValue); searchParams.Add(expect, expectValue); searchParams.Add(emailNotify, emailNotifyValue); searchParams.Add(jobName, jobNameValue); string reqId = String.Empty; // Waiting for the any previous request to get completed. Thread.Sleep(150000); // Create a request without passing sequence. switch (type) { case RequestType.StrSubmit: reqId = service.SubmitRequest(seq, searchParams); break; case RequestType.LstSubmit: IList<ISequence> lstSeq = new List<ISequence>(); lstSeq.Add(seq); reqId = service.SubmitRequest(lstSeq, searchParams); break; } // Cancel subitted job. bool result = service.CancelRequest(reqId); // validate the cancelled job. Assert.IsTrue(result); Console.WriteLine(string.Concat( "BioHPC Blast Bvt : Submitted job cancelled was successfully. ", queryProgramValue)); }
private static ConfigParameters GetConfigParameters(InterceptCallInfo info) { ConfigParameters cp = info.CallMethodInfo.CacheParameters; if (cp == null) { info.CallMethodInfo.CacheParameters = cp = new ConfigParameters(); string[] ps = info.ConfigString.Split(';'); foreach (string p in ps) { string[] vs = p.Split('='); if (vs.Length == 2) { switch (vs[0].ToLower().Trim()) { case "maxcachetime": cp.MaxCacheTime = int. Parse(vs[1].Trim()); break; case "isweak": cp.IsWeak = bool.Parse(vs[1].Trim()); break; } } } } return cp; }
/// <summary> /// Validate Submit Job and Fetch ResultSync() using multiple input sequences /// </summary> /// <param name="nodeName">xml node name</param> void ValidateFetchResultSync(string nodeName) { // Read input from config file string filepath = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.FilePathNode); string emailId = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.EmailIDNode); string clusterOption = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ClusterOptionNode); string actionAlign = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ActionAlignNode); // Initialize with parser and config params ConfigParameters configparams = new ConfigParameters(); ClustalWParser clustalparser = new ClustalWParser(); configparams.UseBrowserProxy = true; TestIClustalWServiceHandler handler = new TestIClustalWServiceHandler(clustalparser, configparams); ClustalWParameters parameters = new ClustalWParameters(); parameters.Values[ClustalWParameters.Email] = emailId; parameters.Values[ClustalWParameters.ClusterOption] = clusterOption; parameters.Values[ClustalWParameters.ActionAlign] = actionAlign; IEnumerable<ISequence> sequence = null; // Get the input sequences using (FastAParser parser = new FastAParser(filepath)) { sequence = parser.Parse(); // Submit job and validate it returned valid job id and control id ServiceParameters svcparameters = handler.SubmitRequest(sequence.ToList(), parameters); Assert.IsFalse(string.IsNullOrEmpty(svcparameters.JobId)); ApplicationLog.WriteLine(string.Concat("JobId", svcparameters.JobId)); foreach (string key in svcparameters.Parameters.Keys) { Assert.IsFalse(string.IsNullOrEmpty(svcparameters.Parameters[key].ToString())); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "{0}:{1}", key, svcparameters.Parameters[key].ToString())); } // Get the results and validate it is not null. ClustalWResult result = handler.FetchResultsSync(svcparameters); Assert.IsNotNull(result); Assert.IsNotNull(result.SequenceAlignment); foreach (IAlignedSequence alignSeq in result.SequenceAlignment.AlignedSequences) { ApplicationLog.WriteLine("Aligned Sequence Sequences :"); foreach (ISequence seq in alignSeq.Sequences) { ApplicationLog.WriteLine(string.Concat("Sequence:", seq.ToString())); } } } ApplicationLog.WriteLine(@"ClustalWServiceHandler BVT : Submit job and Get Results is successfully completed using FetchResultSync()"); }
/// <summary> /// Validate submit job and Get Results using event handler /// </summary> /// <param name="nodeName">xml node name</param> void ValidateFetchResultsUsingEvent(string nodeName) { // Read input from config file string filepath = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FilePathNode); string emailId = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.EmailIDNode); string clusterOption = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.ClusterOptionNode); string actionAlign = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.ActionAlignNode); ClustalWParameters parameters = new ClustalWParameters(); parameters.Values[ClustalWParameters.Email] = emailId; parameters.Values[ClustalWParameters.ClusterOption] = clusterOption; parameters.Values[ClustalWParameters.ActionAlign] = actionAlign; IEnumerable<ISequence> sequence = null; // Get the input sequences using (FastAParser parser = new FastAParser(filepath)) { sequence = parser.Parse(); // Register event and submit request ConfigParameters configparams = new ConfigParameters(); ClustalWParser clustalparser = new ClustalWParser(); configparams.UseBrowserProxy = true; TestIClustalWServiceHandler handler = new TestIClustalWServiceHandler(clustalparser, configparams); handler.RequestCompleted += new EventHandler<ClustalWCompletedEventArgs>(handler_RequestCompleted); ServiceParameters svcparams = handler.SubmitRequest(sequence.ToList(), parameters); WaitHandle[] aryHandler = new WaitHandle[1]; aryHandler[0] = _resetEvent; WaitHandle.WaitAny(aryHandler); // Validate the submit job results Assert.IsFalse(string.IsNullOrEmpty(svcparams.JobId)); foreach (string key in svcparams.Parameters.Keys) { Assert.IsFalse(string.IsNullOrEmpty(svcparams.Parameters[key].ToString())); } _resetEvent.Close(); _resetEvent.Dispose(); } }
/// <summary> /// Validate general SubmitSearchRequest method test cases /// with the different parameters specified. /// <param name="nodeName">xml node name.</param> /// <param name="expectParameter">Expected parameter</param> /// <param name="compositionBasedStaticParameter">Composition based static parameter</param> /// </summary> void ValidateSubmitSearchMethod(string nodeName, string expectParameter, string compositionBasedStaticParameter) { // Gets the search query parameter and their values. string querySequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseValue); string queryProgramValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramValue); string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseParameter); string queryProgramParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramParameter); string alphabetName = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.AlphabetNameNode); string optionalExpectParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.BlastExpectParameter); string optionalExpectValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.BlastExpectparameterValue); string optionalCBSParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.BlastCompositionBasedStaticsParameter); string optionalCBSParameterValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.BlastCompositionBasedStaticsValue); string reqId = string.Empty; // Create a sequence. Sequence seq = new Sequence(Utility.GetAlphabet(alphabetName), querySequence); // Set Service confiruration parameters true. IBlastServiceHandler blastService = null; try { blastService = new NCBIBlastHandler(); ConfigParameters configParameters = new ConfigParameters(); configParameters.UseBrowserProxy = true; blastService.Configuration = configParameters; // Create search parameters object. BlastParameters queryParams = new BlastParameters(); // Add parameter values to search query parameters. if ((0 == string.Compare(expectParameter, null, true, CultureInfo.CurrentCulture)) && (0 == string.Compare(compositionBasedStaticParameter, null, true, CultureInfo.CurrentCulture))) { queryParams.Add(queryDatabaseParameter, queryDatabaseValue); queryParams.Add(queryProgramParameter, queryProgramValue); } else { queryParams.Add(queryDatabaseParameter, queryDatabaseValue); queryParams.Add(queryProgramParameter, queryProgramValue); queryParams.Add(optionalExpectParameter, optionalExpectValue); queryParams.Add(optionalCBSParameter, optionalCBSParameterValue); } // Submit search request with valid parameter. reqId = blastService.SubmitRequest(seq, queryParams); // Validate request identifier returned by web service. Assert.IsNotNull(reqId); // Logs to the VSTest GUI (ApplicationLog.Out) window ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast P1: Validation of SubmitSearchRequest() method was completed successfully.")); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast P1: Request Id {0} is as expected.", reqId)); } finally { if (blastService != null) ((IDisposable)blastService).Dispose(); } }
public void ValidateNcbiSubmitSearchRequestForQueryList() { string nodeName = Constants.EmRelDatabaseParametersNode; // Gets the search query parameter and their values. string querySequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseValue); string queryProgramValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramValue); string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseParameter); string queryProgramParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramParameter); string alphabetName = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.AlphabetNameNode); // Create a sequence. IList<ISequence> seqList = new List<ISequence>(); Sequence seq = new Sequence(Utility.GetAlphabet(alphabetName), querySequence); seqList.Add(seq); // Set Service confiruration parameters true. IBlastServiceHandler NcbiBlastService = null; try { NcbiBlastService = new NCBIBlastHandler(); ConfigParameters configParameters = new ConfigParameters(); configParameters.UseBrowserProxy = true; NcbiBlastService.Configuration = configParameters; // Create search parameters object. BlastParameters NcbiParams = new BlastParameters(); // Add parameter values to search query parameters. NcbiParams.Add(queryDatabaseParameter, queryDatabaseValue); NcbiParams.Add(queryProgramParameter, queryProgramValue); // Get Request identifier from web service for SeqList. // Automated this case to hit the Code. NcbiBlastService.SubmitRequest(seqList, NcbiParams); } catch (NotImplementedException) { ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Ncbi Blast P1 : Validated the exception successfully.")); } finally { if (NcbiBlastService != null) ((IDisposable)NcbiBlastService).Dispose(); } }
public void ValidateProcessRequestThread() { // Gets the search query parameter and their values. string alphabetName = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.AlphabetNameNode); string querySequence = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.QuerySequency); string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.DatabaseValue); string email = Constants.EmailForWS; string queryProgramValue = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.ProgramValue); string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.DatabaseParameter); string queryProgramParameter = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.ProgramParameter); string expect = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.Expectparameter); string emailNotify = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.EmailNotifyParameterNode); string jobName = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.JobNameParameterNode); string expectValue = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.ExpectNode); string emailNotifyValue = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.EmailNotifyNode); string jobNameValue = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.JobNameNode); // Set Blast Parameters Sequence seq = new Sequence(Utility.GetAlphabet(alphabetName), querySequence); BioHPCBlastHandler service = new BioHPCBlastHandler(); try { ConfigParameters configParameters = new ConfigParameters(); configParameters.EmailAddress = email; configParameters.Password = String.Empty; configParameters.UseBrowserProxy = true; service.Configuration = configParameters; service.RequestCompleted += new EventHandler<BlastRequestCompletedEventArgs>(service_RequestCompleted); BlastParameters searchParams = new BlastParameters(); // Set Request parameters. searchParams.Add(queryDatabaseParameter, queryDatabaseValue); searchParams.Add(queryProgramParameter, queryProgramValue); searchParams.Add(expect, expectValue); searchParams.Add(emailNotify, emailNotifyValue); searchParams.Add(jobName, jobNameValue); string reqId = String.Empty; // Waiting for the any previous request to get completed. Thread.Sleep(150000); // Create a request without passing sequence. reqId = service.SubmitRequest(seq, searchParams); // Cancel subitted job. bool result = service.CancelRequest(reqId); // validate the cancelled job. Assert.IsTrue(result); } finally { if (service != null) service.Dispose(); } }
/// <summary> /// Validate general fetching results.by passing /// differnt parameters for BioHPC Blast web service. /// <param name="nodeName">xml node name.</param> /// <param name="isFetchSynchronous">Is Fetch Synchronous?</param> /// </summary> void ValidateBioHPCBlastResultsFetch( string nodeName, bool isFetchSynchronous) { // Gets the search query parameter and their values. string alphabetName = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.AlphabetNameNode); string querySequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseValue); string email = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.EmailAdress); string queryProgramValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramValue); string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseParameter); string queryProgramParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramParameter); string expectedHitId = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.HitID); string expectedAccession = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.HitAccession); string expectedResultCount = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ResultsCount); string expectedHitsCount = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.HitsCount); string expectedEntropyStatistics = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.EntropyStatistics); string expectedKappaStatistics = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.KappaStatistics); string expectedLambdaStatistics = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.LambdaStatistics); string expectedLength = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.Length); int maxAttempts = int.Parse(utilityObj.xmlUtil.GetTextValue( nodeName, Constants.MaxAttemptsNode), (IFormatProvider)null); int waitingTime = int.Parse(utilityObj.xmlUtil.GetTextValue( nodeName, Constants.WaitTimeNode), (IFormatProvider)null); string expect = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.Expectparameter); string emailNotify = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.EmailNotifyParameterNode); string jobName = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.JobNameParameterNode); string expectValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ExpectNode); string emailNotifyValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.EmailNotifyNode); string jobNameValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.JobNameNode); object responseResults = null; Sequence seq = new Sequence( Utility.GetAlphabet(alphabetName), querySequence); // create BioHPC Blast Web Service object. IBlastServiceHandler service = new BioHPCBlastHandler(); ConfigParameters configPams = new ConfigParameters(); configPams.EmailAddress = email; configPams.Password = String.Empty; configPams.UseBrowserProxy = true; service.Configuration = configPams; BlastParameters searchParams = new BlastParameters(); // Set Request parameters. searchParams.Add(queryDatabaseParameter, queryDatabaseValue); searchParams.Add(queryProgramParameter, queryProgramValue); searchParams.Add(expect, expectValue); searchParams.Add(emailNotify, emailNotifyValue); searchParams.Add(jobName, jobNameValue); // Create a request without passing sequence. string reqId = service.SubmitRequest(seq, searchParams); // validate request identifier. Assert.IsNotNull(reqId); ServiceRequestInformation info = service.GetRequestStatus(reqId); if (info.Status != ServiceRequestStatus.Waiting && info.Status != ServiceRequestStatus.Ready && info.Status != ServiceRequestStatus.Queued) { string err = ApplicationLog.WriteLine("Unexpected status: '{0}'", info.Status); Assert.Fail(err); } // get async results, poll until ready int attempt = 1; while (attempt <= maxAttempts && info.Status != ServiceRequestStatus.Error && info.Status != ServiceRequestStatus.Ready) { ++attempt; if (isFetchSynchronous) { info = service.GetRequestStatus(reqId); Thread.Sleep( info.Status == ServiceRequestStatus.Waiting || info.Status == ServiceRequestStatus.Queued ? waitingTime * attempt : 0); } else { Thread.Sleep( info.Status == ServiceRequestStatus.Waiting || info.Status == ServiceRequestStatus.Queued ? waitingTime * attempt : 0); info = service.GetRequestStatus(reqId); } } IBlastParser blastXmlParser = new BlastXmlParser(); responseResults = blastXmlParser.Parse( new StringReader(service.GetResult(reqId, searchParams))); Assert.IsNotNull(responseResults); List<BlastResult> eBlastResults = responseResults as List<BlastResult>; Assert.IsNotNull(eBlastResults); Assert.AreEqual(eBlastResults.Count.ToString( (IFormatProvider)null), expectedResultCount); Assert.AreEqual(eBlastResults[0].Records.Count.ToString(( IFormatProvider)null), expectedResultCount); BlastSearchRecord record = eBlastResults[0].Records[0]; Assert.AreEqual(record.Statistics.Kappa.ToString( (IFormatProvider)null), expectedKappaStatistics); Assert.AreEqual(record.Statistics.Lambda.ToString( (IFormatProvider)null), expectedLambdaStatistics); Assert.AreEqual(record.Statistics.Entropy.ToString( (IFormatProvider)null), expectedEntropyStatistics); Assert.AreEqual(record.Hits.Count.ToString( (IFormatProvider)null), expectedHitsCount); Hit hit = record.Hits[0]; Assert.AreEqual(hit.Accession, expectedAccession); Assert.AreEqual(hit.Length.ToString((IFormatProvider)null), expectedLength); Assert.AreEqual(hit.Id.ToString((IFormatProvider)null), expectedHitId); Assert.AreEqual(hit.Hsps.Count.ToString((IFormatProvider)null), expectedResultCount); Console.WriteLine(string.Format((IFormatProvider)null, "BioHPC Blast BVT : Hits count '{0}'.", eBlastResults.Count)); Console.WriteLine(string.Format((IFormatProvider)null, "BioHPC Blast BVT : Accession '{0}'.", hit.Accession)); Console.WriteLine(string.Format((IFormatProvider)null, "BioHPC Blast BVT : Hit Id '{0}'.", hit.Id)); Console.WriteLine(string.Format((IFormatProvider)null, "BioHPC Blast BVT : Hits Count '{0}'.", hit.Hsps.Count)); // Validate the results Synchronously with the results got earlier. if (isFetchSynchronous) { IList<BlastResult> syncBlastResults = service.FetchResultsSync(reqId, searchParams) as List<BlastResult>; Assert.IsNotNull(syncBlastResults); if (null != eBlastResults[0].Records[0].Hits && 0 < eBlastResults[0].Records[0].Hits.Count && null != eBlastResults[0].Records[0].Hits[0].Hsps && 0 < eBlastResults[0].Records[0].Hits[0].Hsps.Count) { Assert.AreEqual( eBlastResults[0].Records[0].Hits[0].Hsps[0].QuerySequence, syncBlastResults[0].Records[0].Hits[0].Hsps[0].QuerySequence); } else { ApplicationLog.WriteLine( "No significant hits found with the these parameters."); Console.WriteLine( "No significant hits found with the these parameters."); } } }
public void ValidateBioHPCCtor() { // Gets the search query parameter and their values. string alphabetName = utilityObj.xmlUtil.GetTextValue(Constants.BioHPCAsynchronousResultsNode, Constants.AlphabetNameNode); string querySequence = utilityObj.xmlUtil.GetTextValue(Constants.BioHPCAsynchronousResultsNode, Constants.QuerySequency); string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.DatabaseValue); string email = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.EmailAdress); string queryProgramValue = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.ProgramValue); string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.DatabaseParameter); string queryProgramParameter = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.ProgramParameter); string expect = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.Expectparameter); string emailNotify = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.EmailNotifyParameterNode); string jobName = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.JobNameParameterNode); string expectValue = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.ExpectNode); string emailNotifyValue = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.EmailNotifyNode); string jobNameValue = utilityObj.xmlUtil.GetTextValue( Constants.BioHPCAsynchronousResultsNode, Constants.JobNameNode); Sequence seq = new Sequence(Utility.GetAlphabet(alphabetName), querySequence); // create BioHPC Blast Web Service object. IBlastServiceHandler service = new BioHPCBlastHandler(); ConfigParameters configParams = new ConfigParameters(); configParams.EmailAddress = email; configParams.Password = string.Empty; //configParams.UseBrowserProxy = true; service.Configuration = configParams; BlastParameters searchParams = new BlastParameters(); // Set Request parameters. searchParams.Add(queryDatabaseParameter, queryDatabaseValue); searchParams.Add(queryProgramParameter, queryProgramValue); searchParams.Add(expect, expectValue); searchParams.Add(emailNotify, emailNotifyValue); searchParams.Add(jobName, jobNameValue); try { // Create a request without passing sequence. string reqId = service.SubmitRequest(seq, searchParams); Assert.IsNotNull(reqId); } catch (WebException ex) { Assert.Fail(); Console.WriteLine(string.Format((IFormatProvider)null, "BioHPC Blast Bvt : Connection not successful with error '{0}'", ex.Message)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "BioHPC Blast Bvt : Connection not successful with error '{0}'", ex.Message)); } finally { if (service != null) ((IDisposable)service).Dispose(); } }
void ValidateCancelRequest(string nodeName) { // Read input from config file string filepath = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FilePathNode); string emailId = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.EmailIDNode); string clusterOption = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.ClusterOptionNode); string actionAlign = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.ActionAlignNode); ClustalWParameters parameters = new ClustalWParameters(); parameters.Values[ClustalWParameters.Email] = emailId; parameters.Values[ClustalWParameters.ClusterOption] = clusterOption; parameters.Values[ClustalWParameters.ActionAlign] = actionAlign; IEnumerable<ISequence> sequence = null; // Get the input sequences using (FastAParser parser = new FastAParser(filepath)) { sequence = parser.Parse(); // Submit job and cancel job // Validate cancel job is working as expected ConfigParameters configparams = new ConfigParameters(); ClustalWParser clustalparser = new ClustalWParser(); configparams.UseBrowserProxy = true; TestIClustalWServiceHandler handler = new TestIClustalWServiceHandler(clustalparser, configparams); ServiceParameters svcparams = handler.SubmitRequest(sequence.ToList(), parameters); bool result = handler.CancelRequest(svcparams); Assert.IsTrue(result); ApplicationLog.WriteLine(string.Concat("JobId:", svcparams.JobId)); Assert.IsFalse(string.IsNullOrEmpty(svcparams.JobId)); foreach (string key in svcparams.Parameters.Keys) { Assert.IsFalse(string.IsNullOrEmpty(svcparams.Parameters[key].ToString())); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "{0} : {1}", key, svcparams.Parameters[key].ToString())); } } ApplicationLog.WriteLine( "ClustalWServiceHandler BVT : Cancel job is submitted as expected"); }
/// <summary> /// Validate general AddIfAbsent() method by passing /// differnt XML node name /// <param name="nodeName">xml node name.</param> /// </summary> void ValidateAddIfAbsentMethod(string nodeName) { // Gets the search query parameter and their values. string querySequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string querySequenceParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequencyparameter); // Set Service confiruration parameters true. IBlastServiceHandler blastService = null; try { blastService = new NCBIBlastHandler(); ConfigParameters configParameters = new ConfigParameters(); configParameters.UseBrowserProxy = true; blastService.Configuration = configParameters; // Create search parameters object. BlastParameters queryParams = new BlastParameters(); // Add mandatory sequence as query paramter queryParams.AddIfAbsent(querySequenceParameter, querySequence); // Validate added sequence to request setting configuration. Assert.IsTrue(queryParams.Settings.ContainsValue(querySequence)); // Logs to the VSTest GUI (ApplicationLog.Out) window ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast P1: Validation of Add method was completed successfully.")); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast P1: Query Sequence{0} is as expected.", querySequence)); } finally { if (blastService != null) ((IDisposable)blastService).Dispose(); } }
/// <summary> /// Validate submit job and FetchResultAsync() using multiple input sequences /// </summary> /// <param name="nodeName">xml node name</param> void ValidateFetchResultAsync(string nodeName) { // Read input from config file string filepath = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.FilePathNode); string emailId = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.EmailIDNode); string clusterOption = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.ClusterOptionNode); string actionAlign = utilityObj.xmlUtil.GetTextValue(nodeName, Constants.ActionAlignNode); ConfigParameters configparams = new ConfigParameters(); ClustalWParser clustalparser = new ClustalWParser(); configparams.UseBrowserProxy = true; TestIClustalWServiceHandler handler = new TestIClustalWServiceHandler(clustalparser, configparams); ClustalWParameters parameters = new ClustalWParameters(); parameters.Values[ClustalWParameters.Email] = emailId; parameters.Values[ClustalWParameters.ClusterOption] = clusterOption; parameters.Values[ClustalWParameters.ActionAlign] = actionAlign; // Get input sequences using (FastAParser parser = new FastAParser(filepath)) { IEnumerable<ISequence> sequence = parser.Parse(); // Submit job and validate it returned valid job id and control id ServiceParameters svcparameters = handler.SubmitRequest(sequence.ToList(), parameters); Assert.IsFalse(string.IsNullOrEmpty(svcparameters.JobId)); foreach (string key in svcparameters.Parameters.Keys) { Assert.IsFalse(string.IsNullOrEmpty(svcparameters.Parameters[key].ToString())); } // Get the results and validate it is not null. int retrycount = 0; ServiceRequestInformation info; do { info = handler.GetRequestStatus(svcparameters); if (info.Status == ServiceRequestStatus.Ready) { break; } Thread.Sleep( info.Status == ServiceRequestStatus.Waiting || info.Status == ServiceRequestStatus.Queued ? Constants.ClusterRetryInterval * retrycount : 0); retrycount++; } while (retrycount < 10); ClustalWResult result = null; if (info.Status == ServiceRequestStatus.Ready) { result = handler.FetchResultsAsync(svcparameters); } Assert.IsNotNull(result, "Failed to retrieve results from submitted task, Server may be offline or slow."); Assert.IsNotNull(result.SequenceAlignment); foreach (IAlignedSequence alignSeq in result.SequenceAlignment.AlignedSequences) { ApplicationLog.WriteLine("Aligned Sequence Sequences : "); foreach (ISequence seq in alignSeq.Sequences) { ApplicationLog.WriteLine(string.Concat("Sequence:", seq.ToString())); } } } ApplicationLog.WriteLine(@"ClustalWServiceHandler BVT : Submit job and Get Results is successfully completed using FetchResultAsync()"); }
/// <summary> /// Validate general SubmitHttpRequest() method by passing /// differnt XML node name /// <param name="nodeName">xml node name.</param> /// </summary> void ValidateSubmitHttpRequestMethod(string nodeName) { // Gets the search query parameter and their values. string querySequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseValue); string queryProgramValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramValue); string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseParameter); string queryProgramParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramParameter); string queryParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequencyparameter); string webUri = utilityObj.xmlUtil.GetTextValue( Constants.BlastRequestParametersNode, Constants.BlastWebServiceUri); WebAccessorResponse requestResult = null; // Set Service confiruration parameters true. IBlastServiceHandler blastService = null; try { blastService = new NCBIBlastHandler(); ConfigParameters configParameters = new ConfigParameters(); configParameters.UseBrowserProxy = true; blastService.Configuration = configParameters; // Create search parameters object. BlastParameters queryParams = new BlastParameters(); // Add mandatory parameter values to search query parameters. queryParams.Add(queryParameter, querySequence); queryParams.Add(queryDatabaseParameter, queryDatabaseValue); queryParams.Add(queryProgramParameter, queryProgramValue); //Submit Http request WebAccessor webAccessor = new WebAccessor(); webAccessor.GetBrowserProxy(); requestResult = webAccessor.SubmitHttpRequest(new Uri(webUri), true, queryParams.Settings); // Validate the Submitted request. Assert.IsTrue(requestResult.IsSuccessful); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Http Request was submitted successfully")); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast P1: DataBase Value {0} is as expected.", queryDatabaseValue)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast P1: Program Value {0} is as expected.", queryProgramValue)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast P1: Query sequence {0} is as expected.", querySequence)); webAccessor.Close(); } finally { if (blastService != null) ((IDisposable)blastService).Dispose(); } }
/// <summary> /// A helper method for the BLAST task. Submits a job to BLAST. /// </summary> /// <param name="qp"></param> /// <returns></returns> private BlastJob submit(QueueSequence qp) { // Configure BLAST service ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = Up.BlastUseBrowserProxy; BlastParameters searchParams = new BlastParameters(); string query = ">" + qp.Sequence.DisplayID + "\n" + qp.Sequence.ToString(); searchParams.Add("Program", Up.BlastProgram); searchParams.Add("Database", Up.BlastDatabase); searchParams.Add("GeneticCode", Up.BlastGeneticCode); searchParams.Add("Expect", "10"); searchParams.Add("Query", query); // Create BLAST service NCBIBlastHandler blastService = new NCBIBlastHandler(); blastService.Configuration = configParams; // Submit BLAST Job string jobId; try { jobId = blastService.SubmitRequest(qp.Sequence, searchParams); } catch(Exception eee) { if (eee.Message.Contains("WebException")) { ToggleProxy(); } BlastJob blastJob2 = new BlastJob(); blastJob2.JobStatus = BlastJob.FAILED; blastJob2.Query = qp.Sequence; blastJob2.Position = qp.Position; return blastJob2; } // Make sure job was submitted successfully ServiceRequestInformation info = blastService.GetRequestStatus(jobId); if (info.Status != ServiceRequestStatus.Waiting && info.Status != ServiceRequestStatus.Ready && info.Status != ServiceRequestStatus.Queued) { //Console.WriteLine("\tError Submitting Job: " + info.Status); BlastJob blastJob2 = new BlastJob(); blastJob2.JobStatus = BlastJob.FAILED; blastJob2.Query = qp.Sequence; blastJob2.Position = qp.Position; return blastJob2; } Thread.Sleep(BlastQueue.SubmitDelay); //Console.WriteLine("\tSuccessfully submitted jobId: " + jobId); // Return a BlastJob, set jobStatus to BUSY BlastJob blastJob = new BlastJob() { JobId = jobId, SearchParams = searchParams, ConfigParams = configParams, BlastService = blastService, JobStatus = BlastJob.BUSY, Query = qp.Sequence, Position = qp.Position }; return blastJob; }
public void ValidateAddMethodForDifferentDatabaseValue() { // Gets the search query parameter and their values. string databaseParameter = utilityObj.xmlUtil.GetTextValue( Constants.BlastDataBaseNode, Constants.DatabaseParameter); string swissprotDBValue = utilityObj.xmlUtil.GetTextValue( Constants.BlastDataBaseNode, Constants.SwissprotDBValue); string expectedParametersCount = utilityObj.xmlUtil.GetTextValue( Constants.BlastProgramNode, Constants.expectedParameterCount); // Set Service confiruration parameters true. IBlastServiceHandler blastService = null; try { blastService = new NCBIBlastHandler(); ConfigParameters configParameters = new ConfigParameters(); configParameters.UseBrowserProxy = true; blastService.Configuration = configParameters; // Create search parameters object. BlastParameters queryParams = new BlastParameters(); // Add a swissprot database parameter queryParams.Add(databaseParameter, swissprotDBValue); // Validate swissprot database parameter Assert.IsTrue(queryParams.Settings.ContainsValue(swissprotDBValue)); Assert.AreEqual(queryParams.Settings.Count.ToString( (IFormatProvider)null), expectedParametersCount); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast P1: Validation of Swissprot database parameter was completed successfully.")); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast P1: Default database {0} is as expected.", swissprotDBValue)); } finally { if (blastService != null) ((IDisposable)blastService).Dispose(); } }
/// <summary> /// Validate general fetching results.by passing /// differnt parameters. /// <param name="nodeName">xml node name.</param> /// <param name="expectParameter">expectparameter name</param> /// <param name="compositionBasedStaticParameter">compositionBasedStaticParameter name</param> /// <param name="isFetchSynchronous">Is Fetch Synchronous?</param> /// </summary> void ValidateGeneralFetchResults( string nodeName, string expectParameter, string compositionBasedStaticParameter, bool isFetchSynchronous) { // Gets the search query parameter and their values. string queryParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequencyparameter); string querySequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseValue); string queryProgramValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramValue); string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseParameter); string queryProgramParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramParameter); string optionalExpectParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.BlastExpectParameter); string optionalExpectValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.BlastExpectparameterValue); string optionalCBSParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.BlastCompositionBasedStaticsParameter); string optionalCBSParameterValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.BlastCompositionBasedStaticsValue); string expectedHitId = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.HitID); string expectedAccession = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.HitAccession); object responseResults = null; NCBIBlastHandler service = new NCBIBlastHandler(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; service.Configuration = configParams; ISequence sequence = new Sequence(Alphabets.DNA, "ATCGGGGCCC"); BlastParameters searchParams = new BlastParameters(); // Set mandatory parameters only if optional parameters are null if ((0 == string.Compare(expectParameter, null, true, CultureInfo.CurrentCulture)) && (0 == string.Compare(compositionBasedStaticParameter, null, true, CultureInfo.CurrentCulture))) { searchParams.Add(queryParameter, querySequence); searchParams.Add(queryDatabaseParameter, queryDatabaseValue); searchParams.Add(queryProgramParameter, queryProgramValue); } else { searchParams.Add(queryParameter, querySequence); searchParams.Add(queryDatabaseParameter, queryDatabaseValue); searchParams.Add(queryProgramParameter, queryProgramValue); searchParams.Add(optionalExpectParameter, optionalExpectValue); searchParams.Add(optionalCBSParameter, optionalCBSParameterValue); } // Careate a request without passing sequence. string reqId = service.SubmitRequest(sequence, searchParams); // validate request identifier. Assert.IsNotNull(reqId); // submit request identifier and get the status ServiceRequestInformation info = service.GetRequestStatus(reqId); if (info.Status != ServiceRequestStatus.Waiting && info.Status != ServiceRequestStatus.Ready) { string err = ApplicationLog.WriteLine("Unexpected status: '{0}'", info.Status); Assert.Fail(err); } // get async results, poll until ready int maxAttempts = 10; int attempt = 1; while (attempt <= maxAttempts && info.Status != ServiceRequestStatus.Error && info.Status != ServiceRequestStatus.Ready) { if (isFetchSynchronous) { info = service.GetRequestStatus(reqId); Thread.Sleep(info.Status == ServiceRequestStatus.Waiting || info.Status == ServiceRequestStatus.Queued ? 20000 * attempt : 0); } else { Thread.Sleep(info.Status == ServiceRequestStatus.Waiting ? 30000 : 0); info = service.GetRequestStatus(reqId); } ++attempt; } IBlastParser blastXmlParser = new BlastXmlParser(); responseResults = blastXmlParser.Parse( new StringReader(service.GetResult(reqId, searchParams))); // Validate blast results. Assert.IsNotNull(responseResults); List<BlastResult> blastResults = responseResults as List<BlastResult>; Assert.IsNotNull(blastResults); BlastSearchRecord record = blastResults[0].Records[0]; if (record.Hits.Count > 0) { Hit hit = record.Hits[0]; Assert.AreEqual(hit.Accession, expectedAccession); Assert.AreEqual(hit.Id.ToString((IFormatProvider)null), expectedHitId); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast BVT: Hits count '{0}'.", blastResults.Count)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast BVT: Accession '{0}'.", hit.Accession)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast BVT: Hit Id '{0}'.", hit.Id)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast BVT: Hits Count '{0}'.", hit.Hsps.Count)); } // Validate the results Synchronously with the results got earlier. if (isFetchSynchronous) { IList<BlastResult> syncBlastResults = service.FetchResultsSync(reqId, searchParams) as List<BlastResult>; Assert.IsNotNull(syncBlastResults); if (null != blastResults[0].Records[0].Hits && 0 < blastResults[0].Records[0].Hits.Count && null != blastResults[0].Records[0].Hits[0].Hsps && 0 < blastResults[0].Records[0].Hits[0].Hsps.Count) { Assert.AreEqual(blastResults[0].Records[0].Hits[0].Hsps[0].QuerySequence, syncBlastResults[0].Records[0].Hits[0].Hsps[0].QuerySequence); } else { ApplicationLog.WriteLine("No significant hits found with the these parameters."); } } }
/// <summary> /// Validate general fetching results by passing /// different parameters. /// </summary> /// <param name="nodeName">xml node name</param> /// <param name="NcbiCtorPam">Ncbi constructor different parameters</param> void GeneralMethodToValidateResults(string nodeName, NcbiWebServiceCtorParameters NcbiCtorPam) { // Gets the search query parameter and their values. string queryParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequencyparameter); string querySequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseValue); string queryProgramValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramValue); string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseParameter); string queryProgramParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramParameter); string expectedHitId = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.HitID); string expectedAccession = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.HitAccession); object responseResults = null; NCBIBlastHandler service; IBlastParser blastXmlParser = new BlastXmlParser(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; switch (NcbiCtorPam) { case NcbiWebServiceCtorParameters.ConfigPams: service = new NCBIBlastHandler(configParams); break; case NcbiWebServiceCtorParameters.ParserAndConfigPams: service = new NCBIBlastHandler(blastXmlParser, configParams); break; default: service = new NCBIBlastHandler(); break; } ISequence sequence = new Sequence(Utility.GetAlphabet("DNA"), "ATCGCC"); BlastParameters searchParams = new BlastParameters(); searchParams.Add(queryParameter, querySequence); searchParams.Add(queryDatabaseParameter, queryDatabaseValue); searchParams.Add(queryProgramParameter, queryProgramValue); // Careate a request without passing sequence. string reqId = service.SubmitRequest(sequence, searchParams); // validate request identifier. Assert.IsNotNull(reqId); // submit request identifier and get the status ServiceRequestInformation info = service.GetRequestStatus(reqId); if (info.Status != ServiceRequestStatus.Waiting && info.Status != ServiceRequestStatus.Ready) { string err = ApplicationLog.WriteLine("Unexpected status: '{0}'", info.Status); Assert.Fail(err); } // get async results, poll until ready int maxAttempts = 10; int attempt = 1; while (attempt <= maxAttempts && info.Status != ServiceRequestStatus.Error && info.Status != ServiceRequestStatus.Ready) { Thread.Sleep(info.Status == ServiceRequestStatus.Waiting ? 40000 : 0); info = service.GetRequestStatus(reqId); ++attempt; } responseResults = blastXmlParser.Parse( new StringReader(service.GetResult(reqId, searchParams))); // Validate blast results. Assert.IsNotNull(responseResults); List<BlastResult> blastResults = responseResults as List<BlastResult>; Assert.IsNotNull(blastResults); BlastSearchRecord record = blastResults[0].Records[0]; Hit hit = null; if (record.Hits.Count > 0) { hit = record.Hits[0]; Assert.AreEqual(hit.Accession, expectedAccession); Assert.AreEqual(hit.Id.ToString((IFormatProvider)null), expectedHitId); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast BVT: Hits count '{0}'.", blastResults.Count)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast BVT: Accession '{0}'.", hit.Accession)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast BVT: Hit Id '{0}'.", hit.Id)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Blast BVT: Hits Count '{0}'.", hit.Hsps.Count)); } }
public void ValidateBioHPCBlastWebServiceProperties() { ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; BioHPCBlastHandler service = null; try { service = new BioHPCBlastHandler(configParams); // Validate BioHPC Blast Web Service properties. Assert.AreEqual(Constants.BioHPCWebServiceDescription, service.Description); Assert.AreEqual(Constants.BioHPCWebServiceName, service.Name); Assert.IsNotNull(service.Configuration); Assert.IsNotNull(service.Parser); ApplicationLog.WriteLine( "BioHPC Blast Bvt : Successfully validated the BioHPC Blast WebService Properties"); Console.WriteLine( "BioHPC Blast Bvt : Successfully validated the BioHPC Blast WebService Properties"); } finally { if (service != null) ((IDisposable)service).Dispose(); } }
/// <summary> /// Validate general http request status by /// differnt parameters for BioHPC Blast Web Service. /// <param name="nodeName">different alphabet node name</param> /// </summary> void ValidateBioHPCGeneralGetRequestStatusMethod(string nodeName, string moleculeType) { // Gets the search query parameter and their values. string alphabetName = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.AlphabetNameNode); string querySequence = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.QuerySequency); string queryDatabaseValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseValue); string queryProgramValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramValue); string queryDatabaseParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.DatabaseParameter); string queryProgramParameter = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ProgramParameter); string email = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.EmailAdress); string expect = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.Expectparameter); string emailNotify = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.EmailNotifyParameterNode); string jobName = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.JobNameParameterNode); string expectValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.ExpectNode); string emailNotifyValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.EmailNotifyNode); string jobNameValue = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.JobNameNode); // Create a sequence. Sequence seq = new Sequence(Utility.GetAlphabet(alphabetName), querySequence); // Set Service confiruration parameters true. IBlastServiceHandler service = new BioHPCBlastHandler(); ConfigParameters configParameters = new ConfigParameters(); configParameters.EmailAddress = email; configParameters.Password = String.Empty; configParameters.UseBrowserProxy = true; service.Configuration = configParameters; // Create search parameters object. BlastParameters queryParams = new BlastParameters(); // Add mandatory parameter values to search query parameters. queryParams.Add(queryDatabaseParameter, queryDatabaseValue); queryParams.Add(queryProgramParameter, queryProgramValue); queryParams.Add(expect, expectValue); queryParams.Add(emailNotify, emailNotifyValue); queryParams.Add(jobName, jobNameValue); // Create a request // Waiting for the any previous request to get completed. Thread.Sleep(150000); string reqId = service.SubmitRequest(seq, queryParams); // validate request identifier. Assert.IsNotNull(reqId); // submit request identifier and get the status ServiceRequestInformation reqInfo = service.GetRequestStatus(reqId); // Validate job status. if (reqInfo.Status != ServiceRequestStatus.Waiting && reqInfo.Status != ServiceRequestStatus.Ready && reqInfo.Status != ServiceRequestStatus.Queued) { string error = ApplicationLog.WriteLine(string.Concat( "Unexpected error ", reqInfo.Status)); Assert.Fail(error); Console.WriteLine(string.Concat( "Unexpected error ", reqInfo.Status)); } else { Console.WriteLine(string.Concat( "Request status ", reqInfo.Status)); } }