1+ using Bogus ;
2+ using BuslyCLI . Config ;
3+ using BuslyCLI . Config . Validators ;
4+ using FluentValidation . TestHelper ;
5+
6+ namespace BuslyCLI . Console . Tests . Config . Validators ;
7+
8+ [ TestFixture ]
9+ public class ManagementApiConfigValidatorTests
10+ {
11+ private readonly ManagementApiConfigValidator _validator ;
12+
13+ public ManagementApiConfigValidatorTests ( )
14+ {
15+ _validator = new ManagementApiConfigValidator ( ) ;
16+ }
17+
18+ // [Test]
19+ // public async Task ShouldErrorWhenAmqpConnectionStringIsNotPassed()
20+ // {
21+ // // Arrange
22+ // var rabbitmqTransportConfig = new ManagementApi()
23+ // {
24+ // AmqpConnectionString = null
25+ // };
26+ // // Act
27+ // var result = await _validator.TestValidateAsync(rabbitmqTransportConfig);
28+ //
29+ // // Assert
30+ // result.ShouldHaveValidationErrorFor(c => c.AmqpConnectionString)
31+ // .WithErrorMessage("'Amqp Connection String' must not be empty.");
32+ // }
33+
34+ [ Test ]
35+ public async Task ShouldNotErrorWhenOnlyAUrlStringIsPassed ( )
36+ {
37+ // Arrange
38+ var managementApi = new ManagementApi ( )
39+ {
40+ Url = "http://localhost:15672"
41+ } ;
42+ // Act
43+ var result = await _validator . TestValidateAsync ( managementApi ) ;
44+
45+ // Assert
46+ result . ShouldNotHaveValidationErrorFor ( c => c . Url ) ;
47+ }
48+
49+ [ Test ]
50+ public async Task ShouldNotErrorWhenOnlyCredentialsAreIsPassed ( )
51+ {
52+ // Arrange
53+ var managementApi = new ManagementApi ( )
54+ {
55+ UserName = new Faker ( ) . Internet . UserName ( ) ,
56+ Password = new Faker ( ) . Internet . Password ( )
57+ } ;
58+ // Act
59+ var result = await _validator . TestValidateAsync ( managementApi ) ;
60+
61+ // Assert
62+ result . ShouldNotHaveAnyValidationErrors ( ) ;
63+ }
64+
65+ [ Test ]
66+ public async Task ShouldNotErrorWhenUrlAndCredentialsAreIsPassed ( )
67+ {
68+ // Arrange
69+ var managementApi = new ManagementApi ( )
70+ {
71+ Url = "http://localhost:15672" ,
72+ UserName = new Faker ( ) . Internet . UserName ( ) ,
73+ Password = new Faker ( ) . Internet . Password ( )
74+ } ;
75+ // Act
76+ var result = await _validator . TestValidateAsync ( managementApi ) ;
77+
78+ // Assert
79+ result . ShouldNotHaveAnyValidationErrors ( ) ;
80+ }
81+
82+ [ Test ]
83+ public async Task ShouldErrorWhenUserNameIsPassedWithoutPassword ( )
84+ {
85+ // Arrange
86+ var managementApi = new ManagementApi ( )
87+ {
88+ UserName = new Faker ( ) . Internet . UserName ( )
89+ } ;
90+ // Act
91+ var result = await _validator . TestValidateAsync ( managementApi ) ;
92+
93+ // Assert
94+ result . ShouldHaveValidationErrors ( ) . WithErrorMessage ( "Username and Password are mutually dependent: if one is set, the other must also be set." ) ;
95+ }
96+ }
0 commit comments