1
2
3
4
5
6
7
8
9
10
11 package psiprobe.model;
12
13 import static org.junit.jupiter.api.Assertions.assertEquals;
14 import static org.junit.jupiter.api.Assertions.assertFalse;
15 import static org.junit.jupiter.api.Assertions.assertTrue;
16
17 import com.codebox.bean.JavaBeanTester;
18
19 import org.junit.jupiter.api.Test;
20 import org.springframework.mock.web.MockHttpServletRequest;
21
22
23
24
25 class IpInfoTest {
26
27
28
29
30 @Test
31 void javabeanTester() {
32 JavaBeanTester.builder(IpInfo.class).loadData().test();
33 }
34
35 @Test
36 void testBuilderWithDirectConnection() {
37 MockHttpServletRequest request = new MockHttpServletRequest();
38 request.setRemoteAddr("192.168.1.1");
39
40
41 IpInfo info = new IpInfo().builder(request);
42 assertEquals("192.168.1.1", info.getAddress());
43 assertFalse(info.isForwarded());
44 }
45
46 @Test
47 void testBuilderWithForwardedHeader() {
48 MockHttpServletRequest request = new MockHttpServletRequest();
49 request.setRemoteAddr("10.0.0.1");
50 request.addHeader("X-Forwarded-For", "203.0.113.5, 10.0.0.1");
51
52 IpInfo info = new IpInfo().builder(request);
53 assertEquals("203.0.113.5", info.getAddress());
54 assertTrue(info.isForwarded());
55 }
56
57 @Test
58 void testGetClientAddressWithoutHeader() {
59 MockHttpServletRequest request = new MockHttpServletRequest();
60 request.setRemoteAddr("172.16.0.1");
61
62 String addr = IpInfo.getClientAddress(request);
63 assertEquals("172.16.0.1", addr);
64 }
65
66 @Test
67 void testGetClientAddressWithForwardedHeader() {
68 MockHttpServletRequest request = new MockHttpServletRequest();
69 request.setRemoteAddr("10.0.0.1");
70 request.addHeader("X-Forwarded-For", "1.2.3.4");
71
72 String addr = IpInfo.getClientAddress(request);
73 assertEquals("1.2.3.4", addr);
74 }
75
76 @Test
77 void testToString() {
78 IpInfo info = new IpInfo();
79 info.setAddress("10.10.10.10");
80 assertEquals("10.10.10.10", info.toString());
81 }
82 }