public static JspoonConverterFactory create(Jspoon jspoon) { return new JspoonConverterFactory(jspoon); }
private static Retrofit createRetrofit() { return new Retrofit.Builder() .baseUrl("https://www.thedroidsonroids.com/") .addConverterFactory(JspoonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); }
@Override public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) { try { return new JspoonResponseBodyConverter<>(retrofit.baseUrl(), jspoon.adapter((Class<?>) type)); } catch (EmptySelectorException ex) { return null; // Let retrofit choose another converter } } }
@Test public void testJspoonConverterAllowsRetrofitToChooseAnotherConverter() throws Exception { MockWebServer server = new MockWebServer(); server.enqueue(new MockResponse().setBody("Ahoy matey!")); Converter mockConverter = mock(Converter.class); when(mockConverter.convert(any(ResponseBody.class))) .thenReturn(new Item("1", "Item 1")); Factory mockConverterFactory = mock(Factory.class); when(mockConverterFactory.responseBodyConverter( any(Type.class), any(Annotation[].class), any(Retrofit.class))).thenReturn(mockConverter); NonScrapingService service = new Builder() .baseUrl(server.url("/")) .addConverterFactory(JspoonConverterFactory.create()) .addConverterFactory(mockConverterFactory) .build() .create(NonScrapingService.class); Item item = service.getItem("1").execute().body(); assertEquals(item.id, "1"); assertEquals(item.name, "Item 1"); verify(mockConverter, atLeastOnce()).convert(any(ResponseBody.class)); } }
public static JspoonConverterFactory create(Jspoon jspoon) { return new JspoonConverterFactory(jspoon); }
@Override public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) { try { return new JspoonResponseBodyConverter<>(retrofit.baseUrl(), jspoon.adapter((Class<?>) type)); } catch (EmptySelectorException ex) { return null; // Let retrofit choose another converter } } }
public static JspoonConverterFactory create() { return new JspoonConverterFactory(Jspoon.create()); }
public static JspoonConverterFactory create() { return new JspoonConverterFactory(Jspoon.create()); }