1
2
3
4
5
6
7
8
9
10
11 package org.mule.management.agents;
12
13 import org.mule.module.management.agent.FixedHostRmiClientSocketFactory;
14 import org.mule.tck.junit4.AbstractMuleTestCase;
15 import org.mule.tck.junit4.rule.DynamicPort;
16
17 import java.io.IOException;
18 import java.net.InetAddress;
19 import java.net.InetSocketAddress;
20 import java.net.ServerSocket;
21 import java.net.Socket;
22 import java.nio.channels.ServerSocketChannel;
23
24 import org.junit.After;
25 import org.junit.Before;
26 import org.junit.Rule;
27 import org.junit.Test;
28
29 import static org.junit.Assert.assertEquals;
30
31 public class FixedHostRmiClienSocketFactoryTestCase extends AbstractMuleTestCase
32 {
33
34 @Rule
35 public DynamicPort dynamicPort = new DynamicPort("port1");
36
37 protected volatile ServerSocket serverSocket;
38
39 @After
40 public void stopServerSocke() throws IOException
41 {
42 if (null != serverSocket)
43 {
44 serverSocket.close();
45 }
46 }
47
48 @Test
49 public void testHostConstructorOverride() throws Exception
50 {
51 final String overrideHost = "127.0.0.1";
52 final FixedHostRmiClientSocketFactory factory = new FixedHostRmiClientSocketFactory(overrideHost);
53 assertEquals(overrideHost, factory.getOverrideHost());
54
55 final Socket clientSocket = factory.createSocket("www.example.com", dynamicPort.getNumber());
56 final InetAddress address = clientSocket.getInetAddress();
57 final String socketHost = address.getHostAddress();
58 assertEquals(overrideHost, socketHost);
59 }
60
61
62
63
64 @Test
65 public void testHostSetterOverride() throws Exception
66 {
67 final String overrideHost = "127.0.0.1";
68 final FixedHostRmiClientSocketFactory factory =
69 new FixedHostRmiClientSocketFactory();
70 factory.setOverrideHost(overrideHost);
71
72 assertEquals(overrideHost, factory.getOverrideHost());
73 Socket clientSocket = null;
74 try
75 {
76 clientSocket = factory.createSocket("www.example.com", dynamicPort.getNumber());
77 final InetAddress address = clientSocket.getInetAddress();
78 final String socketHost = address.getHostAddress();
79 assertEquals(overrideHost, socketHost);
80 }
81 finally
82 {
83 if (null != clientSocket && !clientSocket.isClosed())
84 {
85 clientSocket.close();
86 }
87 }
88 }
89
90
91
92
93
94 @Before
95 public void setupDummyServer() throws IOException
96 {
97 ServerSocketChannel ssChannel = ServerSocketChannel.open();
98 ssChannel.configureBlocking(false);
99 serverSocket = ssChannel.socket();
100 serverSocket.bind(new InetSocketAddress(dynamicPort.getNumber()));
101 }
102 }