diff --git a/build.gradle b/build.gradle index 87b38f6a..4e7734cd 100644 --- a/build.gradle +++ b/build.gradle @@ -24,6 +24,7 @@ repositories { dependencies { implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:${jacksonVersion}") + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-csv:${jacksonCsvVersion}") implementation("com.fasterxml.jackson.core:jackson-databind:${jacksonVersion}") implementation("org.apache.httpcomponents.client5:httpclient5:${apacheHttpComponentsVersion}") implementation("org.apache.commons:commons-lang3:${apacheCommonsVersion}") diff --git a/gradle.properties b/gradle.properties index 0af79481..e186ac4e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,6 +7,7 @@ checkstyleVersion=10.26.1 apacheCommonsVersion=3.18.0 apacheHttpComponentsVersion=5.5 jacksonVersion=2.19.2 +jacksonCsvVersion=2.17.2 # Publishing mavenCentralPublishing=true diff --git a/src/main/java/dev/sorn/fmp4j/FmpClient.java b/src/main/java/dev/sorn/fmp4j/FmpClient.java index 685263a3..127266b6 100644 --- a/src/main/java/dev/sorn/fmp4j/FmpClient.java +++ b/src/main/java/dev/sorn/fmp4j/FmpClient.java @@ -4,6 +4,7 @@ import dev.sorn.fmp4j.cfg.FmpConfig; import dev.sorn.fmp4j.cfg.FmpConfigImpl; +import dev.sorn.fmp4j.clients.FmpBulkClient; import dev.sorn.fmp4j.clients.FmpCalendarClient; import dev.sorn.fmp4j.clients.FmpChartClient; import dev.sorn.fmp4j.clients.FmpCompanyClient; @@ -23,6 +24,7 @@ public class FmpClient { protected final FmpHttpClient fmpHttpClient; // Alphabetical order + protected final FmpBulkClient fmpBulkClient; protected final FmpCalendarClient fmpCalendarClient; protected final FmpChartClient fmpChartClient; protected final FmpCompanyClient fmpCompanyClient; @@ -46,6 +48,7 @@ public FmpClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { fmpHttpClient, // Alphabetical order + new FmpBulkClient(fmpConfig, fmpHttpClient), new FmpCalendarClient(fmpConfig, fmpHttpClient), new FmpChartClient(fmpConfig, fmpHttpClient), new FmpCompanyClient(fmpConfig, fmpHttpClient), @@ -65,6 +68,7 @@ public FmpClient( FmpHttpClient fmpHttpClient, // Alphabetical order + FmpBulkClient fmpBulkClient, FmpCalendarClient fmpCalendarClient, FmpChartClient fmpChartClient, FmpCompanyClient fmpCompanyClient, @@ -80,6 +84,7 @@ public FmpClient( // Alphabetical order this.fmpConfig = fmpConfig; this.fmpHttpClient = fmpHttpClient; + this.fmpBulkClient = fmpBulkClient; this.fmpCalendarClient = fmpCalendarClient; this.fmpChartClient = fmpChartClient; this.fmpCompanyClient = fmpCompanyClient; @@ -94,6 +99,10 @@ public FmpClient( this.fmpStatementClient = fmpStatementClient; } + public FmpBulkClient bulk() { + return fmpBulkClient; + } + public FmpCalendarClient calendar() { return fmpCalendarClient; } diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpBulkClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpBulkClient.java new file mode 100644 index 00000000..ca34e54a --- /dev/null +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpBulkClient.java @@ -0,0 +1,25 @@ +package dev.sorn.fmp4j.clients; + +import dev.sorn.fmp4j.cfg.FmpConfig; +import dev.sorn.fmp4j.http.FmpHttpClient; +import dev.sorn.fmp4j.models.FmpCashFlowStatement; +import dev.sorn.fmp4j.services.FmpCashFlowStatementBulkService; +import dev.sorn.fmp4j.services.FmpService; +import dev.sorn.fmp4j.types.FmpPeriod; +import dev.sorn.fmp4j.types.FmpYear; + +public class FmpBulkClient { + + protected final FmpService cashFlowStatementBulkService; + + public FmpBulkClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { + this.cashFlowStatementBulkService = new FmpCashFlowStatementBulkService(fmpConfig, fmpHttpClient); + } + + public synchronized FmpCashFlowStatement[] cashFlowStatements(FmpYear year, FmpPeriod period) { + cashFlowStatementBulkService.param("year", year); + cashFlowStatementBulkService.param("period", period); + + return cashFlowStatementBulkService.download(); + } +} diff --git a/src/main/java/dev/sorn/fmp4j/csv/FmpCsvDeserializer.java b/src/main/java/dev/sorn/fmp4j/csv/FmpCsvDeserializer.java new file mode 100644 index 00000000..cd62ced1 --- /dev/null +++ b/src/main/java/dev/sorn/fmp4j/csv/FmpCsvDeserializer.java @@ -0,0 +1,58 @@ +package dev.sorn.fmp4j.csv; + +import com.fasterxml.jackson.core.json.JsonReadFeature; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.MappingIterator; +import com.fasterxml.jackson.databind.ObjectReader; +import com.fasterxml.jackson.dataformat.csv.CsvMapper; +import com.fasterxml.jackson.dataformat.csv.CsvSchema; +import dev.sorn.fmp4j.deserialize.FmpDeserializer; +import dev.sorn.fmp4j.json.FmpJsonModule; +import java.io.IOException; +import java.io.StringReader; +import java.lang.reflect.Array; + +public final class FmpCsvDeserializer implements FmpDeserializer { + public static final FmpCsvDeserializer FMP_CSV_DESERIALIZER = new FmpCsvDeserializer(); + + private static final CsvMapper CSV_MAPPER = (CsvMapper) new CsvMapper() + .findAndRegisterModules() + .configure(com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(com.fasterxml.jackson.databind.DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true) + .configure(JsonReadFeature.ALLOW_TRAILING_COMMA.mappedFeature(), true) + .registerModule(new FmpJsonModule()); + + private FmpCsvDeserializer() {} + + private String removeByteOrderMark(String content) { + if (content.startsWith("\uFEFF")) { + return content.substring(1); + } else { + return content; + } + } + + @Override + public T deserialize(String content, TypeReference type) { + try { + String cleanedCsv = removeByteOrderMark(content); + JavaType javaType = CSV_MAPPER.getTypeFactory().constructType(type.getType()); + + JavaType componentType = javaType.getContentType(); + CsvSchema schema = CsvSchema.emptySchema().withHeader().withNullValue(""); + ObjectReader reader = CSV_MAPPER.readerFor(componentType).with(schema); + MappingIterator iterator = reader.readValues(new StringReader(cleanedCsv)); + var list = iterator.readAll(); + + Object array = Array.newInstance(componentType.getRawClass(), list.size()); + for (int i = 0; i < list.size(); i++) { + Array.set(array, i, list.get(i)); + } + return (T) array; + } catch (IOException e) { + throw new FmpCsvException( + e, "Failed to deserialize CSV to '%s': %s", type.getType().getTypeName(), content); + } + } +} diff --git a/src/main/java/dev/sorn/fmp4j/csv/FmpCsvException.java b/src/main/java/dev/sorn/fmp4j/csv/FmpCsvException.java new file mode 100644 index 00000000..0638f472 --- /dev/null +++ b/src/main/java/dev/sorn/fmp4j/csv/FmpCsvException.java @@ -0,0 +1,9 @@ +package dev.sorn.fmp4j.csv; + +import static java.lang.String.format; + +public class FmpCsvException extends RuntimeException { + public FmpCsvException(Throwable t, String message, Object... args) { + super(format(message, args), t); + } +} diff --git a/src/main/java/dev/sorn/fmp4j/deserialize/FmpDeserializer.java b/src/main/java/dev/sorn/fmp4j/deserialize/FmpDeserializer.java new file mode 100644 index 00000000..dddbef17 --- /dev/null +++ b/src/main/java/dev/sorn/fmp4j/deserialize/FmpDeserializer.java @@ -0,0 +1,7 @@ +package dev.sorn.fmp4j.deserialize; + +import com.fasterxml.jackson.core.type.TypeReference; + +public interface FmpDeserializer { + T deserialize(String content, TypeReference type); +} diff --git a/src/main/java/dev/sorn/fmp4j/http/FmpHttpClientImpl.java b/src/main/java/dev/sorn/fmp4j/http/FmpHttpClientImpl.java index b99e2fdb..82aaa67b 100644 --- a/src/main/java/dev/sorn/fmp4j/http/FmpHttpClientImpl.java +++ b/src/main/java/dev/sorn/fmp4j/http/FmpHttpClientImpl.java @@ -1,10 +1,13 @@ package dev.sorn.fmp4j.http; +import static dev.sorn.fmp4j.csv.FmpCsvDeserializer.FMP_CSV_DESERIALIZER; import static dev.sorn.fmp4j.http.FmpUriUtils.uriWithParams; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.Objects.requireNonNull; import com.fasterxml.jackson.core.type.TypeReference; +import dev.sorn.fmp4j.csv.FmpCsvDeserializer; +import dev.sorn.fmp4j.csv.FmpCsvException; import dev.sorn.fmp4j.json.FmpJsonDeserializer; import dev.sorn.fmp4j.json.FmpJsonException; import dev.sorn.fmp4j.types.FmpApiKey; @@ -23,15 +26,22 @@ public class FmpHttpClientImpl implements FmpHttpClient { public static final FmpHttpClient FMP_HTTP_CLIENT = new FmpHttpClientImpl(); private final HttpClient http; - private final FmpJsonDeserializer deserializer; + private final FmpJsonDeserializer jsonDeserializer; + private final FmpCsvDeserializer csvDeserializer; private FmpHttpClientImpl() { - this(HttpClients.createDefault(), FMP_JSON_DESERIALIZER); + this(HttpClients.createDefault(), FMP_JSON_DESERIALIZER, FMP_CSV_DESERIALIZER); } - public FmpHttpClientImpl(HttpClient httpClient, FmpJsonDeserializer deserializer) { + public FmpHttpClientImpl(HttpClient httpClient, FmpJsonDeserializer jsonDeserializer) { + this(httpClient, jsonDeserializer, FMP_CSV_DESERIALIZER); + } + + public FmpHttpClientImpl( + HttpClient httpClient, FmpJsonDeserializer jsonDeserializer, FmpCsvDeserializer csvDeserializer) { this.http = requireNonNull(httpClient, "'httpClient' is required"); - this.deserializer = requireNonNull(deserializer, "'deserializer' is required"); + this.jsonDeserializer = requireNonNull(jsonDeserializer, "'jsonDeserializer' is required"); + this.csvDeserializer = requireNonNull(csvDeserializer, "'csvDeserializer' is required"); } @Override @@ -46,7 +56,13 @@ public T get(TypeReference type, URI uri, Map headers, Ma "Unauthorized for type [%s], uri [%s], headers [%s], queryParams [%s];\nresponseBody: %s", type.getType(), uri, headers, queryParams, responseBody); } - return deserializer.fromJson(responseBody, type); + + String contentType = headers != null ? headers.get("Content-Type") : null; + if ("text/csv".equals(contentType)) { + return csvDeserializer.deserialize(responseBody, type); + } else { + return jsonDeserializer.deserialize(responseBody, type); + } } catch (FmpUnauthorizedException e) { throw e; } catch (FmpJsonException e) { @@ -57,6 +73,14 @@ public T get(TypeReference type, URI uri, Map headers, Ma uri, headers, queryParams); + } catch (FmpCsvException e) { + throw new FmpHttpException( + e, + "CSV deserialization failed for type [%s], uri [%s], headers [%s], queryParams [%s]", + type.getType(), + uri, + headers, + queryParams); } catch (ParseException | IOException | RuntimeException e) { throw new FmpHttpException(e, "HTTP request failed: %s", uri); } diff --git a/src/main/java/dev/sorn/fmp4j/json/FmpJsonDeserializer.java b/src/main/java/dev/sorn/fmp4j/json/FmpJsonDeserializer.java index f80ff83a..acb03180 100644 --- a/src/main/java/dev/sorn/fmp4j/json/FmpJsonDeserializer.java +++ b/src/main/java/dev/sorn/fmp4j/json/FmpJsonDeserializer.java @@ -1,7 +1,31 @@ package dev.sorn.fmp4j.json; import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import dev.sorn.fmp4j.deserialize.FmpDeserializer; +import java.io.IOException; -public interface FmpJsonDeserializer { - T fromJson(String json, TypeReference type); +public final class FmpJsonDeserializer implements FmpDeserializer { + public static final FmpJsonDeserializer FMP_JSON_DESERIALIZER = new FmpJsonDeserializer(); + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS) + .registerModule(new JavaTimeModule()) + .registerModule(new FmpJsonModule()); + + private FmpJsonDeserializer() { + // prevent direct instantiation + } + + public T deserialize(String json, TypeReference type) { + try { + return OBJECT_MAPPER.readValue(json, type); + } catch (IOException e) { + throw new FmpJsonException( + e, "Failed to deserialize JSON to '%s': %s", type.getType().getTypeName(), json); + } + } } diff --git a/src/main/java/dev/sorn/fmp4j/json/FmpJsonDeserializerImpl.java b/src/main/java/dev/sorn/fmp4j/json/FmpJsonDeserializerImpl.java deleted file mode 100644 index 52cc023b..00000000 --- a/src/main/java/dev/sorn/fmp4j/json/FmpJsonDeserializerImpl.java +++ /dev/null @@ -1,30 +0,0 @@ -package dev.sorn.fmp4j.json; - -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import java.io.IOException; - -public final class FmpJsonDeserializerImpl implements FmpJsonDeserializer { - public static final FmpJsonDeserializerImpl FMP_JSON_DESERIALIZER = new FmpJsonDeserializerImpl(); - private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper() - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS) - .registerModule(new JavaTimeModule()) - .registerModule(new FmpJsonModule()); - - private FmpJsonDeserializerImpl() { - // prevent direct instantiation - } - - public T fromJson(String json, TypeReference type) { - try { - return OBJECT_MAPPER.readValue(json, type); - } catch (IOException e) { - throw new FmpJsonException( - e, "Failed to deserialize JSON to '%s': %s", type.getType().getTypeName(), json); - } - } -} diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementBulkService.java b/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementBulkService.java new file mode 100644 index 00000000..4833bed8 --- /dev/null +++ b/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementBulkService.java @@ -0,0 +1,36 @@ +package dev.sorn.fmp4j.services; + +import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; + +import dev.sorn.fmp4j.cfg.FmpConfig; +import dev.sorn.fmp4j.http.FmpHttpClient; +import dev.sorn.fmp4j.models.FmpCashFlowStatement; +import dev.sorn.fmp4j.types.FmpPeriod; +import dev.sorn.fmp4j.types.FmpYear; +import java.util.Map; + +public class FmpCashFlowStatementBulkService extends FmpService { + public FmpCashFlowStatementBulkService(FmpConfig cfg, FmpHttpClient http) { + super(cfg, http, typeRef(FmpCashFlowStatement[].class)); + } + + @Override + protected String relativeUrl() { + return "/cash-flow-statement-bulk"; + } + + @Override + protected Map> requiredParams() { + return Map.of("year", FmpYear.class, "period", FmpPeriod.class); + } + + @Override + protected Map> optionalParams() { + return Map.of(); + } + + @Override + protected Map headers() { + return Map.of("Content-Type", "text/csv"); + } +} diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpService.java b/src/main/java/dev/sorn/fmp4j/services/FmpService.java index 387896f1..729ef2cf 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpService.java @@ -69,7 +69,7 @@ private void validateParamType(String key, Object value) { } } - protected final Map headers() { + protected Map headers() { return Map.of("Content-Type", "application/json"); } diff --git a/src/test/java/dev/sorn/fmp4j/FmpClientTest.java b/src/test/java/dev/sorn/fmp4j/FmpClientTest.java index f9295276..1e839141 100644 --- a/src/test/java/dev/sorn/fmp4j/FmpClientTest.java +++ b/src/test/java/dev/sorn/fmp4j/FmpClientTest.java @@ -12,6 +12,7 @@ import static dev.sorn.fmp4j.types.FmpPeriod.period; import static dev.sorn.fmp4j.types.FmpStructure.FLAT; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; +import static dev.sorn.fmp4j.types.FmpYear.year; import static java.lang.String.format; import static java.lang.String.join; import static java.lang.System.setProperty; @@ -29,6 +30,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import dev.sorn.fmp4j.cfg.FmpConfig; import dev.sorn.fmp4j.cfg.FmpConfigImpl; +import dev.sorn.fmp4j.csv.FmpCsvDeserializer; import dev.sorn.fmp4j.http.FmpHttpClient; import dev.sorn.fmp4j.models.FmpBalanceSheetStatement; import dev.sorn.fmp4j.models.FmpBalanceSheetStatementGrowth; @@ -78,6 +80,7 @@ import dev.sorn.fmp4j.models.FmpTreasuryRate; import dev.sorn.fmp4j.types.FmpApiKey; import dev.sorn.fmp4j.types.FmpSymbol; +import java.io.IOException; import java.net.URI; import java.time.LocalDate; import java.util.HashMap; @@ -686,6 +689,27 @@ void cashFlowStatements(String p) { assertValidResult(result, limit.value(), FmpCashFlowStatement.class); } + @ParameterizedTest + @ValueSource(strings = {"annual"}) + void cashFlowStatementsBulk(String p) { + // given + var period = period(p); + var year = year("2023"); + var typeRef = typeRef(FmpCashFlowStatement[].class); + var endpoint = "cash-flow-statement-bulk"; + var uri = buildUri(endpoint); + var headers = Map.of("Content-Type", "text/csv"); + var params = buildParams(Map.of("year", year, "period", period)); + var file = String.format("stable/%s/%%3Fyear=%s&period=%s.csv", endpoint, year, period); + + // when + mockHttpGetCsv(uri, headers, params, file, typeRef); + var result = fmpClient.bulk().cashFlowStatements(year, period); + + // then + assertValidResult(result, 1, FmpCashFlowStatement.class); + } + @Test void cashFlowStatementTtm() { // given @@ -1301,6 +1325,26 @@ private synchronized void mockHttpGet( when(fmpHttpClient.get(any(), eq(uri), eq(headers), eq(params))).thenReturn(jsonTestResource(typeRef, file)); } + private synchronized void mockHttpGetCsv( + URI uri, Map headers, Map params, String file, TypeReference typeRef) { + String csv = csvTestResource(file); + + T deserialized = FmpCsvDeserializer.FMP_CSV_DESERIALIZER.deserialize(csv, typeRef); + + when(fmpHttpClient.get(any(), eq(uri), eq(headers), eq(params))).thenReturn(deserialized); + } + + private String csvTestResource(String file) { + try (var is = getClass().getClassLoader().getResourceAsStream(file)) { + if (is == null) { + throw new IllegalArgumentException("CSV test file not found: " + file); + } + return new String(is.readAllBytes()); + } catch (IOException e) { + throw new RuntimeException("Failed to read CSV test file: " + file, e); + } + } + private void assertValidResult(T[] result, int expectedLength, Class expectedType) { assertValidResult(result, expectedLength, expectedType, emptySet()); } diff --git a/src/test/java/dev/sorn/fmp4j/TestUtils.java b/src/test/java/dev/sorn/fmp4j/TestUtils.java index 37b058ea..3ea1ca32 100644 --- a/src/test/java/dev/sorn/fmp4j/TestUtils.java +++ b/src/test/java/dev/sorn/fmp4j/TestUtils.java @@ -1,6 +1,6 @@ package dev.sorn.fmp4j; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.lang.String.format; import static java.util.Collections.emptySet; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -28,7 +28,7 @@ private TestUtils() { public static T jsonTestResource(TypeReference typeRef, String filename, Object... args) { final var json = jsonTestResource(filename, args); - return FMP_JSON_DESERIALIZER.fromJson(json, typeRef); + return FMP_JSON_DESERIALIZER.deserialize(json, typeRef); } public static String jsonTestResource(String filename, Object... args) { diff --git a/src/test/java/dev/sorn/fmp4j/http/FmpHttpClientTest.java b/src/test/java/dev/sorn/fmp4j/http/FmpHttpClientTest.java index bddee557..90021c2b 100644 --- a/src/test/java/dev/sorn/fmp4j/http/FmpHttpClientTest.java +++ b/src/test/java/dev/sorn/fmp4j/http/FmpHttpClientTest.java @@ -1,6 +1,6 @@ package dev.sorn.fmp4j.http; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; diff --git a/src/test/java/dev/sorn/fmp4j/json/FmpJsonDeserializerTest.java b/src/test/java/dev/sorn/fmp4j/json/FmpJsonDeserializerTest.java index 57b8905d..ada127c8 100644 --- a/src/test/java/dev/sorn/fmp4j/json/FmpJsonDeserializerTest.java +++ b/src/test/java/dev/sorn/fmp4j/json/FmpJsonDeserializerTest.java @@ -1,6 +1,6 @@ package dev.sorn.fmp4j.json; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -32,7 +32,7 @@ void deserialize_object() { """; // when - var obj = deserializer.fromJson(json, typeRef(TestObject.class)); + var obj = deserializer.deserialize(json, typeRef(TestObject.class)); // then assertEquals("key", obj.key()); @@ -61,7 +61,7 @@ void deserialize_array() { """; // when - var obj = deserializer.fromJson(json, typeRef(TestObject[].class)); + var obj = deserializer.deserialize(json, typeRef(TestObject[].class)); // then assertEquals(2, obj.length); @@ -78,7 +78,8 @@ void deserialize_object_failsOnMalformedJson() { // when // then var e = assertThrows( - FmpJsonException.class, () -> FMP_JSON_DESERIALIZER.fromJson(malformedJson, typeRef(TestObject.class))); + FmpJsonException.class, + () -> FMP_JSON_DESERIALIZER.deserialize(malformedJson, typeRef(TestObject.class))); assertEquals("Failed to deserialize JSON to 'dev.sorn.fmp4j.TestObject': {", e.getMessage()); } @@ -90,7 +91,7 @@ void deserialize_array_failsOnMalformedJson() { // when // then var e = assertThrows( FmpJsonException.class, - () -> FMP_JSON_DESERIALIZER.fromJson(malformedJson, typeRef(TestObject[].class))); + () -> FMP_JSON_DESERIALIZER.deserialize(malformedJson, typeRef(TestObject[].class))); assertEquals("Failed to deserialize JSON to 'dev.sorn.fmp4j.TestObject[]': [", e.getMessage()); } @@ -108,7 +109,7 @@ void deserialize_object_failsOnTypeMismatch() { // when // then var e = assertThrows( FmpJsonException.class, - () -> FMP_JSON_DESERIALIZER.fromJson(mismatchedJson, typeRef(TestObject.class))); + () -> FMP_JSON_DESERIALIZER.deserialize(mismatchedJson, typeRef(TestObject.class))); assertEquals( """ Failed to deserialize JSON to 'dev.sorn.fmp4j.TestObject': { @@ -133,7 +134,7 @@ void deserialize_array_failsOnElementTypeMismatch() { // when // then var e = assertThrows( FmpJsonException.class, - () -> FMP_JSON_DESERIALIZER.fromJson(invalidElementJson, typeRef(TestObject[].class))); + () -> FMP_JSON_DESERIALIZER.deserialize(invalidElementJson, typeRef(TestObject[].class))); assertEquals( """ Failed to deserialize JSON to 'dev.sorn.fmp4j.TestObject[]': [ diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthServiceTest.java index 962b8fb6..fe8407a0 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementServiceTest.java index e98b05cf..9e938d67 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementServiceTest.java @@ -3,8 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; -import static dev.sorn.fmp4j.types.FmpLimit.limit; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmServiceTest.java index d431f187..f2ae558e 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthServiceTest.java index 31b54863..ed47ec70 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementServiceTest.java index cb61e884..6a344b5d 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmServiceTest.java index 14b5b487..56734f46 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpCompanyServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpCompanyServiceTest.java index aee67ecc..12ca835c 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpCompanyServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpCompanyServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpDividendServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpDividendServiceTest.java index 694a4f72..d36a33c0 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpDividendServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpDividendServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpDividendsCalendarServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpDividendsCalendarServiceTest.java index c1933a48..b4bdb56a 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpDividendsCalendarServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpDividendsCalendarServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEarningServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEarningServiceTest.java index 4164ef79..90550c32 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEarningServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEarningServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCalendarServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCalendarServiceTest.java index 20048996..9c771240 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCalendarServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCalendarServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesServiceTest.java index 213284e9..49484f7b 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.Collections.emptySet; import static java.util.stream.IntStream.range; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureServiceTest.java index 075aae8f..175ae260 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingServiceTest.java index 6e262a69..84863729 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfHoldingServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfHoldingServiceTest.java index ad7e94d7..86a6a694 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfHoldingServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfHoldingServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfInfoServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfInfoServiceTest.java index 95001646..27d1590b 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfInfoServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfInfoServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfListServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfListServiceTest.java index dbad6c4e..a0106eb6 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfListServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfListServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingServiceTest.java index e0180dc0..cad672ae 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpFinancialGrowthServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpFinancialGrowthServiceTest.java index bca50a85..cfb9f0cf 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpFinancialGrowthServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpFinancialGrowthServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedServiceTest.java index e90456df..2190fbd3 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpFullQuoteServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpFullQuoteServiceTest.java index 67fb75a7..3a846dae 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpFullQuoteServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpFullQuoteServiceTest.java @@ -2,7 +2,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.lang.String.format; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalChartServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalChartServiceTest.java index e950f798..2fabfc40 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalChartServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalChartServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpInterval.interval; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.Collections.emptySet; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullServiceTest.java index f5093d07..36cebf3c 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.Collections.emptySet; import static java.util.stream.IntStream.range; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightServiceTest.java index f2a9ab81..358ea4fd 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.Collections.emptySet; import static java.util.stream.IntStream.range; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthServiceTest.java index 7b183215..47353800 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementServiceTest.java index bc74f2e8..155126ef 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpLimit.limit; import static dev.sorn.fmp4j.types.FmpPeriod.period; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmServiceTest.java index 7c2e006e..99e5faf9 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIposCalendarServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIposCalendarServiceTest.java index 3c19b088..7c1244b6 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIposCalendarServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIposCalendarServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIposDisclosureServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIposDisclosureServiceTest.java index cb78f006..b01aa2a7 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIposDisclosureServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIposDisclosureServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIposProspectusServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIposProspectusServiceTest.java index f83bd0b6..d0ba6a78 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIposProspectusServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIposProspectusServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricServiceTest.java index 4e5dbde6..ab92b95c 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmServiceTest.java index 6c11589d..b402d7de 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmServiceTest.java @@ -2,7 +2,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpLatestEarningsCallTranscriptServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpLatestEarningsCallTranscriptServiceTest.java index f34b3900..c58e9ab8 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpLatestEarningsCallTranscriptServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpLatestEarningsCallTranscriptServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpLimit.limit; import static dev.sorn.fmp4j.types.FmpPage.page; import static java.lang.String.format; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpNewsServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpNewsServiceTest.java index 93e86b44..8b81aaab 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpNewsServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpNewsServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpPartialQuoteServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpPartialQuoteServiceTest.java index 48a8eb63..8d50418f 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpPartialQuoteServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpPartialQuoteServiceTest.java @@ -2,7 +2,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.lang.String.format; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpRatioServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpRatioServiceTest.java index ee0ad289..b4d6bff6 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpRatioServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpRatioServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpRatioTtmServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpRatioTtmServiceTest.java index c51cf32e..dd47f03c 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpRatioTtmServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpRatioTtmServiceTest.java @@ -2,7 +2,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationServiceTest.java index d52e4e2e..e08018ca 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationServiceTest.java index ee8e5e50..bff81c28 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCusipServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCusipServiceTest.java index df74ad31..01b57f2c 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCusipServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCusipServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpCusip.cusip; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByIsinServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByIsinServiceTest.java index ba314ddc..4ffddad5 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByIsinServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByIsinServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpIsin.isin; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByNameServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByNameServiceTest.java index 87c1b87b..aacfc1a0 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByNameServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByNameServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchBySymbolServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchBySymbolServiceTest.java index 6271157b..3ceacf12 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchBySymbolServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchBySymbolServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchBycikServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchBycikServiceTest.java index 5529e3d6..b307be04 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchBycikServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchBycikServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesServiceTest.java index 394974aa..e0b00d4a 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolServiceTest.java index f61d1672..89632bdd 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpLimit.limit; import static dev.sorn.fmp4j.types.FmpPage.page; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSplitServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSplitServiceTest.java index ca438cf6..b1624c6e 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSplitServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSplitServiceTest.java @@ -2,7 +2,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSplitsCalendarServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSplitsCalendarServiceTest.java index 5aac7b44..6a9e6c49 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSplitsCalendarServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSplitsCalendarServiceTest.java @@ -2,7 +2,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpStockListServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpStockListServiceTest.java index 82a238a8..4ed817ae 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpStockListServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpStockListServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpStockPriceChangeServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpStockPriceChangeServiceTest.java index e9549f9d..53112290 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpStockPriceChangeServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpStockPriceChangeServiceTest.java @@ -2,7 +2,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpTreasuryRatesServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpTreasuryRatesServiceTest.java index a8568009..454c1b6e 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpTreasuryRatesServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpTreasuryRatesServiceTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.HttpClientStub.httpClientStub; import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; diff --git a/src/test/java/dev/sorn/fmp4j/types/FmpSymbolTest.java b/src/test/java/dev/sorn/fmp4j/types/FmpSymbolTest.java index 767f8b68..74068b8b 100644 --- a/src/test/java/dev/sorn/fmp4j/types/FmpSymbolTest.java +++ b/src/test/java/dev/sorn/fmp4j/types/FmpSymbolTest.java @@ -3,7 +3,7 @@ import static dev.sorn.fmp4j.TestUtils.deserialize; import static dev.sorn.fmp4j.TestUtils.jsonTestResource; import static dev.sorn.fmp4j.TestUtils.serialize; -import static dev.sorn.fmp4j.json.FmpJsonDeserializerImpl.FMP_JSON_DESERIALIZER; +import static dev.sorn.fmp4j.json.FmpJsonDeserializer.FMP_JSON_DESERIALIZER; import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.types.FmpSymbol.FMP_SYMBOL_PATTERN; import static dev.sorn.fmp4j.types.FmpSymbol.symbol; @@ -225,7 +225,7 @@ void check_all_symbols() { // given var res = jsonTestResource("stable/financial-statement-symbol-list/full.json"); - var symbols = FMP_JSON_DESERIALIZER.fromJson(res, typeRef(String[].class)); + var symbols = FMP_JSON_DESERIALIZER.deserialize(res, typeRef(String[].class)); var failedSymbols = new ArrayList(); stream(symbols).forEach(symbol -> { diff --git a/src/testFixtures/resources/stable/cash-flow-statement-bulk/%3Fyear=2023&period=annual.csv b/src/testFixtures/resources/stable/cash-flow-statement-bulk/%3Fyear=2023&period=annual.csv new file mode 100644 index 00000000..0b6a28f0 --- /dev/null +++ b/src/testFixtures/resources/stable/cash-flow-statement-bulk/%3Fyear=2023&period=annual.csv @@ -0,0 +1,2 @@ +date,symbol,reportedCurrency,cik,filingDate,acceptedDate,fiscalYear,period,netIncome,depreciationAndAmortization,deferredIncomeTax,stockBasedCompensation,changeInWorkingCapital,accountsReceivables,inventory,accountsPayables,otherWorkingCapital,otherNonCashItems,netCashProvidedByOperatingActivities,investmentsInPropertyPlantAndEquipment,acquisitionsNet,purchasesOfInvestments,salesMaturitiesOfInvestments,otherInvestingActivities,netCashProvidedByInvestingActivities,netDebtIssuance,longTermNetDebtIssuance,shortTermNetDebtIssuance,netStockIssuance,netCommonStockIssuance,commonStockIssuance,commonStockRepurchased,netPreferredStockIssuance,netDividendsPaid,commonDividendsPaid,preferredDividendsPaid,otherFinancingActivities,netCashProvidedByFinancingActivities,effectOfForexChangesOnCash,netChangeInCash,cashAtEndOfPeriod,cashAtBeginningOfPeriod,operatingCashFlow,capitalExpenditure,freeCashFlow,incomeTaxesPaid,interestPaid +"2025-03-31","000001.SZ","CNY","0000000000","2025-03-31","2025-03-31 00:00:00","2025","Q1","0","0","0","0","0","0","0","0","0","162946000000","162946000000","-338000000","0","-227916000000","253172000000","25000000","24943000000","0","0","0","0","0","0","0","0","-2538000000","-2538000000","0","-155860000000","-158398000000","-130000000","29361000000","286307000000","256946000000","162946000000","-338000000","162608000000","0","0" \ No newline at end of file