public void TestIsMatchResult_NormallySucceed() { dnsRequest.DomainName = "localhost"; // 校验 dnsRequest 是否为空 Assert.AreNotEqual(null, dnsRequest); // 校验解析是否成功 dnsRequest.MakeRequest().Wait(); Assert.IsNotNull(dnsRequest.ActualResult); Assert.AreEqual(true, dnsRequest.IsMatchResult("127.0.0.1", dnsRequest.ActualResult), "Cannot match the result "); }
/// <summary> /// 请求服务器状态 /// </summary> /// <param name="serverProtocol"></param> /// <returns></returns> public async Task <LogModel> AccessDNSServer(SiteModel site, DNSRequest request) { // 作为返回参数的请求结果记录 LogModel log = null; if (null != site.Site_address && !("".Equals(site.Site_address))) { // 检测并赋值DNS服务器IP IPAddress ip = await GetIPAddressAsync(site.Site_address); // ip 不合法 if (null == ip) { return(null); } request.DnsServer = ip; #region 初始化log log = new LogModel { Site_id = site.Id, Create_time = DateTime.Now }; #endregion // 获取存储的请求预处理信息 JObject js = (JObject)JsonConvert.DeserializeObject(site.ProtocolIdentification); try { // 赋值请求类型 request.RecordType = DNSRequest.GetQTypeWithIndex(int.Parse(js["recordType"].ToString())); } catch (Exception) { request.RecordType = 0;//出错 默认选第一个 } // 赋值用于测试的域名 request.DomainName = js["lookup"].ToString(); // 开始请求 bool result = await request.MakeRequest(); // 处理请求记录 CreateLogWithRequestServerResult(log, request); // 补充额外添加的判断 log.Log_record = request.RequestInfos; log.Is_error = !request.IsMatchResult(request.ActualResult.First(), new HashSet <string>() { // 赋值保存的期待返回值 js["expectedResults"].ToString() }); if (log.Is_error) { log.Status_code = "1001"; } // 更新站点信息 UpdateSiteStatus(site, log); } return(log); }
/// <summary> /// 请求服务器状态 /// </summary> /// <param name="serverProtocol"></param> /// <returns></returns> public async Task <LogModel> AccessDNSServer(SiteModel site, DNSRequest request) { // 作为返回参数的请求结果记录 LogModel log = null; if (null != site.Site_address && !("".Equals(site.Site_address))) { // 检测并赋值DNS服务器IP IPAddress ip = await GetIPAddressAsync(site.Site_address); if (null == ip) { try { // 获取请求站点的地址 ip = IPAddress.Parse(site.Site_address); } catch (ArgumentException e) { Debug.WriteLine(e.ToString()); DBHelper.InsertErrorLog(e); return(null); } } request.DnsServer = ip; #region 初始化log log = new LogModel { Site_id = site.Id, Create_time = DateTime.Now }; #endregion // 赋值请求站点预计的请求结果 // 这里待定!!!!!因为保存用于测试的域名不知道存储在哪? request.DomainName = site.ProtocolIdentification; // 开始请求 bool result = await request.MakeRequest(); // 处理请求记录 CreateLogWithRequestServerResult(log, request); // 补充额外添加的判断 log.Log_record = request.RequestInfos; // 这里待定!!!!!因为用于保存期待结果的变量暂时不知道是如何存储的 request.IsMatchResult(request.ActualResult.First(), new HashSet <string>() { "127.0.0.1" }); // 更新站点信息 UpdateSiteStatus(site, log); } return(log); }