From e931d903656a6f9b06b361d0f77c8961315d6ef2 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Fri, 28 May 2021 19:08:30 +0800 Subject: [PATCH] =?UTF-8?q?test(tenpayv3):=20=E9=80=82=E9=85=8D=E6=96=B0?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E5=9E=8B=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessCircle/MallRefundResource.json | 0 .../MallTransactionResource.json | 0 .../CombineTransactionResource.json | 0 .../DiscountCard/DiscountCardResource.json | 0 .../MarketingBusifavorCouponResource.json | 0 .../MarketingFavorCouponResource.json | 0 .../MerchantService/ComplaintResource.json | 0 .../PartnerRefundResource.json | 0 .../PartnerTransactionResource.json | 0 .../PayScorePartnerPermissionsResource.json | 0 .../PayScorePartnerServiceOrderResource.json | 0 .../PayScorePermissionsResource.json | 0 .../PayScoreServiceOrderResource.json | 0 .../PayTransactions/TransactionResource.json | 0 .../Refund/RefundResource.json | 0 ...ttpClient.Wechat.TenpayV3.UnitTests.csproj | 2 +- .../WechatTenpayConverterTests.cs | 12 ++++++------ .../WechatTenpayDefinitionTests.cs | 19 ++++++++++++------- ...payExecuteMarketingPayGiftActivityTests.cs | 2 +- 19 files changed, 20 insertions(+), 15 deletions(-) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/BusinessCircle/MallRefundResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/BusinessCircle/MallTransactionResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/CombineTransactions/CombineTransactionResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/DiscountCard/DiscountCardResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/MarketingBusifavor/MarketingBusifavorCouponResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/MarketingFavor/MarketingFavorCouponResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/MerchantService/ComplaintResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/PayPartnerTransactions/PartnerRefundResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/PayPartnerTransactions/PartnerTransactionResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/PayScorePartnerPermissions/PayScorePartnerPermissionsResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/PayScorePartnerServiceOrder/PayScorePartnerServiceOrderResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/PayScorePermissions/PayScorePermissionsResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/PayScoreServiceOrder/PayScoreServiceOrderResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/PayTransactions/TransactionResource.json (100%) rename test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/{ResourceSamples => EventSamples}/Refund/RefundResource.json (100%) diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/BusinessCircle/MallRefundResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/BusinessCircle/MallRefundResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/BusinessCircle/MallRefundResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/BusinessCircle/MallRefundResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/BusinessCircle/MallTransactionResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/BusinessCircle/MallTransactionResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/BusinessCircle/MallTransactionResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/BusinessCircle/MallTransactionResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/CombineTransactions/CombineTransactionResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/CombineTransactions/CombineTransactionResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/CombineTransactions/CombineTransactionResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/CombineTransactions/CombineTransactionResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/DiscountCard/DiscountCardResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/DiscountCard/DiscountCardResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/DiscountCard/DiscountCardResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/DiscountCard/DiscountCardResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/MarketingBusifavor/MarketingBusifavorCouponResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/MarketingBusifavor/MarketingBusifavorCouponResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/MarketingBusifavor/MarketingBusifavorCouponResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/MarketingBusifavor/MarketingBusifavorCouponResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/MarketingFavor/MarketingFavorCouponResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/MarketingFavor/MarketingFavorCouponResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/MarketingFavor/MarketingFavorCouponResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/MarketingFavor/MarketingFavorCouponResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/MerchantService/ComplaintResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/MerchantService/ComplaintResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/MerchantService/ComplaintResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/MerchantService/ComplaintResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayPartnerTransactions/PartnerRefundResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayPartnerTransactions/PartnerRefundResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayPartnerTransactions/PartnerRefundResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayPartnerTransactions/PartnerRefundResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayPartnerTransactions/PartnerTransactionResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayPartnerTransactions/PartnerTransactionResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayPartnerTransactions/PartnerTransactionResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayPartnerTransactions/PartnerTransactionResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayScorePartnerPermissions/PayScorePartnerPermissionsResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayScorePartnerPermissions/PayScorePartnerPermissionsResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayScorePartnerPermissions/PayScorePartnerPermissionsResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayScorePartnerPermissions/PayScorePartnerPermissionsResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayScorePartnerServiceOrder/PayScorePartnerServiceOrderResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayScorePartnerServiceOrder/PayScorePartnerServiceOrderResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayScorePartnerServiceOrder/PayScorePartnerServiceOrderResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayScorePartnerServiceOrder/PayScorePartnerServiceOrderResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayScorePermissions/PayScorePermissionsResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayScorePermissions/PayScorePermissionsResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayScorePermissions/PayScorePermissionsResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayScorePermissions/PayScorePermissionsResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayScoreServiceOrder/PayScoreServiceOrderResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayScoreServiceOrder/PayScoreServiceOrderResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayScoreServiceOrder/PayScoreServiceOrderResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayScoreServiceOrder/PayScoreServiceOrderResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayTransactions/TransactionResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayTransactions/TransactionResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/PayTransactions/TransactionResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/PayTransactions/TransactionResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/Refund/RefundResource.json b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/Refund/RefundResource.json similarity index 100% rename from test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/ResourceSamples/Refund/RefundResource.json rename to test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/EventSamples/Refund/RefundResource.json diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests.csproj b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests.csproj index 9546e059..00a21f4a 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests.csproj +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests.csproj @@ -14,7 +14,7 @@ PreserveNewest - + PreserveNewest diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayConverterTests.cs b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayConverterTests.cs index 30df99e1..6d49e063 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayConverterTests.cs +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayConverterTests.cs @@ -39,21 +39,21 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests class JsonStringTypedStringListOrArrayTestEntity { [Newtonsoft.Json.JsonProperty("string_ilist")] - [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringTypedStringIListConverter))] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.JsonTypedStringIListConverter))] [System.Text.Json.Serialization.JsonPropertyName("string_ilist")] - [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.StringTypedStringIListConverter))] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.JsonTypedStringIListConverter))] public IList StringTypedIList { get; set; } [Newtonsoft.Json.JsonProperty("string_list")] - [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringTypedStringListConverter))] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.JsonTypedStringListConverter))] [System.Text.Json.Serialization.JsonPropertyName("string_list")] - [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.StringTypedStringListConverter))] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.JsonTypedStringListConverter))] public List StringTypedList { get; set; } [Newtonsoft.Json.JsonProperty("string_array")] - [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringTypedStringArrayConverter))] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.JsonTypedStringArrayConverter))] [System.Text.Json.Serialization.JsonPropertyName("string_array")] - [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.StringTypedStringArrayConverter))] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.JsonTypedStringArrayConverter))] public string[] StringTypedArray { get; set; } } diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayDefinitionTests.cs b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayDefinitionTests.cs index fd469eba..b5dac33d 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayDefinitionTests.cs +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayDefinitionTests.cs @@ -16,7 +16,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests [Fact(DisplayName = "验证模型定义")] public void ModelDefinitionsTest() { - static void SetPropertiesValueRecursively(object obj) + static void TrySetPropertiesValueRecursively(object obj) { var lstProperty = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (var tProperty in lstProperty) @@ -24,6 +24,11 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests if (tProperty.SetMethod == null || !tProperty.SetMethod.IsPublic) continue; + var newtonsoftJsonAttribute = tProperty.GetCustomAttribute(); + var systemTextJsonAttribute = tProperty.GetCustomAttribute(); + if (newtonsoftJsonAttribute?.PropertyName != systemTextJsonAttribute?.Name) + throw new Exception($"`{obj.GetType().Name}` fields mismatching: `{newtonsoftJsonAttribute.PropertyName}` & `{systemTextJsonAttribute.Name}`"); + if (tProperty.PropertyType.IsPrimitive) { // noop @@ -33,7 +38,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests Type tEl = tProperty.PropertyType.Assembly.GetType(tProperty.PropertyType.FullName.Replace("[]", string.Empty)); object propEl = (tEl == typeof(string)) ? string.Empty : Activator.CreateInstance(tEl); propEl = Convert.ChangeType(propEl, tEl); - SetPropertiesValueRecursively(propEl); + TrySetPropertiesValueRecursively(propEl); Array prop = Array.CreateInstance(tEl, 1); prop.SetValue(propEl, 0); @@ -60,7 +65,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests Type tGeneric = tProperty.PropertyType.GetGenericArguments().Single(); object propEl = (tGeneric == typeof(string)) ? string.Empty : Activator.CreateInstance(tGeneric); propEl = Convert.ChangeType(propEl, tGeneric); - SetPropertiesValueRecursively(propEl); + TrySetPropertiesValueRecursively(propEl); Type tList = typeof(List<>).MakeGenericType(new Type[] { tGeneric }); object prop = Activator.CreateInstance(tList); @@ -72,7 +77,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests else { object prop = Activator.CreateInstance(tProperty.PropertyType); - SetPropertiesValueRecursively(prop); + TrySetPropertiesValueRecursively(prop); tProperty.SetValue(obj, prop); } @@ -82,7 +87,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests var lstModel = _assembly.GetTypes() .Where(e => e.Namespace != null && - e.Namespace.Equals(_assembly.GetName().Name + "Models") && + e.Namespace.Equals(_assembly.GetName().Name + ".Models") && e.IsClass && !e.IsAbstract && !e.IsInterface && @@ -137,7 +142,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests try { object instance = _assembly.CreateInstance(tModel.Namespace + "." + tModel.Name); - SetPropertiesValueRecursively(instance); + TrySetPropertiesValueRecursively(instance); new FlurlNewtonsoftJsonSerializer().Serialize(instance); new FlurlSystemTextJsonSerializer().Serialize(instance); @@ -290,7 +295,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests } VerifyJsonSamples("ModelSamples", "Models"); - VerifyJsonSamples("ResourceSamples", "Resources"); + VerifyJsonSamples("EventSamples", "Events"); Assert.Empty(exceptions); } diff --git a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayExecuteMarketingPayGiftActivityTests.cs b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayExecuteMarketingPayGiftActivityTests.cs index 4d78ec08..102a91ae 100644 --- a/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayExecuteMarketingPayGiftActivityTests.cs +++ b/test/SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests/WechatTenpayExecuteMarketingPayGiftActivityTests.cs @@ -22,7 +22,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.UnitTests { Assert.NotNull(response.ActivityList.First().ActivityId); Assert.NotNull(response.ActivityList.First().ActivityStatus); - Assert.NotNull(response.ActivityList.First().ActivityBaseInformation); + Assert.NotNull(response.ActivityList.First().ActivityBase); Assert.NotNull(response.ActivityList.First().AwardSendRule); } }