package kg.apc.jmeter.samplers; import kg.apc.emulators.DatagramChannelEmul; import kg.apc.emulators.FileChannelEmul; import org.apache.jmeter.samplers.SampleResult; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.DatagramChannel; import static org.junit.Assert.*; public class UDPSamplerTest { private UDPSampler instance; private static class UDPSamplerEmul extends UDPSampler { DatagramChannel c; @Override protected DatagramChannel getChannel() throws IOException { c = DatagramChannelEmul.open(); c.connect(new InetSocketAddress(53)); return c; } } @Before public void setUp() { instance = new UDPSamplerEmul(); instance.setPort("53"); instance.setEncoderClass(HexStringUDPDecoder.class.getCanonicalName()); } //@Test public void testReal() { System.out.println("real"); instance = new UDPSampler(); instance.setHostName("8.8.8.8"); instance.setPort("53"); instance.setRequestData("f11b0100000100000000000004636f646506676f6f676c6503636f6d00001c0001"); instance.setEncoderClass(HexStringUDPDecoder.class.getCanonicalName()); instance.threadStarted(); instance.setWaitResponse(true); instance.setTimeout("500"); SampleResult res = instance.sample(null); assertTrue(res.isSuccessful()); assertTrue(res.getResponseDataAsString().length() > 0); SampleResult res2 = instance.sample(null); assertTrue(res2.isSuccessful()); assertTrue(res2.getResponseDataAsString().length() > 0); } @Test public void testSample() { System.out.println("sample"); instance.threadStarted(); SampleResult result = instance.sample(null); assertTrue(result.isSuccessful()); } @Test public void testGetHostName() { System.out.println("getHostName"); String expResult = ""; String result = instance.getHostName(); assertEquals(expResult, result); } @Test public void testSetHostName() { System.out.println("setHostName"); String text = ""; instance.setHostName(text); } @Test public void testGetPort() { System.out.println("getPort"); String expResult = "53"; String result = instance.getPort(); assertEquals(expResult, result); } @Test public void testGetTimeout() { System.out.println("getTimeout"); String expResult = ""; String result = instance.getTimeout(); assertEquals(expResult, result); } @Test public void testIsWaitResponse() { System.out.println("isWaitResponse"); boolean result = instance.isWaitResponse(); assertEquals(false, result); } @Test public void testGetEncoderClass() { System.out.println("getEncoderClass"); String result = instance.getEncoderClass(); assertNotNull(result); } @Test public void testGetRequestData() { System.out.println("getRequestData"); String expResult = ""; String result = instance.getRequestData(); assertEquals(expResult, result); } @Test public void testSetPort() { System.out.println("setPort"); String text = ""; instance.setPort(text); } @Test public void testSetWaitResponse() { System.out.println("setWaitResponse"); instance.setWaitResponse(false); } @Test public void testSetTimeout() { System.out.println("setTimeout"); String text = ""; instance.setTimeout(text); } @Test public void testSetRequestData() { System.out.println("setRequestData"); String text = ""; instance.setRequestData(text); } @Test public void testSetEncoderClass() { System.out.println("setEncoderClass"); String text = ""; instance.setEncoderClass(text); } @Test public void testGetChannel() throws Exception { System.out.println("getChannel"); DatagramChannel result = (DatagramChannel) instance.getChannel(); assertNotNull(result); } @Test public void testEncode() { System.out.println("encode"); String data = "test"; ByteBuffer result = instance.encode(data); Assert.assertEquals(data, FileChannelEmul.byteBufferToString(result)); } @Test public void testDecode() { System.out.println("decode"); byte[] result = instance.decode("test".getBytes()); assertEquals(4, result.length); } @Test public void testThreadStarted() { System.out.println("threadStarted"); instance.threadStarted(); } @Test public void testThreadFinished() { System.out.println("threadFinished"); instance.threadFinished(); } @Test public void testInterrupt() { System.out.println("interrupt"); boolean result = instance.interrupt(); assertEquals(true, result); } @Test public void testIsCloseChannel() { System.out.println("isCloseChannel"); UDPSampler instance = new UDPSampler(); boolean result = instance.isCloseChannel(); assertEquals(false, result); } @Test public void testSetCloseChannel() { System.out.println("setCloseChannel"); UDPSampler instance = new UDPSampler(); instance.setCloseChannel(false); } }