Beispiel #1
0
        public override FindMetadataResultList GetMetadataSearchResults(string SearchToken, int MinResults, [System.Xml.Serialization.XmlIgnoreAttribute()] bool MinResultsSpecified, int MaxResults, [System.Xml.Serialization.XmlIgnoreAttribute()] bool MaxResultsSpecified, string WaitTime)
        {
            ParametersValidation validation = new ParametersValidation();

            validation.Add(ParameterType.String, "SearchToken", SearchToken);
            int?minResults = null;

            if (MinResultsSpecified)
            {
                minResults = MinResults;
            }
            validation.Add(ParameterType.OptionalInt, "MinResults", minResults);
            int?maxResults = null;

            if (MaxResultsSpecified)
            {
                maxResults = MaxResults;
            }
            validation.Add(ParameterType.OptionalInt, "MaxResults", maxResults);
            validation.Add(ParameterType.String, "WaitTime", WaitTime);

            FindMetadataResultList result = (FindMetadataResultList)ExecuteGetCommand(validation, SearchServiceTest.GetMetadataSearchResultsTest);

            return(result);
        }
Beispiel #2
0
        protected List <FindMetadataResult> GetAllMetadataSearchResults(
            string searchToken,
            int?minResults,
            int?maxResults,
            string waitTime,
            out SearchState state)
        {
            List <FindMetadataResult> metadataList = new List <FindMetadataResult>();

            FindMetadataResultList response = null;

            DateTime started      = DateTime.Now;
            DateTime dueTo        = started.AddSeconds(_searchTimeout);
            bool     completed    = true;
            DateTime lastResponse = DateTime.Now;

            LogTestEvent(string.Format("All results should be received by {0}{1}",
                                       dueTo.StdTimeToString(), Environment.NewLine));

            do
            {
                RunStep(() =>
                {
                    response = Client.GetMetadataSearchResults(new GetMetadataSearchResults()
                    {
                        SearchToken         = searchToken,
                        WaitTime            = waitTime,
                        MinResults          = minResults ?? 0,
                        MaxResults          = maxResults ?? 0,
                        MinResultsSpecified = minResults == null ? false : true,
                        MaxResultsSpecified = maxResults == null ? false : true
                    }).ResultList;
                }, "Get Metadata Search results");
                lastResponse = DateTime.Now;

                if (response.Result != null)
                {
                    metadataList.AddRange(response.Result);
                }
                if (lastResponse > dueTo)
                {
                    completed = false;
                    break;
                }
            } while (response.SearchState != SearchState.Completed);

            state = response.SearchState;

            Assert(completed,
                   string.Format("Completed state has not been achieved (last response received at {0}, State: {1})", lastResponse.StdTimeToString(), response.SearchState),
                   "Check that search has been completed in due time");

            return(metadataList);
        }
        public override FindMetadataResultList GetMetadataSearchResults(string SearchToken, int MinResults, [System.Xml.Serialization.XmlIgnoreAttribute()] bool MinResultsSpecified, int MaxResults, [System.Xml.Serialization.XmlIgnoreAttribute()] bool MaxResultsSpecified, [System.Xml.Serialization.XmlElementAttribute(DataType = "duration")] string WaitTime)
        {
            RecordingEntitiesSearchSession session = SearchSessionManager.Instance.GetSession(SearchToken) as RecordingEntitiesSearchSession;

            if (session != null)
            {
                List <FindMetadataResult> data = (List <FindMetadataResult>)session.Data;

                FindMetadataResultList list = new FindMetadataResultList();

                Random rnd = new Random();
                int    cnt = Math.Min(rnd.Next(1, 4), data.Count);

                rnd = new Random();
                int sleep = rnd.Next(1, 3);
                System.Threading.Thread.Sleep(400 * sleep + 450);

                list.Result = new FindMetadataResult[cnt];
                for (int i = 0; i < cnt; i++)
                {
                    list.Result[i] = data[0];
                    data.RemoveAt(0);
                }
                session.ResultsSent = session.ResultsSent + cnt;
                list.SearchState    = data.Count > 0 ? SearchState.Searching : SearchState.Completed;

                if (data.Count == 0)
                {
                    SearchSessionManager.Instance.Sessions.Remove(session);
                }
                return(list);
            }
            else
            {
                CommonUtils.ReturnFault(new string[] { "Sender", "InvalidArgVal", "InvalidToken" });
                return(null);
            }
        }