Мое соединение отлично работает с:
URLConnectionFactory hadoopConnectionFactory = URLConnectionFactory.newDefaultURLConnectionFactory(cfg);
String url = "...";
URLConnection urc = hadoopConnectionFactory.openConnection(new URL(url));
urc.connect();
// Do something with urc.getInputStream()
И у меня есть тест с @RunWith(PowerMockRunner.class)
и @PrepareForTest({URLConnectionFactory.class})
:
PowerMockito.mockStatic(URLConnectionFactory.class);
URLConnectionFactory hadoopConnectionFactory = PowerMockito.mock(URLConnectionFactory.class);
PowerMockito.when(URLConnectionFactory.newDefaultURLConnectionFactory(anyObject())).thenReturn(hadoopConnectionFactory);
URLConnection urc = PowerMockito.mock(URLConnection.class);
PowerMockito.when(hadoopConnectionFactory.openConnection(anyObject())).thenReturn(urc);
PowerMockito.when(urc.getInputStream()).thenReturn(...);
С ОК.
Теперь я хочу закрыть соединение с помощью HttpURLConnection и метода connect (). Это прекрасно работает в коде:
HttpURLConnection conn = (HttpURLConnection) urc;
conn.disconnect();
Но в тесте не может быть брошено:
java.lang.ClassCastException: $java.net.URLConnection$$EnhancerByMockitoWithCGLIB$$6fcf4cc9 cannot be cast to java.net.HttpURLConnection
Как я могу поддержать приведение в тесте, чтобы отключить эту связь с PowerMockito?
Спасибо.