-
Notifications
You must be signed in to change notification settings - Fork 446
/
Copy pathDataValidatorTest.cs
61 lines (50 loc) · 1.96 KB
/
DataValidatorTest.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System.ComponentModel.DataAnnotations;
using WebApiClientCore.Implementations;
using Xunit;
namespace WebApiClientCore.Test.Implementations
{
public class DataValidatorTest
{
class User
{
[Required]
[StringLength(4)]
public string? Account { get; set; }
}
[Fact]
public void ValidateParameterTest()
{
var parameter = TestParameter.Create();
Assert.Throws<ValidationException>(() => DataValidator.ValidateParameter(parameter,null, true));
parameter = TestParameter.Create();
Assert.Throws<ValidationException>(() => DataValidator.ValidateParameter(parameter, new User { }, true));
parameter = TestParameter.Create();
DataValidator.ValidateParameter(parameter, new User { Account = "123" }, true);
parameter = TestParameter.Create();
Assert.Throws<ValidationException>(() => DataValidator.ValidateParameter(parameter, new User { Account = "123456" }, true));
}
[Fact]
public void ValidateReturnValueTest()
{
var value = default(User);
DataValidator.ValidateReturnValue(value);
value = new User();
Assert.Throws<ValidationException>(() => DataValidator.ValidateReturnValue(value));
value = new User { Account = "123" };
DataValidator.ValidateReturnValue(value);
value = new User { Account = "123456" };
Assert.Throws<ValidationException>(() => DataValidator.ValidateReturnValue(value));
}
class TestParameter
{
public void Test([RequiredAttribute]object p)
{
}
public static ApiParameterDescriptor Create()
{
var p = typeof(TestParameter).GetMethod("Test")!.GetParameters()[0];
return new DefaultApiParameterDescriptor(p);
}
}
}
}