3131import com .cloudbees .jenkins .plugins .bitbucket .client .BitbucketIntegrationClientFactory .IRequestAudit ;
3232import com .cloudbees .jenkins .plugins .bitbucket .client .repository .BitbucketCloudRepository ;
3333import com .cloudbees .jenkins .plugins .bitbucket .endpoints .BitbucketCloudEndpoint ;
34+ import hudson .ProxyConfiguration ;
3435import io .jenkins .cli .shaded .org .apache .commons .lang .RandomStringUtils ;
3536import java .io .IOException ;
3637import java .io .InputStream ;
38+ import java .net .InetSocketAddress ;
39+ import java .net .Proxy ;
3740import java .nio .charset .StandardCharsets ;
3841import java .util .Date ;
3942import java .util .Optional ;
4245import org .apache .http .client .methods .HttpPut ;
4346import org .apache .http .client .methods .HttpRequestBase ;
4447import org .junit .jupiter .api .Test ;
48+ import org .jvnet .hudson .test .JenkinsRule ;
49+ import org .jvnet .hudson .test .junit .jupiter .WithJenkins ;
4550import org .mockito .ArgumentCaptor ;
4651
4752import static net .javacrumbs .jsonunit .assertj .JsonAssertions .assertThatJson ;
4853import 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 ;
4958import static org .mockito .Mockito .reset ;
5059import static org .mockito .Mockito .verify ;
60+ import static org .mockito .Mockito .when ;
5161
5262class BitbucketCloudApiClientTest {
5363
@@ -57,6 +67,23 @@ private String loadPayload(String api) throws IOException {
5767 }
5868 }
5969
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+
6087 @ Test
6188 void verify_status_notitication_name_max_length () throws Exception {
6289 BitbucketApi client = BitbucketIntegrationClientFactory .getApiMockClient (BitbucketCloudEndpoint .SERVER_URL );
0 commit comments