You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by fs...@apache.org on 2020/05/28 19:25:34 UTC

[jmeter] branch master updated (e4e784b -> 0434e54)

This is an automated email from the ASF dual-hosted git repository.

fschumacher pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git.


    from e4e784b  Correct javadoc and a bit of spacepolice
     new f26ca25  Get rid of warnings in unit test
     new dca1b9a  Re-use methods in unit tests
     new 0434e54  Extract functionality to get methods into private method

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../gui/action/ParseCurlCommandActionTest.java     | 190 +++++++--------------
 1 file changed, 57 insertions(+), 133 deletions(-)


[jmeter] 01/03: Get rid of warnings in unit test

Posted by fs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

fschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit f26ca2581597c8a3ee9ffd4faa5a9dbfb6cd6851
Author: Felix Schumacher <fe...@internetallee.de>
AuthorDate: Thu May 28 21:05:27 2020 +0200

    Get rid of warnings in unit test
    
    There were warnings about missing generic information in variable declarations.
    Newer Java versions can use varargs for the methods involved. That seems nicer to
    look at and gets rid of the warnings on the go
---
 .../gui/action/ParseCurlCommandActionTest.java     | 149 +++++++--------------
 1 file changed, 52 insertions(+), 97 deletions(-)

diff --git a/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java b/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
index a1ba3f0..f3a205b 100644
--- a/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
+++ b/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
@@ -183,11 +183,9 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -x 'https://aa:bb@example.com:8042'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, HTTPSamplerProxy.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("createProxyServer", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("createProxyServer", Request.class, HTTPSamplerProxy.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{request, httpSampler};
-        method.invoke(p, objs);
+        method.invoke(p, request, httpSampler);
         assertEquals("example.com", httpSampler.getProxyHost(), "proxy host should be set in httpsampler");
         assertEquals("aa", httpSampler.getProxyUser(), "proxy user should be set in httpsampler");
         assertEquals("bb", httpSampler.getProxyPass(), "proxy pass should be set in httpsampler");
@@ -203,11 +201,9 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org:8443/' -x 'https://aa:bb@example.com:8042'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, String.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("createSampler", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("createSampler", Request.class, String.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{request, ""};
-        HTTPSamplerProxy httpSampler = (HTTPSamplerProxy) method.invoke(p, objs);
+        HTTPSamplerProxy httpSampler = (HTTPSamplerProxy) method.invoke(p, request, "");
         assertEquals("https", httpSampler.getProxyScheme(), "proxy scheme should be set in httpsampler");
         assertEquals("example.com", httpSampler.getProxyHost(), "proxy host should be set in httpsampler");
         assertEquals(8042, httpSampler.getProxyPortInt(), "The command line should be parsed in turn");
@@ -219,16 +215,14 @@ public class ParseCurlCommandActionTest {
         // test post data in httpsampler
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' --data 'name=test'");
         request.setInterfaceName("interface_name");
-        objs = new Object[]{request, ""};
-        httpSampler = (HTTPSamplerProxy) method.invoke(p, objs);
+        httpSampler = (HTTPSamplerProxy) method.invoke(p, request, "");
         assertEquals("POST", httpSampler.getMethod());
         assertEquals("name=test", httpSampler.getArguments().getArgument(0).toString());
 
         // test form data in httpsampler(upload data)
         request = basicCurlParser
                 .parse("curl 'http://jmeter.apache.org/' -F 'test=name;type=text/foo' -F 'test1=name1'");
-        objs = new Object[]{request, ""};
-        httpSampler = (HTTPSamplerProxy) method.invoke(p, objs);
+        httpSampler = (HTTPSamplerProxy) method.invoke(p, request, "");
         Arguments samplerArguments = httpSampler.getArguments();
         assertEquals("POST", httpSampler.getMethod(), "method should be set in httpsampler");
         assertEquals("test", samplerArguments.getArgument(0).getName(), "form name should be set in httpsampler");
@@ -240,24 +234,21 @@ public class ParseCurlCommandActionTest {
         String filePath = tempDir.resolve("test.txt").toAbsolutePath().toString();
         request = basicCurlParser.parse(
                 "curl 'http://jmeter.apache.org/' -F 'c=@" + filePath + ";type=text/foo' -F 'c1=@" + filePath + "'");
-        objs = new Object[]{request, ""};
-        httpSampler = (HTTPSamplerProxy) method.invoke(p, objs);
+        httpSampler = (HTTPSamplerProxy) method.invoke(p, request, "");
         assertEquals("c", httpSampler.getHTTPFiles()[0].getParamName(), "form name should be set in httpsampler");
         assertEquals(filePath, httpSampler.getHTTPFiles()[0].getPath(), "form name should be set in httpsampler");
         assertEquals("c1", httpSampler.getHTTPFiles()[1].getParamName(), "form name should be set in httpsampler");
 
         // test form data in httpsampler
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' --form-string 'c=@test.txt;type=text/foo'");
-        objs = new Object[]{request, ""};
-        httpSampler = (HTTPSamplerProxy) method.invoke(p, objs);
+        httpSampler = (HTTPSamplerProxy) method.invoke(p, request, "");
         assertEquals("c", httpSampler.getArguments().getArgument(0).getName());
         assertEquals("@test.txt;type=text/foo", httpSampler.getArguments().getArgument(0).getValue());
 
         // test form data in httpsampler
         request = basicCurlParser.parse(
                 "curl -X PUT \"https://www.example.com:123/12345?param1=value1&param2=value2\" -H  \"accept: */*\" -H  \"X-XSRF-TOKEN: 1234\"");
-        objs = new Object[]{request, ""};
-        httpSampler = (HTTPSamplerProxy) method.invoke(p, objs);
+        httpSampler = (HTTPSamplerProxy) method.invoke(p, request, "");
         assertEquals(new URL("https://www.example.com:123/12345?param1=value1&param2=value2"), httpSampler.getUrl());
         assertEquals(123, httpSampler.getPort());
         assertEquals("www.example.com", httpSampler.getDomain());
@@ -278,12 +269,10 @@ public class ParseCurlCommandActionTest {
         Request request = basicCurlParser
                 .parse("curl 'http://jmeter.apache.org/' -F 'test=name' --data 'fname=a&lname=b'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, HTTPSamplerProxy.class};
-        Object[] objs = new Object[]{request, httpSampler};
-        Method method = parseCurlCommandAction.getDeclaredMethod("setFormData", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("setFormData", Request.class, HTTPSamplerProxy.class);
         method.setAccessible(true);
         try {
-            method.invoke(p, objs);
+            method.invoke(p, request, httpSampler);
             throw new IllegalStateException("Should have thrown InvocationTargetException");
         } catch (InvocationTargetException | IllegalAccessException e) {
             assertEquals("--form and --data can't appear in the same command", e.getCause().getMessage());
@@ -301,11 +290,9 @@ public class ParseCurlCommandActionTest {
         HashTree threadGroupHT = testPlanHT.add(threadGroup);
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/'  -E '<CA certificate>'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, HashTree.class, String.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("createHttpRequest", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("createHttpRequest", Request.class, HashTree.class, String.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{request, threadGroupHT, "comment"};
-        HTTPSamplerProxy httpSampler = (HTTPSamplerProxy) method.invoke(p, objs);
+        HTTPSamplerProxy httpSampler = (HTTPSamplerProxy) method.invoke(p, request, threadGroupHT, "comment");
         assertEquals("/", httpSampler.getPath(), "path should be set in httpsampler");
         assertEquals("jmeter.apache.org", httpSampler.getDomain(), "domain should be set in httpsampler");
         assertEquals(80, httpSampler.getPort(), "port should be 80 in httpsampler");
@@ -322,11 +309,9 @@ public class ParseCurlCommandActionTest {
         httpSampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());
         httpSampler.setProperty(TestElement.NAME, "HTTP Request");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, HTTPSamplerProxy.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("configureTimeout", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("configureTimeout", Request.class, HTTPSamplerProxy.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{request, httpSampler};
-        method.invoke(p, objs);
+        method.invoke(p, request, httpSampler);
         assertEquals(1000, httpSampler.getConnectTimeout());
         assertEquals(19000, httpSampler.getResponseTimeout());
     }
@@ -338,11 +323,9 @@ public class ParseCurlCommandActionTest {
         Request request = basicCurlParser.parse(
                 "curl 'http://jmeter.apache.org/' -H 'Content-Type: application/x-www-form-urlencoded' --compressed");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("createHeaderManager", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("createHeaderManager", Request.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{request};
-        HeaderManager headerManager = (HeaderManager) method.invoke(p, objs);
+        HeaderManager headerManager = (HeaderManager) method.invoke(p, request);
         // The following headers should be set in the HeaderManager
         assertEquals("Content-Type", headerManager.get(0).getName());
         assertEquals("application/x-www-form-urlencoded", headerManager.get(0).getValue());
@@ -357,11 +340,9 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -u 'user:passwd'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, AuthManager.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("createAuthManager", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("createAuthManager", Request.class, AuthManager.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{request, authManager};
-        HeaderManager headerManager = (HeaderManager) method.invoke(p, objs);
+        method.invoke(p, request, authManager);
         assertEquals("user", authManager.get(0).getUser());
         assertEquals("passwd", authManager.get(0).getPass());
     }
@@ -379,15 +360,12 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -u 'user:passwd'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, AuthManager.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("canAddAuthManagerInHttpRequest", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("canAddAuthManagerInHttpRequest", Request.class, AuthManager.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{request, authManager};
-        assertFalse((boolean) method.invoke(p, objs),
+        assertFalse((boolean) method.invoke(p, request, authManager),
                 "When AuthManager contains this authorization, shouldn't add a AuthManager in Http Request");
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -u 'user1:passwd1'");
-        objs = new Object[]{request, authManager};
-        assertTrue((boolean) method.invoke(p, objs),
+        assertTrue((boolean) method.invoke(p, request, authManager),
                 "When AuthManager contains this url, but the username or password isn't the same,"
                         + "should add a AuthManager in Http Request");
     }
@@ -405,15 +383,12 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -u 'user:passwd'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, AuthManager.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("canUpdateAuthManagerInThreadGroup", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("canUpdateAuthManagerInThreadGroup", Request.class, AuthManager.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{request, authManager};
-        assertFalse((boolean) method.invoke(p, objs),
+        assertFalse((boolean) method.invoke(p, request, authManager),
                 "When AuthManager contains this url, shouldn't add a AuthManager in ThreadGroup");
         request = basicCurlParser.parse("curl 'http://jmeter.apache.fr/' -u 'user:passwd'");
-        objs = new Object[]{request, authManager};
-        assertTrue((boolean) method.invoke(p, objs),
+        assertTrue((boolean) method.invoke(p, request, authManager),
                 "The AuthManager doesn't contain this url , should add a AuthManager in ThreadGroup");
     }
 
@@ -424,11 +399,9 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -b 'name=Tom'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{CookieManager.class, Request.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", CookieManager.class, Request.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{cookieManager, request};
-        method.invoke(p, objs);
+        method.invoke(p, cookieManager, request);
         assertEquals("jmeter.apache.org", cookieManager.get(0).getDomain(),
                 "the domain of cookie should be set in cookieManager");
         assertEquals("/", cookieManager.get(0).getPath(), "the path of cookie should be set in cookieManager");
@@ -439,16 +412,14 @@ public class ParseCurlCommandActionTest {
         String filepath = tempDir.resolve("test.txt").toAbsolutePath().toString();
         assertTrue(tempDir.resolve("test.txt").toFile().createNewFile());
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -b '" + filepath + "'");
-        method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", classes);
+        method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", CookieManager.class, Request.class);
         method.setAccessible(true);
-        objs = new Object[]{cookieManager, request};
-        method.invoke(p, objs);
+        method.invoke(p, cookieManager, request);
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -b 'test1.txt'");
-        method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", classes);
+        method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", CookieManager.class, Request.class);
         method.setAccessible(true);
-        objs = new Object[]{cookieManager, request};
         try {
-            method.invoke(p, objs);
+            method.invoke(p, cookieManager, request);
         } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
             Throwable cause = e.getCause();
             if (cause instanceof IllegalArgumentException) {
@@ -465,16 +436,14 @@ public class ParseCurlCommandActionTest {
         Request request = basicCurlParser
                 .parse("curl 'http://jmeter.apache.org/' -H 'cookie: PHPSESSID=testphpsessid;a=b' --compressed");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{CookieManager.class, Request.class};
         Field f = ParseCurlCommandAction.class.getDeclaredField("uploadCookiesCheckBox");
         f.setAccessible(true);
         JCheckBox uploadCookiesCheckBox = new JCheckBox(
                 JMeterUtils.getResString("curl_add_cookie_header_to_cookiemanager"), true);
         f.set(p, uploadCookiesCheckBox);
-        Method method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", CookieManager.class, Request.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{cookieManager, request};
-        method.invoke(p, objs);
+        method.invoke(p, cookieManager, request);
         assertEquals("jmeter.apache.org", cookieManager.get(0).getDomain(), "the domain of cookie should be set in cookieManager");
         assertEquals("/", cookieManager.get(0).getPath(), "the path of cookie should be set in cookieManager");
         assertEquals("a", cookieManager.get(0).getName(), "the name of cookie should be set in cookieManager");
@@ -482,11 +451,10 @@ public class ParseCurlCommandActionTest {
         uploadCookiesCheckBox = new JCheckBox(JMeterUtils.getResString("curl_add_cookie_header_to_cookiemanager"), false);
 
         f.set(p, uploadCookiesCheckBox);
-        method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", classes);
+        method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", CookieManager.class, Request.class);
         method.setAccessible(true);
         cookieManager = new CookieManager();
-        objs = new Object[]{cookieManager, request};
-        method.invoke(p, objs);
+        method.invoke(p, cookieManager, request);
         assertEquals(0, cookieManager.getCookies().size(),
                 "When doesn't choose to upload cookies from header," +
                         "the cookie shouldn't be set in cookieManager");
@@ -499,11 +467,9 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' --dns-servers '0.0.0.0'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, DNSCacheManager.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("createDnsServer", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("createDnsServer", Request.class, DNSCacheManager.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{request, dnsCacheManager};
-        method.invoke(p, objs);
+        method.invoke(p, request, dnsCacheManager);
         assertEquals("0.0.0.0", dnsCacheManager.getServers().get(0).getStringValue(),
                 "the dns server should be set in DNSCacheManager");
     }
@@ -516,15 +482,12 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' --dns-servers '0.0.0.0'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, DNSCacheManager.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("canAddDnsServerInHttpRequest", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("canAddDnsServerInHttpRequest", Request.class, DNSCacheManager.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{request, dnsCacheManager};
-        assertFalse((boolean) method.invoke(p, objs),
+        assertFalse((boolean) method.invoke(p, request, dnsCacheManager),
                 "When the Dns servers are  the same, shouldn't add the DnsCacheManager in Http Request");
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' --dns-servers '1.1.1.1'");
-        objs = new Object[]{request, dnsCacheManager};
-        assertTrue((boolean) method.invoke(p, objs),
+        assertTrue((boolean) method.invoke(p, request, dnsCacheManager),
                 "When the Dns servers aren't the same, should add the DnsCacheManager in Http Request");
     }
 
@@ -536,16 +499,13 @@ public class ParseCurlCommandActionTest {
         Request request = basicCurlParser
                 .parse("curl 'http://jmeter.apache.org/'  --resolve 'moonagic.com:443:127.0.0.2'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, DNSCacheManager.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("createDnsResolver", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("createDnsResolver", Request.class, DNSCacheManager.class);
         method.setAccessible(true);
-        Object[] objs = new Object[]{request, dnsCacheManager};
-        method.invoke(p, objs);
+        method.invoke(p, request, dnsCacheManager);
         assertEquals("StaticHost(moonagic.com, 127.0.0.2)", dnsCacheManager.getHosts().get(0).getStringValue());
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/'  --resolve 'moonagic.com:9090:127.0.0.2'");
         method.setAccessible(true);
-        objs = new Object[]{request, dnsCacheManager};
-        method.invoke(p, objs);
+        method.invoke(p, request, dnsCacheManager);
         assertEquals("StaticHost(moonagic.com, 127.0.0.2)", dnsCacheManager.getHosts().get(0).getStringValue(),
                 "the dns resolver should be set in DNSCacheManager");
         assertTrue(dnsCacheManager.getComment().contains("Custom DNS resolver doesn't support port"),
@@ -562,35 +522,30 @@ public class ParseCurlCommandActionTest {
         Request request = basicCurlParser
                 .parse("curl 'http://jmeter.apache.org/'  --resolve 'moonagic.com:443:127.0.0.2'");
         Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Class[] classes = new Class[]{Request.class, DNSCacheManager.class};
-        Method method = parseCurlCommandAction.getDeclaredMethod("canAddDnsResolverInHttpRequest", classes);
+        Method method = parseCurlCommandAction.getDeclaredMethod("canAddDnsResolverInHttpRequest", Request.class, DNSCacheManager.class);
         method.setAccessible(true);
         dnsCacheManager = new DNSCacheManager();
         dnsCacheManager.addHost("moonagic.com", "127.0.0.2");
-        Object[] objs = new Object[]{request, dnsCacheManager};
-        method.invoke(p, objs);
-        assertFalse((boolean) method.invoke(p, objs),
+        method.invoke(p, request, dnsCacheManager);
+        assertFalse((boolean) method.invoke(p, request, dnsCacheManager),
                 "When the Dns servers are the same, shouldn't add the DnsCacheManager in Http Request");
 
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/'  --resolve 'moonagic.com:9090:127.0.0.1'");
         method.setAccessible(true);
-        objs = new Object[]{request, dnsCacheManager};
-        method.invoke(p, objs);
-        assertTrue((boolean) method.invoke(p, objs),
+        method.invoke(p, request, dnsCacheManager);
+        assertTrue((boolean) method.invoke(p, request, dnsCacheManager),
                 "When the Dns servers aren't the same, should add the DnsCacheManager in Http Request");
         dnsCacheManager = new DNSCacheManager();
         dnsCacheManager.addHost("moonagic.com", "127.0.0.1");
         dnsCacheManager.addHost("moonagic.com", "127.0.0.2");
-        objs = new Object[]{request, dnsCacheManager};
-        method.invoke(p, objs);
-        assertTrue((boolean) method.invoke(p, objs),
+        method.invoke(p, request, dnsCacheManager);
+        assertTrue((boolean) method.invoke(p, request, dnsCacheManager),
                 "When the Dns servers aren't the same, should add the DnsCacheManager in Http Request");
 
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/'  --resolve 'moonagic.com:9090:127.0.0.1'");
         method.setAccessible(true);
-        objs = new Object[]{request, dnsCacheManager};
-        method.invoke(p, objs);
-        assertTrue((boolean) method.invoke(p, objs),
+        method.invoke(p, request, dnsCacheManager);
+        assertTrue((boolean) method.invoke(p, request, dnsCacheManager),
                 "When the Dns servers aren't the same, should add the DnsCacheManager in Http Request");
     }
 }


[jmeter] 03/03: Extract functionality to get methods into private method

Posted by fs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

fschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 0434e54f32f28bfefbedcf4b155cb18861c168c7
Author: Felix Schumacher <fe...@internetallee.de>
AuthorDate: Thu May 28 21:22:15 2020 +0200

    Extract functionality to get methods into private method
---
 .../gui/action/ParseCurlCommandActionTest.java     | 68 ++++++++--------------
 1 file changed, 23 insertions(+), 45 deletions(-)

diff --git a/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java b/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
index 18eabb2..8eb717e 100644
--- a/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
+++ b/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
@@ -182,9 +182,7 @@ public class ParseCurlCommandActionTest {
         httpSampler.setProperty(TestElement.NAME, "HTTP Request");
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -x 'https://aa:bb@example.com:8042'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("createProxyServer", Request.class, HTTPSamplerProxy.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("createProxyServer", Request.class, HTTPSamplerProxy.class);
         method.invoke(p, request, httpSampler);
         assertEquals("example.com", httpSampler.getProxyHost(), "proxy host should be set in httpsampler");
         assertEquals("aa", httpSampler.getProxyUser(), "proxy user should be set in httpsampler");
@@ -200,9 +198,7 @@ public class ParseCurlCommandActionTest {
         ParseCurlCommandAction p = new ParseCurlCommandAction();
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org:8443/' -x 'https://aa:bb@example.com:8042'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("createSampler", Request.class, String.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("createSampler", Request.class, String.class);
         HTTPSamplerProxy httpSampler = (HTTPSamplerProxy) method.invoke(p, request, "");
         assertEquals("https", httpSampler.getProxyScheme(), "proxy scheme should be set in httpsampler");
         assertEquals("example.com", httpSampler.getProxyHost(), "proxy host should be set in httpsampler");
@@ -268,9 +264,7 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser
                 .parse("curl 'http://jmeter.apache.org/' -F 'test=name' --data 'fname=a&lname=b'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("setFormData", Request.class, HTTPSamplerProxy.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("setFormData", Request.class, HTTPSamplerProxy.class);
         try {
             method.invoke(p, request, httpSampler);
             throw new IllegalStateException("Should have thrown InvocationTargetException");
@@ -289,9 +283,7 @@ public class ParseCurlCommandActionTest {
         HashTree testPlanHT = tree.add(testPlan);
         HashTree threadGroupHT = testPlanHT.add(threadGroup);
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/'  -E '<CA certificate>'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("createHttpRequest", Request.class, HashTree.class, String.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("createHttpRequest", Request.class, HashTree.class, String.class);
         HTTPSamplerProxy httpSampler = (HTTPSamplerProxy) method.invoke(p, request, threadGroupHT, "comment");
         assertEquals("/", httpSampler.getPath(), "path should be set in httpsampler");
         assertEquals("jmeter.apache.org", httpSampler.getDomain(), "domain should be set in httpsampler");
@@ -308,9 +300,7 @@ public class ParseCurlCommandActionTest {
                 .newInstance(HTTPSamplerFactory.DEFAULT_CLASSNAME);
         httpSampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());
         httpSampler.setProperty(TestElement.NAME, "HTTP Request");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("configureTimeout", Request.class, HTTPSamplerProxy.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("configureTimeout", Request.class, HTTPSamplerProxy.class);
         method.invoke(p, request, httpSampler);
         assertEquals(1000, httpSampler.getConnectTimeout());
         assertEquals(19000, httpSampler.getResponseTimeout());
@@ -322,9 +312,7 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse(
                 "curl 'http://jmeter.apache.org/' -H 'Content-Type: application/x-www-form-urlencoded' --compressed");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("createHeaderManager", Request.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("createHeaderManager", Request.class);
         HeaderManager headerManager = (HeaderManager) method.invoke(p, request);
         // The following headers should be set in the HeaderManager
         assertEquals("Content-Type", headerManager.get(0).getName());
@@ -339,9 +327,7 @@ public class ParseCurlCommandActionTest {
         AuthManager authManager = new AuthManager();
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -u 'user:passwd'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("createAuthManager", Request.class, AuthManager.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("createAuthManager", Request.class, AuthManager.class);
         method.invoke(p, request, authManager);
         assertEquals("user", authManager.get(0).getUser());
         assertEquals("passwd", authManager.get(0).getPass());
@@ -359,9 +345,7 @@ public class ParseCurlCommandActionTest {
         authManager.addAuth(authorization);
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -u 'user:passwd'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("canAddAuthManagerInHttpRequest", Request.class, AuthManager.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("canAddAuthManagerInHttpRequest", Request.class, AuthManager.class);
         assertFalse((boolean) method.invoke(p, request, authManager),
                 "When AuthManager contains this authorization, shouldn't add a AuthManager in Http Request");
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -u 'user1:passwd1'");
@@ -382,9 +366,7 @@ public class ParseCurlCommandActionTest {
         authManager.addAuth(authorization);
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -u 'user:passwd'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("canUpdateAuthManagerInThreadGroup", Request.class, AuthManager.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("canUpdateAuthManagerInThreadGroup", Request.class, AuthManager.class);
         assertFalse((boolean) method.invoke(p, request, authManager),
                 "When AuthManager contains this url, shouldn't add a AuthManager in ThreadGroup");
         request = basicCurlParser.parse("curl 'http://jmeter.apache.fr/' -u 'user:passwd'");
@@ -398,9 +380,7 @@ public class ParseCurlCommandActionTest {
         CookieManager cookieManager = new CookieManager();
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -b 'name=Tom'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", CookieManager.class, Request.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("createCookieManager", CookieManager.class, Request.class);
         method.invoke(p, cookieManager, request);
         assertEquals("jmeter.apache.org", cookieManager.get(0).getDomain(),
                 "the domain of cookie should be set in cookieManager");
@@ -431,14 +411,12 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser
                 .parse("curl 'http://jmeter.apache.org/' -H 'cookie: PHPSESSID=testphpsessid;a=b' --compressed");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
         Field f = ParseCurlCommandAction.class.getDeclaredField("uploadCookiesCheckBox");
         f.setAccessible(true);
         JCheckBox uploadCookiesCheckBox = new JCheckBox(
                 JMeterUtils.getResString("curl_add_cookie_header_to_cookiemanager"), true);
         f.set(p, uploadCookiesCheckBox);
-        Method method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", CookieManager.class, Request.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("createCookieManager", CookieManager.class, Request.class);
         method.invoke(p, cookieManager, request);
         assertEquals("jmeter.apache.org", cookieManager.get(0).getDomain(), "the domain of cookie should be set in cookieManager");
         assertEquals("/", cookieManager.get(0).getPath(), "the path of cookie should be set in cookieManager");
@@ -460,9 +438,7 @@ public class ParseCurlCommandActionTest {
         DNSCacheManager dnsCacheManager = new DNSCacheManager();
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' --dns-servers '0.0.0.0'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("createDnsServer", Request.class, DNSCacheManager.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("createDnsServer", Request.class, DNSCacheManager.class);
         method.invoke(p, request, dnsCacheManager);
         assertEquals("0.0.0.0", dnsCacheManager.getServers().get(0).getStringValue(),
                 "the dns server should be set in DNSCacheManager");
@@ -475,9 +451,7 @@ public class ParseCurlCommandActionTest {
         dnsCacheManager.addServer("0.0.0.0");
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' --dns-servers '0.0.0.0'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("canAddDnsServerInHttpRequest", Request.class, DNSCacheManager.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("canAddDnsServerInHttpRequest", Request.class, DNSCacheManager.class);
         assertFalse((boolean) method.invoke(p, request, dnsCacheManager),
                 "When the Dns servers are  the same, shouldn't add the DnsCacheManager in Http Request");
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' --dns-servers '1.1.1.1'");
@@ -492,9 +466,7 @@ public class ParseCurlCommandActionTest {
         BasicCurlParser basicCurlParser = new BasicCurlParser();
         Request request = basicCurlParser
                 .parse("curl 'http://jmeter.apache.org/'  --resolve 'moonagic.com:443:127.0.0.2'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("createDnsResolver", Request.class, DNSCacheManager.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("createDnsResolver", Request.class, DNSCacheManager.class);
         method.invoke(p, request, dnsCacheManager);
         assertEquals("StaticHost(moonagic.com, 127.0.0.2)", dnsCacheManager.getHosts().get(0).getStringValue());
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/'  --resolve 'moonagic.com:9090:127.0.0.2'");
@@ -514,9 +486,7 @@ public class ParseCurlCommandActionTest {
 
         Request request = basicCurlParser
                 .parse("curl 'http://jmeter.apache.org/'  --resolve 'moonagic.com:443:127.0.0.2'");
-        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
-        Method method = parseCurlCommandAction.getDeclaredMethod("canAddDnsResolverInHttpRequest", Request.class, DNSCacheManager.class);
-        method.setAccessible(true);
+        Method method = getMethodFor("canAddDnsResolverInHttpRequest", Request.class, DNSCacheManager.class);
         dnsCacheManager = new DNSCacheManager();
         dnsCacheManager.addHost("moonagic.com", "127.0.0.2");
         method.invoke(p, request, dnsCacheManager);
@@ -539,4 +509,12 @@ public class ParseCurlCommandActionTest {
         assertTrue((boolean) method.invoke(p, request, dnsCacheManager),
                 "When the Dns servers aren't the same, should add the DnsCacheManager in Http Request");
     }
+
+    private Method getMethodFor(String name, Class<?>...paramsClasses) throws NoSuchMethodException, SecurityException {
+        Class<ParseCurlCommandAction> parseCurlCommandAction = ParseCurlCommandAction.class;
+        Method method = parseCurlCommandAction.getDeclaredMethod(name, paramsClasses);
+        method.setAccessible(true);
+        return method;
+    }
 }
+


[jmeter] 02/03: Re-use methods in unit tests

Posted by fs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

fschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit dca1b9ab6bd98a1c70fb85bcb02d7d0fd6178f41
Author: Felix Schumacher <fe...@internetallee.de>
AuthorDate: Thu May 28 21:11:48 2020 +0200

    Re-use methods in unit tests
    
    There is no need to re-fetch methods from the same class in one method,
    so re-use them.
---
 .../org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java b/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
index f3a205b..18eabb2 100644
--- a/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
+++ b/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java
@@ -412,12 +412,8 @@ public class ParseCurlCommandActionTest {
         String filepath = tempDir.resolve("test.txt").toAbsolutePath().toString();
         assertTrue(tempDir.resolve("test.txt").toFile().createNewFile());
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -b '" + filepath + "'");
-        method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", CookieManager.class, Request.class);
-        method.setAccessible(true);
         method.invoke(p, cookieManager, request);
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/' -b 'test1.txt'");
-        method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", CookieManager.class, Request.class);
-        method.setAccessible(true);
         try {
             method.invoke(p, cookieManager, request);
         } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
@@ -451,8 +447,6 @@ public class ParseCurlCommandActionTest {
         uploadCookiesCheckBox = new JCheckBox(JMeterUtils.getResString("curl_add_cookie_header_to_cookiemanager"), false);
 
         f.set(p, uploadCookiesCheckBox);
-        method = parseCurlCommandAction.getDeclaredMethod("createCookieManager", CookieManager.class, Request.class);
-        method.setAccessible(true);
         cookieManager = new CookieManager();
         method.invoke(p, cookieManager, request);
         assertEquals(0, cookieManager.getCookies().size(),
@@ -504,7 +498,6 @@ public class ParseCurlCommandActionTest {
         method.invoke(p, request, dnsCacheManager);
         assertEquals("StaticHost(moonagic.com, 127.0.0.2)", dnsCacheManager.getHosts().get(0).getStringValue());
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/'  --resolve 'moonagic.com:9090:127.0.0.2'");
-        method.setAccessible(true);
         method.invoke(p, request, dnsCacheManager);
         assertEquals("StaticHost(moonagic.com, 127.0.0.2)", dnsCacheManager.getHosts().get(0).getStringValue(),
                 "the dns resolver should be set in DNSCacheManager");
@@ -531,7 +524,6 @@ public class ParseCurlCommandActionTest {
                 "When the Dns servers are the same, shouldn't add the DnsCacheManager in Http Request");
 
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/'  --resolve 'moonagic.com:9090:127.0.0.1'");
-        method.setAccessible(true);
         method.invoke(p, request, dnsCacheManager);
         assertTrue((boolean) method.invoke(p, request, dnsCacheManager),
                 "When the Dns servers aren't the same, should add the DnsCacheManager in Http Request");
@@ -543,7 +535,6 @@ public class ParseCurlCommandActionTest {
                 "When the Dns servers aren't the same, should add the DnsCacheManager in Http Request");
 
         request = basicCurlParser.parse("curl 'http://jmeter.apache.org/'  --resolve 'moonagic.com:9090:127.0.0.1'");
-        method.setAccessible(true);
         method.invoke(p, request, dnsCacheManager);
         assertTrue((boolean) method.invoke(p, request, dnsCacheManager),
                 "When the Dns servers aren't the same, should add the DnsCacheManager in Http Request");