31
31
import com .cloudbees .jenkins .plugins .bitbucket .client .BitbucketIntegrationClientFactory .IRequestAudit ;
32
32
import com .cloudbees .jenkins .plugins .bitbucket .client .repository .BitbucketCloudRepository ;
33
33
import com .cloudbees .jenkins .plugins .bitbucket .endpoints .BitbucketCloudEndpoint ;
34
+ import hudson .ProxyConfiguration ;
34
35
import io .jenkins .cli .shaded .org .apache .commons .lang .RandomStringUtils ;
35
36
import java .io .IOException ;
36
37
import java .io .InputStream ;
38
+ import java .net .InetSocketAddress ;
39
+ import java .net .Proxy ;
37
40
import java .nio .charset .StandardCharsets ;
38
41
import java .util .Date ;
39
42
import java .util .Optional ;
42
45
import org .apache .http .client .methods .HttpPut ;
43
46
import org .apache .http .client .methods .HttpRequestBase ;
44
47
import org .junit .jupiter .api .Test ;
48
+ import org .jvnet .hudson .test .JenkinsRule ;
49
+ import org .jvnet .hudson .test .junit .jupiter .WithJenkins ;
45
50
import org .mockito .ArgumentCaptor ;
46
51
47
52
import static net .javacrumbs .jsonunit .assertj .JsonAssertions .assertThatJson ;
48
53
import static org .assertj .core .api .Assertions .assertThat ;
54
+ import static org .mockito .ArgumentMatchers .anyString ;
55
+ import static org .mockito .ArgumentMatchers .eq ;
56
+ import static org .mockito .Mockito .doReturn ;
57
+ import static org .mockito .Mockito .mock ;
49
58
import static org .mockito .Mockito .reset ;
50
59
import static org .mockito .Mockito .verify ;
60
+ import static org .mockito .Mockito .when ;
51
61
52
62
class BitbucketCloudApiClientTest {
53
63
@@ -57,6 +67,23 @@ private String loadPayload(String api) throws IOException {
57
67
}
58
68
}
59
69
70
+ @ Test
71
+ @ WithJenkins
72
+ public void test_proxy_configurad_without_password (JenkinsRule r ) throws Exception {
73
+ Proxy proxy = mock (Proxy .class );
74
+ when (proxy .address ()).thenReturn (new InetSocketAddress ("proxy.lan" , 8080 ));
75
+ ProxyConfiguration proxyConfiguration = mock (ProxyConfiguration .class );
76
+ doReturn (proxy ).when (proxyConfiguration ).createProxy (anyString ());
77
+ doReturn ("username" ).when (proxyConfiguration ).getUserName ();
78
+
79
+ r .jenkins .setProxy (proxyConfiguration );
80
+ BitbucketIntegrationClientFactory .getApiMockClient (BitbucketCloudEndpoint .SERVER_URL );
81
+
82
+ verify (proxyConfiguration ).createProxy (eq ("bitbucket.org" ));
83
+ verify (proxyConfiguration ).getUserName ();
84
+ verify (proxyConfiguration ).getSecretPassword ();
85
+ }
86
+
60
87
@ Test
61
88
void verify_status_notitication_name_max_length () throws Exception {
62
89
BitbucketApi client = BitbucketIntegrationClientFactory .getApiMockClient (BitbucketCloudEndpoint .SERVER_URL );
0 commit comments