@Override public final boolean equals(Object o) { return o != null && o instanceof QuerySort && toSphereSort().equals(((QuerySort) o).toSphereSort()); }
private String completePath(final String endpoint, final boolean urlEncoded) { final UrlQueryBuilder builder = UrlQueryBuilder.of(); predicates().forEach(predicate -> builder.add(WHERE, predicate.toSphereQuery(), urlEncoded)); sort().forEach(sort -> builder.add(SORT, sort.toSphereSort(), urlEncoded)); Optional.ofNullable(limit()).ifPresent(limit -> builder.add(LIMIT, limit.toString(), urlEncoded)); Optional.ofNullable(offset()).ifPresent(offset -> builder.add(OFFSET, offset.toString(), urlEncoded)); Optional.ofNullable(fetchTotal()).ifPresent(withTotal -> builder.add(WITH_TOTAL, withTotal.toString(), urlEncoded)); expansionPaths().forEach(path -> builder.add(EXPAND, path.toSphereExpand(), urlEncoded)); additionalHttpQueryParameters().forEach(parameter -> builder.add(parameter.getName(), parameter.getValue(), urlEncoded)); final String extractedQueryParameters = builder.build(); if (StringUtils.isEmpty(extractedQueryParameters)) { return endpoint; } else { return endpoint + (endpoint.contains("?") ? "&" : "?" ) + extractedQueryParameters; } }
@Test public void generateSortExpressionDesc() throws Exception { assertThat(model.sort().desc().toSphereSort()).isEqualTo("id desc"); } }
@Test public void generateSortExpressionAsc() throws Exception { assertThat(model.sort().asc().toSphereSort()).isEqualTo("id asc"); }
@Test public void sortBySyncedAt() throws Exception { assertThat(OrderQueryModel.of().syncInfo().syncedAt().sort().asc().toSphereSort()) .isEqualTo("syncInfo.syncedAt asc"); } }