/// <summary> /// Validate a Azure Blast Service Request without setting any config parameters. /// Input : Invalid config parameters. /// Output : Invalidate request status. /// </summary> public void InvalidateAzureWebServiceRequestStatusWithoutConfigPams() { // 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); Sequence seq = new Sequence(Utility.GetAlphabet(alphabet), querySequence); string reqId = string.Empty; // Set Service confiruration parameters true. AzureBlastHandler service = new AzureBlastHandler(); // Dispose Azure Blast Handler. service.Dispose(); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; configParams.DefaultTimeout = 1; configParams.Connection = new Uri(Constants.AzureUri); service.Configuration = configParams; BlastParameters searchParams = new BlastParameters(); // Get Request identifier from web service. try { reqId = service.SubmitRequest(seq, searchParams); Assert.IsTrue(string.IsNullOrEmpty(reqId)); Assert.Fail(); } catch (WebException) { ApplicationLog.WriteLine("AzureWebService P2 : Successfully validated the exception"); Console.WriteLine("AzureWebService P2 : Successfully validated the exception"); } }
/// <summary> /// Get Request Status /// </summary> /// <param name="blastParameters">Blast Input config parameters</param> /// <returns></returns> private TestCaseOutput GetRequestStatus(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 requestStatus = 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. requestStatus = service.GetRequestStatus(reqId); } finally { if (service != null) { ((IDisposable)service).Dispose(); } } return(new TestCaseOutput(requestStatus, false)); }
/// <summary> /// Validate the Azure Blast Service Request status Queued. /// Input : Invalid request parameters. /// Output : Invalidate request status. /// </summary> public void InvalidateAzureWebServiceRequestStatus() { // Gets the search query parameter and their values. string queryProgramValue = _utilityObj._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.ProgramValue); string queryDatabaseParameter = _utilityObj._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.DatabaseParameter); string queryDatabaseValue = _utilityObj._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.DatabaseValue); string queryProgramParameter = _utilityObj._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.ProgramParameter); string reqId = string.Empty; ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; configParams.DefaultTimeout = 1; configParams.RetryInterval = 10; configParams.RetryCount = 1; configParams.Connection = new Uri(Constants.AzureUri); // Create search parameters object. BlastParameters searchParams = new BlastParameters(); // Add mandatory parameter values to search query parameters. searchParams.Add(queryProgramParameter, queryProgramValue); searchParams.Add(queryDatabaseParameter, queryDatabaseValue); IBlastServiceHandler service = null; try { service = new AzureBlastHandler(configParams); // Set Service confiruration parameters true. service.Configuration = configParams; // Get Request identifier from web service. //reqId = service.SubmitRequest(seq, searchParams); } catch (WebException ex) { ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "AzureWebService P2 : Connection Failed with the error '{0}'", ex.Message)); Console.WriteLine(string.Format((IFormatProvider)null, "AzureWebService P2 : Connection Failed with the error '{0}'", ex.Message)); Assert.Inconclusive("Test case ignored due to connection failure"); } finally { if (service != null) { ((IDisposable)service).Dispose(); } } try { object responseResults = service.FetchResultsSync(reqId, searchParams); Assert.IsNotNull(responseResults); Assert.Fail(); } catch (WebException) { ApplicationLog.WriteLine("AzureWebService P2 : Successfully validated the exception"); Console.WriteLine("AzureWebService P2 : Successfully validated the exception"); } }
/// <summary> /// Validates general Add method test cases with the xml node name specified. /// </summary> /// <param name="nodeName">xml node name.</param> /// <param name="isSyncFetch">True for Synchronous fetch</param> void GeneralMethodToValidateResults(string nodeName, bool isSyncFetch) { // 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 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 expectedHspHitsCount = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.HspHitsCount); string expectedSleepTime = utilityObj.xmlUtil.GetTextValue( nodeName, Constants.SleepTime); string reqId = string.Empty; object responseResults = null; int maxAttempts = 20; int attempt = 1; 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 info = service.GetRequestStatus(reqId); // Ping service until request staus is ready. while (attempt <= maxAttempts && info.Status != ServiceRequestStatus.Ready && info.Status != ServiceRequestStatus.Error) { System.Threading.Thread.Sleep(Convert.ToInt32(expectedSleepTime, (IFormatProvider)null)); ++attempt; info = service.GetRequestStatus(reqId); } // Get results. if (isSyncFetch) { responseResults = service.FetchResultsSync(reqId, searchParams); } else { responseResults = service.GetResult(reqId, searchParams); } Assert.IsNotNull(responseResults); if (!isSyncFetch) { //Parse and validate results BlastXmlParser parser = new BlastXmlParser(); IList <BlastResult> blastResults = parser.Parse(new StringReader(responseResults.ToString())); Assert.AreEqual(blastResults.Count.ToString( (IFormatProvider)null), expectedHitsCount); Assert.AreEqual(blastResults[0].Records.Count.ToString( (IFormatProvider)null), expectedHitsCount); BlastSearchRecord record = blastResults[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), expectedResultCount); Hit hit = record.Hits[0]; Assert.AreEqual(hit.Accession, expectedAccession); Assert.AreEqual(hit.Id.ToString((IFormatProvider)null), expectedHitId); Assert.AreEqual(hit.Hsps.Count.ToString((IFormatProvider)null), expectedHspHitsCount); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Azure Blast BVT: Hits Count '{0}'.", hit.Hsps.Count)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Azure Blast BVT: Hits Count '{0}'.", hit.Hsps.Count)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Azure Blast BVT: Hits count '{0}'.", blastResults.Count)); ApplicationLog.WriteLine(string.Format((IFormatProvider)null, "Azure Blast BVT: Accession '{0}'.", hit.Accession)); } }
/// <summary> /// Validate the Azure Blast Service Request status Queued. /// Input : Invalid request parameters. /// Output : Invalidate request status. /// </summary> public void InvalidateAzureWebServiceRequestStatus() { // 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; Sequence seq = new Sequence(Utility.GetAlphabet(alphabet), querySequence); ConfigParameters configParams = new ConfigParameters(); configParams.UseBrowserProxy = true; configParams.DefaultTimeout = 1; configParams.RetryInterval = 10; configParams.RetryCount = 1; configParams.Connection = new Uri(Constants.AzureUri); // Set Service confiruration parameters true. IBlastServiceHandler service = new AzureBlastHandler(configParams); 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); try { // Get Request identifier from web service. reqId = service.SubmitRequest(seq, searchParams); } catch (Exception ex) { ApplicationLog.WriteLine(string.Format( "AzureWebService P2 : Connection Failed with the error '{0}'", ex.Message)); Console.WriteLine(string.Format( "AzureWebService P2 : Connection Failed with the error '{0}'", ex.Message)); Assert.Ignore("Test case ignored due to connection failure"); } try { object responseResults = service.FetchResultsSync(reqId, searchParams); Assert.IsNotNull(responseResults); Assert.Fail(); } catch (Exception) { ApplicationLog.WriteLine("AzureWebService P2 : Successfully validated the exception"); Console.WriteLine("AzureWebService P2 : Successfully validated the exception"); } }
/// <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); Console.WriteLine(string.Concat( "Azure Blast BVT: Unexpected error ", reqInfo.Status)); } else { Console.WriteLine(string.Format((IFormatProvider)null, "Azure Blast BVT: Client Request status has been validated successfully.")); Console.WriteLine(string.Concat( "Azure Blast BVT: Request status ", reqInfo.Status)); } }
/// <summary> /// Validate if the connection is successful /// </summary> /// <returns>True, if connection is successful</returns> static bool ValidateWebServiceConnection() { // 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 expectedSleepTime = Utility._xmlUtil.GetTextValue( Constants.AzureBlastResultsNode, Constants.SleepTime); string reqId = string.Empty; object responseResults = null; int maxAttempts = 20; int attempt = 1; 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); try { // Get Request identifier from web service. reqId = service.SubmitRequest(seq, searchParams); // Get request information for first time. ServiceRequestInformation info = service.GetRequestStatus(reqId); // Ping service until request staus is ready. while (attempt <= maxAttempts && info.Status != ServiceRequestStatus.Ready && info.Status != ServiceRequestStatus.Error) { System.Threading.Thread.Sleep(Convert.ToInt32(expectedSleepTime)); ++attempt; info = service.GetRequestStatus(reqId); } responseResults = service.GetResult(reqId, searchParams); if (null == responseResults) { Console.WriteLine( "Azure BVT : Connection not successful with no Response result"); ApplicationLog.WriteLine( "Azure BVT : Connection not successful with no Response result"); return(false); } } catch (Exception ex) { Console.WriteLine(string.Format( "Azure BVT : Connection not successful with error '{0}'", ex.Message)); ApplicationLog.WriteLine(string.Format( "Azure BVT : Connection not successful with error '{0}'", ex.Message)); return(false); } Console.WriteLine("Azure BVT : Connection Successful"); return(true); }