Я хотел бы реализовать тест, который проверяет, что мой фильтр для переменной с плавающей запятой работает хорошо.Я отправляю фильтр и ожидаю, что коллекция будет иметь значения только ниже определенного значения.
final Double orderPrice = 0.0;
this.mockMvc.perform(post(SEARCH_ROUTE)
.contentType(contentType)
.content(json(buildSearchDtoOnFilter(
new FilterDto() {{
setFieldName("orderPrice");
setFilterType(FilterType.LESS);
setFilterValue(orderPrice.toString());
}}))))
.andExpect(status().isOk())
.andExpect(content().contentType(contentType))
.andExpect(jsonPath("$.orders", not(empty())))
.andExpect(jsonPath("$.orders.[*].orderPrice", everyItem(lessThan(orderPrice))));
При выполнении последней строки проверок в итоге я получаю исключение
java.langИсключениеMockMvc для фактического типа с плавающей запятой: если число имеет менее 18 цифр, оно использует Double, иначе используется BigDecimal.Что приводит к несовместимым элементам в коллекции: некоторые будут Double, а некоторые - BigDecimal.
Есть ли хороший и чистый способ обойти это?
Спасибо.