mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-09-18 09:44:43 +08:00
test(tenpayv3): 适配新的模型测试
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
<Content Include="ModelSamples/**/*.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="ResourceSamples/**/*.json">
|
||||
<Content Include="EventSamples/**/*.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
@@ -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<string> 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<string> 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; }
|
||||
}
|
||||
|
||||
|
@@ -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<Newtonsoft.Json.JsonPropertyAttribute>();
|
||||
var systemTextJsonAttribute = tProperty.GetCustomAttribute<System.Text.Json.Serialization.JsonPropertyNameAttribute>();
|
||||
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);
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user