internal Utils.Results Process(string userAgentPattern, string devicePattern, Validation state) { _dataSet.ResetCache(); var provider = new Provider(_dataSet); var match = provider.CreateMatch(); var results = new FiftyOne.UnitTests.Utils.Results(); var random = new Random(0); var httpHeaders = _dataSet.HttpHeaders.Where(i => i.Equals("User-Agent") == false).ToArray(); // Loop through setting 2 user agent headers. var userAgentIterator = UserAgentGenerator.GetEnumerable(20000, userAgentPattern).GetEnumerator(); var deviceIterator = UserAgentGenerator.GetEnumerable(20000, devicePattern).GetEnumerator(); while (userAgentIterator.MoveNext() && deviceIterator.MoveNext()) { var headers = new NameValueCollection(); headers.Add(httpHeaders[random.Next(httpHeaders.Length)], deviceIterator.Current); headers.Add("User-Agent", userAgentIterator.Current); provider.Match(headers, match); Assert.IsTrue(match.Signature == null, "Signature not equal null"); Assert.IsTrue(match.Difference == 0, "Match difference not equal to zero"); Assert.IsTrue(match.Method == MatchMethods.Exact, "Match method not equal to Exact"); Validate(match, state); results.Methods[match.Method]++; } return(results); }
internal Utils.Results Process(string userAgentPattern, string devicePattern, Validation state) { var results = new FiftyOne.UnitTests.Utils.Results(); var random = new Random(0); var httpHeaders = _wrapper.HttpHeaders.Where(i => i.Equals("User-Agent") == false).ToArray(); // Loop through setting 2 user agent headers. var userAgentIterator = UserAgentGenerator.GetEnumerable(TEST_ITERATIONS, userAgentPattern).GetEnumerator(); var deviceIterator = UserAgentGenerator.GetEnumerable(TEST_ITERATIONS, devicePattern).GetEnumerator(); while (userAgentIterator.MoveNext() && deviceIterator.MoveNext()) { var headers = new NameValueCollection(); switch (random.Next(3)) { case 0: // Capitialise HTTP headers. headers.Add(httpHeaders[random.Next(httpHeaders.Length)].ToUpperInvariant(), deviceIterator.Current); headers.Add("User-Agent".ToUpperInvariant(), userAgentIterator.Current); break; case 1: // Lower HTTP headers. headers.Add(httpHeaders[random.Next(httpHeaders.Length)].ToLowerInvariant(), deviceIterator.Current); headers.Add("User-Agent".ToLowerInvariant(), userAgentIterator.Current); break; default: // Use standard unaltered formats. headers.Add(httpHeaders[random.Next(httpHeaders.Length)], deviceIterator.Current); headers.Add("User-Agent", userAgentIterator.Current); break; } using (var matchResult = _wrapper.Match(headers)) { Validate(headers, matchResult, state); } } return(results); }
internal Utils.Results Process(string userAgentPattern, string devicePattern, Validation state) { var results = new FiftyOne.UnitTests.Utils.Results(); var random = new Random(0); var httpHeaders = _provider.HttpHeaders.Where(i => i.Equals("User-Agent") == false).ToArray(); // Loop through setting 2 user agent headers. var userAgentIterator = UserAgentGenerator.GetEnumerable(20000, userAgentPattern).GetEnumerator(); var deviceIterator = UserAgentGenerator.GetEnumerable(20000, devicePattern).GetEnumerator(); while (userAgentIterator.MoveNext() && deviceIterator.MoveNext()) { var headers = new NameValueCollection(); headers.Add(httpHeaders[random.Next(httpHeaders.Length)], deviceIterator.Current); headers.Add("User-Agent", userAgentIterator.Current); var indexes = _provider.GetDeviceIndexes(headers); Assert.IsTrue(indexes.Count > 0, "No indexes were found"); Validate(indexes, state); } return(results); }