View Javadoc
1   package org.oxerr.webmagic.proxy;
2   
3   import static org.junit.jupiter.api.Assertions.assertEquals;
4   import static org.mockito.Mockito.mock;
5   
6   import org.apache.commons.lang3.SerializationUtils;
7   import org.junit.jupiter.api.BeforeEach;
8   import org.junit.jupiter.api.Test;
9   
10  import us.codecraft.webmagic.Page;
11  import us.codecraft.webmagic.Task;
12  import us.codecraft.webmagic.proxy.Proxy;
13  
14  class DelayedProxyProviderTest {
15  
16  	private DelayedProxyProvider provider;
17  
18  	@BeforeEach
19  	void setUp() throws Exception {
20  		this.provider = new DelayedProxyProvider();
21  		this.provider.put(new Proxy("127.0.0.1", 3128));
22  	}
23  
24  	@Test
25  	void testReturnProxy() {
26  		var task = mock(Task.class);
27  		var page = mock(Page.class);
28  		var proxy = this.provider.getProxy(task);
29  		assertEquals(1, this.provider.getAllProxies().size());
30  		assertEquals(0, this.provider.getProxies().size());
31  		this.provider.returnProxy(proxy, page, task);
32  		assertEquals(1, this.provider.getAllProxies().size());
33  		assertEquals(1, this.provider.getProxies().size());
34  	}
35  
36  	@Test
37  	void testGetProxy() {
38  		var proxy = provider.getProxy(null);
39  		assertEquals(new Proxy("127.0.0.1", 3128), proxy);
40  	}
41  
42  	@Test
43  	void testPut() {
44  		provider.put(new Proxy("127.0.0.1", 3128));
45  		provider.put(new Proxy("127.0.0.1", 1028, "socks"));
46  		assertEquals(2, provider.getAllProxies().size());
47  		assertEquals(2, provider.getProxies().size());
48  	}
49  
50  	@Test
51  	void testExternalizable() {
52  		var deserialized = SerializationUtils.roundtrip(this.provider);
53  		assertEquals(1, deserialized.getAllProxies().size());
54  		assertEquals(1, deserialized.getProxies().size());
55  	}
56  
57  }