11package com .joyent .manta .client ;
22
3- import com .joyent .manta .config .ConfigContext ;
43import com .joyent .manta .config .TestConfigContext ;
54import org .mockito .Mockito ;
65import org .testng .annotations .AfterTest ;
@@ -24,14 +23,30 @@ public void teardown() {
2423 }
2524
2625 @ Test
27- public void listObjectsDoesNotLeakConnections () throws IOException {
26+ public void listObjectsDoesNotLeakConnectionsWhenThereAreResults () throws IOException {
2827 // BasicHttpClientConnectionManager maintains a single connection
2928
3029 final MantaDirectoryListingIterator iteratorMock = mock (MantaDirectoryListingIterator .class );
3130 when (iteratorMock .hasNext ()).thenReturn (true );
3231
33- final ConfigContext config = TestConfigContext .generateKeyPairBackedConfig ().right .setMantaUser ("user" );
34- final MantaClient client = new MantaClient (config );
32+ final MantaClient client = new MantaClient (TestConfigContext .generateKeyPairBackedConfig ().right );
33+ final MantaClient clientSpy = spy (client );
34+ doReturn (iteratorMock ).when (clientSpy ).streamingIterator (anyString ());
35+
36+ final Stream <MantaObject > listing = clientSpy .listObjects ("/" );
37+ listing .close ();
38+
39+ verify (iteratorMock ).close ();
40+ }
41+
42+ @ Test
43+ public void listObjectsDoesNotLeakConnectionsWhenNoResults () throws IOException {
44+ // BasicHttpClientConnectionManager maintains a single connection
45+
46+ final MantaDirectoryListingIterator iteratorMock = mock (MantaDirectoryListingIterator .class );
47+ when (iteratorMock .hasNext ()).thenReturn (false );
48+
49+ final MantaClient client = new MantaClient (TestConfigContext .generateKeyPairBackedConfig ().right );
3550 final MantaClient clientSpy = spy (client );
3651 doReturn (iteratorMock ).when (clientSpy ).streamingIterator (anyString ());
3752
0 commit comments