8
8
using Microsoft . Extensions . Logging ;
9
9
using Microsoft . Extensions . Options ;
10
10
using Moq ;
11
+ using RabbitMQ . Client ;
11
12
using Xunit ;
12
13
13
14
namespace WebJobs . Extensions . RabbitMQ . Tests
@@ -20,28 +21,56 @@ public class RabbitMQClientBuilderTests
20
21
public void Opens_Connection ( )
21
22
{
22
23
var options = new OptionsWrapper < RabbitMQOptions > ( new RabbitMQOptions { HostName = Constants . LocalHost } ) ;
23
- var loggerFactory = new LoggerFactory ( ) ;
24
24
var mockServiceFactory = new Mock < IRabbitMQServiceFactory > ( ) ;
25
- var mockNameResolver = new Mock < INameResolver > ( ) ;
26
- var config = new RabbitMQExtensionConfigProvider ( options , mockNameResolver . Object , mockServiceFactory . Object , loggerFactory , _emptyConfig ) ;
27
- var mockService = new Mock < IRabbitMQService > ( ) ;
25
+ var config = new RabbitMQExtensionConfigProvider ( options , new Mock < INameResolver > ( ) . Object , mockServiceFactory . Object , new LoggerFactory ( ) , _emptyConfig ) ;
26
+ mockServiceFactory . Setup ( m => m . CreateService ( It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < int > ( ) ) ) . Returns ( new Mock < IRabbitMQService > ( ) . Object ) ;
27
+ RabbitMQAttribute attr = GetTestAttribute ( ) ;
28
+
29
+ RabbitMQClientBuilder clientBuilder = new RabbitMQClientBuilder ( config , options ) ;
30
+ var model = clientBuilder . Convert ( attr ) ;
31
+
32
+ mockServiceFactory . Verify ( m => m . CreateService ( It . IsAny < string > ( ) , Constants . LocalHost , "guest" , "guest" , 5672 ) , Times . Exactly ( 1 ) ) ;
33
+ }
28
34
29
- mockServiceFactory . Setup ( m => m . CreateService ( It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < int > ( ) ) ) . Returns ( mockService . Object ) ;
35
+ [ Fact ]
36
+ public void TestWhetherConnectionIsPooled ( )
37
+ {
38
+ var options = new OptionsWrapper < RabbitMQOptions > ( new RabbitMQOptions { HostName = Constants . LocalHost } ) ;
39
+ var mockServiceFactory = new Mock < IRabbitMQServiceFactory > ( ) ;
40
+ mockServiceFactory . SetupSequence ( m => m . CreateService ( It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < int > ( ) ) )
41
+ . Returns ( GetRabbitMQService ( ) )
42
+ . Returns ( GetRabbitMQService ( ) ) ;
43
+ var config = new RabbitMQExtensionConfigProvider ( options , new Mock < INameResolver > ( ) . Object , mockServiceFactory . Object , new LoggerFactory ( ) , _emptyConfig ) ;
44
+ RabbitMQAttribute attr = GetTestAttribute ( ) ;
45
+
46
+ RabbitMQClientBuilder clientBuilder = new RabbitMQClientBuilder ( config , options ) ;
30
47
31
- RabbitMQAttribute attr = new RabbitMQAttribute
48
+ var model = clientBuilder . Convert ( attr ) ;
49
+ var model2 = clientBuilder . Convert ( attr ) ;
50
+
51
+ Assert . Equal ( model , model2 ) ;
52
+ }
53
+
54
+ private RabbitMQAttribute GetTestAttribute ( )
55
+ {
56
+ return new RabbitMQAttribute
32
57
{
33
58
ConnectionStringSetting = string . Empty ,
34
59
HostName = Constants . LocalHost ,
35
60
UserName = "guest" ,
36
61
Password = "guest" ,
37
62
Port = 5672
38
63
} ;
64
+ }
39
65
40
- RabbitMQClientBuilder clientBuilder = new RabbitMQClientBuilder ( config , options ) ;
41
-
42
- var model = clientBuilder . Convert ( attr ) ;
66
+ private IRabbitMQService GetRabbitMQService ( )
67
+ {
68
+ var mockService = new Mock < IRabbitMQService > ( ) ;
69
+ mockService . Setup ( a => a . Model ) . Returns (
70
+ new Mock < IModel > ( ) . Object
71
+ ) ;
43
72
44
- mockServiceFactory . Verify ( m => m . CreateService ( It . IsAny < string > ( ) , Constants . LocalHost , "guest" , "guest" , 5672 ) , Times . Exactly ( 1 ) ) ;
73
+ return mockService . Object ;
45
74
}
46
75
}
47
- }
76
+ }
0 commit comments