Exemple #1
0
        public void TestMethod3()
        {
            var resultCode     = XingePushClientResultCode.内部错误;
            var errMsg         = nameof(TestMethod3);
            var testJsonString =
                "{\"ret_code\":0,\"err_msg\":\"\",\"result\":{\"push_id\":10000,\"sub_push_ids\":[234,235,236]}}";
            var jObject = JObject.Parse(testJsonString);
            var jToken  = jObject.GetValue(Constants.result, StringComparison.OrdinalIgnoreCase);

            var p0 = new XingePushClientResult
            {
                ResultCode = resultCode,
                ErrMsg     = errMsg,
            };

            p0.SetResult(jToken);

            var p1 = new XingePushClientResult <TResult>
            {
                ResultCode = resultCode,
                ErrMsg     = errMsg,
            };

            p1.SetResult(jToken);

            var s0 = p0.Serialize();
            var s1 = p1.Serialize();

            WriteLine(nameof(s0), s0);
            WriteLine(nameof(s1), s1);

            Assert.IsTrue(s0 == s1, "s0 == s1");

            var d0 = s0.Deserialize <XingePushClientResult>();
            var d1 = s1.Deserialize <XingePushClientResult <TResult> >();

            var ns0 = d0.Serialize();
            var ns1 = d1.Serialize();

            WriteLine(nameof(ns0), s0);
            WriteLine(nameof(ns1), s1);

            Assert.IsTrue(ns0 == ns1, "ns0 == ns1");

            Assert.IsTrue(ns0 == s0, "ns0 == s0");
        }
 /// <summary>
 /// <see cref="ErrorMessageInvalid"/>
 /// </summary>
 /// <param name="result"></param>
 /// <returns></returns>
 public static bool IsErrorMessageInvalid(this XingePushClientResult result) => Equals(result, ErrorMessageInvalid);
 /// <summary>
 /// <see cref="ErrorMessageType"/>
 /// </summary>
 /// <param name="result"></param>
 /// <returns></returns>
 public static bool IsErrorMessageType(this XingePushClientResult result) => Equals(result, ErrorMessageType);
 /// <summary>
 ///
 /// </summary>
 /// <param name="left"></param>
 /// <param name="right"></param>
 /// <returns></returns>
 internal static bool Equals(XingePushClientResult left, string right)
 => left != null && left.ResultCode == XingePushClientResultCode.参数错误 &&
 !string.IsNullOrWhiteSpace(left.ErrMsg) && left.ErrMsg == right;