Retrofit createRetrofit(OkHttpClient client, Session session) { Moshi moshi = new Moshi.Builder().add(new BigDecimalAdapter()).build(); return new Retrofit.Builder() .addConverterFactory(MoshiConverterFactory.create(moshi)) .baseUrl(session.getAuthenticator().getSessionConfiguration().getEndpointHost()) .client(client) .build(); } }
Retrofit createRetrofit(OkHttpClient client, Session session) { Moshi moshi = new Moshi.Builder().add(new BigDecimalAdapter()).build(); return new Retrofit.Builder() .addConverterFactory(MoshiConverterFactory.create(moshi)) .baseUrl(session.getAuthenticator().getSessionConfiguration().getEndpointHost()) .client(client) .build(); } }
@Before public void setUp() throws Exception { Moshi moshi = new Moshi.Builder().add(new BigDecimalAdapter()).build(); service = new Retrofit.Builder() .addConverterFactory(MoshiConverterFactory.create(moshi)) .client(new OkHttpClient.Builder() .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) .build()) .baseUrl("http://localhost:" + wireMockRule.port()) .build() .create(RidesService.class); }
@Test public void toJson_shouldWork() { Moshi moshi = new Moshi.Builder().add(new BigDecimalAdapter()).build(); JsonAdapter<BigDecimalModel> adapter = moshi.adapter(BigDecimalModel.class); BigDecimalModel bigDecimalModel = new BigDecimalModel(); bigDecimalModel.presentDecimal = new BigDecimal("1.23"); String json = adapter.toJson(bigDecimalModel); assertThat(json).isEqualTo("{\"presentDecimal\":1.23}"); }
@Test public void fromJson_shouldHandleAbsent_andNull_andNonNullValues() throws IOException { Moshi moshi = new Moshi.Builder().add(new BigDecimalAdapter()).build(); JsonAdapter<BigDecimalModel> adapter = moshi.adapter(BigDecimalModel.class); BigDecimalModel model = adapter.fromJson("{\"nullDecimal\":null,\"presentDecimal\":1.23}"); assertThat(model.absentDecimal).isNull(); assertThat(model.nullDecimal).isNull(); assertThat(model.presentDecimal).isEqualTo(new BigDecimal("1.23")); }