| Name | Message | Date |
|---|---|---|
| 📄 LoadJsonShould.cs | 6 days ago |
📄
core/tests/MessageOptionsTests/LoadJsonShould.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using System; using System.IO; using Microsoft.Extensions.Options; using Shouldly; using Xunit; namespace Cfa.Tests.MessageOptionsTests; public sealed class LoadJsonShould { [Theory] [InlineData("""{"messageRoutes":[{}]}""")] [InlineData("""{"messageRoutes":[{"publisher":{"method":{"type":"Bus","name":"Send"},"messageArgument":-1}}]}""")] public void RejectIncompleteRoutes(string json) { // Arrange var path = Path.GetTempFileName(); try { File.WriteAllText(path, json); // Act var load = () => MessageOptions.LoadJson(path); // Assert load.ShouldThrow<OptionsValidationException>(); } finally { File.Delete(path); } } [Fact] public void ReportInvalidNestedSettings() { // Arrange var path = Path.GetTempFileName(); try { File.WriteAllText( path, """ { "messageRoutes": [{ "publisher": { "method": { "type": " ", "name": "", "genericArity": -1, "parameterCount": -1 }, "messageArgument": -1 }, "registrations": [{ "method": { "type": "Receiver", "name": "On" }, "messageTypeArgument": -1, "handlerArgument": -1 }] }] } """ ); // Act var load = () => MessageOptions.LoadJson(path); // Assert var error = load.ShouldThrow<OptionsValidationException>(); error.Message.ShouldContain("Type"); error.Message.ShouldContain("Name"); error.Message.ShouldContain("GenericArity"); error.Message.ShouldContain("ParameterCount"); error.Message.ShouldContain("MessageArgument"); error.Message.ShouldContain("MessageTypeArgument"); error.Message.ShouldContain("HandlerArgument"); } finally { File.Delete(path); } } }