diff --git a/build.gradle b/build.gradle index d83388d..d03721f 100644 --- a/build.gradle +++ b/build.gradle @@ -41,6 +41,7 @@ dependencies { implementation("org.apache.commons:commons-lang3:${apacheCommonsVersion}") implementation("com.diffplug.spotless:spotless-plugin-gradle:${spotlessVersion}") + testImplementation("org.assertj:assertj-core:${assertJVersion}") testImplementation("org.mockito:mockito-core:${mockitoCoreVersion}") testImplementation("org.mockito:mockito-junit-jupiter:${mockitoJunitVersion}") testImplementation(platform("org.junit:junit-bom:${junitVersion}")) diff --git a/gradle.properties b/gradle.properties index a0a9b29..17c58ba 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,5 @@ projectVersion=0.3.0 +assertJVersion=3.27.4 junitVersion=5.10.0 mockitoJunitVersion=2.17.0 mockitoCoreVersion=5.18.0 diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpBulkClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpBulkClient.java index f1f55ab..ccde7d6 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpBulkClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpBulkClient.java @@ -17,14 +17,15 @@ import dev.sorn.fmp4j.types.FmpPart; import dev.sorn.fmp4j.types.FmpPeriod; import dev.sorn.fmp4j.types.FmpYear; +import java.util.List; public class FmpBulkClient { // Alphabetical order - protected final FmpService fmpBulkCompaniesService; - protected final FmpService fmpBulkBalanceSheetService; - protected final FmpService fmpBulkCashFlowService; - protected final FmpService fmpBulkCashFlowStatementGrowthService; + protected final FmpService fmpBulkCompaniesService; + protected final FmpService fmpBulkBalanceSheetService; + protected final FmpService fmpBulkCashFlowService; + protected final FmpService fmpBulkCashFlowStatementGrowthService; public FmpBulkClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpBulkCompaniesService = new FmpBulkCompaniesService(fmpConfig, fmpHttpClient); @@ -34,24 +35,24 @@ public FmpBulkClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { new FmpBulkCashFlowStatementGrowthService(fmpConfig, fmpHttpClient); } - public synchronized FmpCompanies[] companies(FmpPart part) { + public synchronized List companies(FmpPart part) { fmpBulkCompaniesService.param("part", part); return fmpBulkCompaniesService.download(); } - public synchronized FmpBalanceSheetStatement[] balanceSheetStatements(FmpYear year, FmpPeriod period) { + public synchronized List balanceSheetStatements(FmpYear year, FmpPeriod period) { fmpBulkBalanceSheetService.param(PARAM_YEAR, year); fmpBulkBalanceSheetService.param(PARAM_PERIOD, period); return fmpBulkBalanceSheetService.download(); } - public synchronized FmpCashFlowStatement[] cashFlowStatements(FmpYear year, FmpPeriod period) { + public synchronized List cashFlowStatements(FmpYear year, FmpPeriod period) { fmpBulkCashFlowService.param(PARAM_YEAR, year); fmpBulkCashFlowService.param(PARAM_PERIOD, period); return fmpBulkCashFlowService.download(); } - public synchronized FmpCashFlowStatementGrowth[] cashFlowStatementGrowth(FmpYear year, FmpPeriod period) { + public synchronized List cashFlowStatementGrowth(FmpYear year, FmpPeriod period) { fmpBulkCashFlowStatementGrowthService.param(PARAM_YEAR, year); fmpBulkCashFlowStatementGrowthService.param(PARAM_PERIOD, period); return fmpBulkCashFlowStatementGrowthService.download(); diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpCalendarClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpCalendarClient.java index a2ad9ef..2c4bb9b 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpCalendarClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpCalendarClient.java @@ -27,20 +27,21 @@ import dev.sorn.fmp4j.services.FmpSplitsCalendarService; import dev.sorn.fmp4j.types.FmpSymbol; import java.time.LocalDate; +import java.util.List; import java.util.Optional; public class FmpCalendarClient { // Alphabetical order - protected final FmpService fmpDividendService; - protected final FmpService fmpDividendsCalendarService; - protected final FmpService fmpEarningsService; - protected final FmpService fmpEarningsCalendarService; - protected final FmpService fmpIposCalendarService; - protected final FmpService fmpIposDisclosureService; - protected final FmpService fmpIposProspectusService; - protected final FmpService fmpSplitService; - protected final FmpService fmpSplitsCalendarService; + protected final FmpService fmpDividendService; + protected final FmpService fmpDividendsCalendarService; + protected final FmpService fmpEarningsService; + protected final FmpService fmpEarningsCalendarService; + protected final FmpService fmpIposCalendarService; + protected final FmpService fmpIposDisclosureService; + protected final FmpService fmpIposProspectusService; + protected final FmpService fmpSplitService; + protected final FmpService fmpSplitsCalendarService; public FmpCalendarClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpDividendService = new FmpDividendService(fmpConfig, fmpHttpClient); @@ -54,47 +55,47 @@ public FmpCalendarClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpSplitsCalendarService = new FmpSplitsCalendarService(fmpConfig, fmpHttpClient); } - public synchronized FmpDividendsCalendar[] dividends() { + public synchronized List dividends() { return fmpDividendsCalendarService.download(); } - public synchronized FmpDividend[] dividends(FmpSymbol symbol) { + public synchronized List dividends(FmpSymbol symbol) { fmpDividendService.param(PARAM_SYMBOL, symbol); return fmpDividendService.download(); } - public synchronized FmpEarningsCalendar[] earnings() { + public synchronized List earnings() { return fmpEarningsCalendarService.download(); } - public synchronized FmpEarning[] earnings(FmpSymbol symbol) { + public synchronized List earnings(FmpSymbol symbol) { fmpEarningsService.param(PARAM_SYMBOL, symbol); return fmpEarningsService.download(); } - public synchronized FmpIposCalendar[] ipos(Optional from, Optional to) { + public synchronized List ipos(Optional from, Optional to) { fmpIposCalendarService.param(PARAM_FROM, from); fmpIposCalendarService.param(PARAM_TO, to); return fmpIposCalendarService.download(); } - public synchronized FmpIposDisclosure[] disclosures(Optional from, Optional to) { + public synchronized List disclosures(Optional from, Optional to) { fmpIposDisclosureService.param(PARAM_FROM, from); fmpIposDisclosureService.param(PARAM_TO, to); return fmpIposDisclosureService.download(); } - public synchronized FmpIposProspectus[] prospectus(Optional from, Optional to) { + public synchronized List prospectus(Optional from, Optional to) { fmpIposProspectusService.param(PARAM_FROM, from); fmpIposProspectusService.param(PARAM_TO, to); return fmpIposProspectusService.download(); } - public synchronized FmpSplitsCalendar[] splits() { + public synchronized List splits() { return fmpSplitsCalendarService.download(); } - public synchronized FmpSplit[] splits(FmpSymbol symbol) { + public synchronized List splits(FmpSymbol symbol) { fmpSplitService.param(PARAM_SYMBOL, symbol); return fmpSplitService.download(); } diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpChartClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpChartClient.java index c9d5493..ad98eff 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpChartClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpChartClient.java @@ -22,18 +22,19 @@ import dev.sorn.fmp4j.types.FmpInterval; import dev.sorn.fmp4j.types.FmpSymbol; import java.time.LocalDate; +import java.util.List; import java.util.Optional; public class FmpChartClient { - protected final FmpService fmpHistoricalPriceEodLightService; - protected final FmpService fmpHistoricalPriceEodFullService; - protected final FmpService fmpHistoricalChartService1MinService; - protected final FmpService fmpHistoricalChartService5MinService; - protected final FmpService fmpHistoricalChartService15MinService; - protected final FmpService fmpHistoricalChartService30MinService; - protected final FmpService fmpHistoricalChartService1HourService; - protected final FmpService fmpHistoricalChartService4HourService; + protected final FmpService fmpHistoricalPriceEodLightService; + protected final FmpService fmpHistoricalPriceEodFullService; + protected final FmpService fmpHistoricalChartService1MinService; + protected final FmpService fmpHistoricalChartService5MinService; + protected final FmpService fmpHistoricalChartService15MinService; + protected final FmpService fmpHistoricalChartService30MinService; + protected final FmpService fmpHistoricalChartService1HourService; + protected final FmpService fmpHistoricalChartService4HourService; public FmpChartClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpHistoricalPriceEodLightService = new FmpHistoricalPriceEodLightService(fmpConfig, fmpHttpClient); @@ -49,7 +50,7 @@ public FmpChartClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpHistoricalChartService4HourService = new FmpHistoricalChartService(fmpConfig, fmpHttpClient, FOUR_HOUR); } - public synchronized FmpHistoricalPriceEodLight[] historicalPriceEodLight( + public synchronized List historicalPriceEodLight( FmpSymbol symbol, Optional from, Optional to) { fmpHistoricalPriceEodLightService.param(PARAM_SYMBOL, symbol); from.ifPresent(date -> fmpHistoricalPriceEodLightService.param(PARAM_FROM, date)); @@ -57,7 +58,7 @@ public synchronized FmpHistoricalPriceEodLight[] historicalPriceEodLight( return fmpHistoricalPriceEodLightService.download(); } - public synchronized FmpHistoricalPriceEodFull[] historicalPriceEodFull( + public synchronized List historicalPriceEodFull( FmpSymbol symbol, Optional from, Optional to) { fmpHistoricalPriceEodFullService.param(PARAM_SYMBOL, symbol); from.ifPresent(date -> fmpHistoricalPriceEodFullService.param(PARAM_FROM, date)); @@ -65,7 +66,7 @@ public synchronized FmpHistoricalPriceEodFull[] historicalPriceEodFull( return fmpHistoricalPriceEodFullService.download(); } - public synchronized FmpHistoricalChart[] historical( + public synchronized List historical( FmpSymbol symbol, FmpInterval interval, Optional from, Optional to) { return switch (interval) { case ONE_MINUTE -> { diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpCompanyClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpCompanyClient.java index 3646d2c..67ef532 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpCompanyClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpCompanyClient.java @@ -8,17 +8,18 @@ import dev.sorn.fmp4j.services.FmpCompanyService; import dev.sorn.fmp4j.services.FmpService; import dev.sorn.fmp4j.types.FmpSymbol; +import java.util.List; public class FmpCompanyClient { // Alphabetical order - protected final FmpService fmpCompanyService; + protected final FmpService fmpCompanyService; public FmpCompanyClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpCompanyService = new FmpCompanyService(fmpConfig, fmpHttpClient); } - public synchronized FmpCompany[] bySymbol(FmpSymbol symbol) { + public synchronized List bySymbol(FmpSymbol symbol) { fmpCompanyService.param(PARAM_SYMBOL, symbol); return fmpCompanyService.download(); } diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpDirectoryClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpDirectoryClient.java index 186f9b8..08639c3 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpDirectoryClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpDirectoryClient.java @@ -7,23 +7,24 @@ import dev.sorn.fmp4j.services.FmpEtfListService; import dev.sorn.fmp4j.services.FmpService; import dev.sorn.fmp4j.services.FmpStockListService; +import java.util.List; public class FmpDirectoryClient { // Alphabetical order - protected final FmpService fmpEtfListService; - protected final FmpService fmpStockListService; + protected final FmpService fmpEtfListService; + protected final FmpService fmpStockListService; public FmpDirectoryClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpEtfListService = new FmpEtfListService(fmpConfig, fmpHttpClient); this.fmpStockListService = new FmpStockListService(fmpConfig, fmpHttpClient); } - public synchronized FmpEtf[] etfs() { + public synchronized List etfs() { return fmpEtfListService.download(); } - public synchronized FmpStock[] stocks() { + public synchronized List stocks() { return fmpStockListService.download(); } } diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpEarningsClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpEarningsClient.java index 66cfa66..c15d27f 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpEarningsClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpEarningsClient.java @@ -24,15 +24,16 @@ import dev.sorn.fmp4j.types.FmpQuarter; import dev.sorn.fmp4j.types.FmpSymbol; import dev.sorn.fmp4j.types.FmpYear; +import java.util.List; import java.util.Optional; public class FmpEarningsClient { // Alphabetical order - protected final FmpService fmpEarningsCallTranscriptService; - protected final FmpService fmpEarningsCallTranscriptDatesService; - protected final FmpService fmpEarningsCallTranscriptLatestService; - protected final FmpService fmpEarningsCallTranscriptListService; + protected final FmpService fmpEarningsCallTranscriptService; + protected final FmpService fmpEarningsCallTranscriptDatesService; + protected final FmpService fmpEarningsCallTranscriptLatestService; + protected final FmpService fmpEarningsCallTranscriptListService; public FmpEarningsClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpEarningsCallTranscriptService = new FmpEarningsCallTranscriptService(fmpConfig, fmpHttpClient); @@ -43,7 +44,7 @@ public FmpEarningsClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpEarningsCallTranscriptListService = new FmpEarningsCallTranscriptListService(fmpConfig, fmpHttpClient); } - public synchronized FmpEarningsCallTranscript[] transcripts( + public synchronized List transcripts( FmpSymbol symbol, FmpYear year, FmpQuarter quarter, Optional limit) { fmpEarningsCallTranscriptService.param(PARAM_SYMBOL, symbol); fmpEarningsCallTranscriptService.param(PARAM_YEAR, year); @@ -52,18 +53,18 @@ public synchronized FmpEarningsCallTranscript[] transcripts( return fmpEarningsCallTranscriptService.download(); } - public synchronized FmpEarningsCallTranscriptDate[] dates(FmpSymbol symbol) { + public synchronized List dates(FmpSymbol symbol) { fmpEarningsCallTranscriptDatesService.param(PARAM_SYMBOL, symbol); return fmpEarningsCallTranscriptDatesService.download(); } - public synchronized FmpEarningsCallTranscriptLatest[] latest(Optional limit, Optional page) { + public synchronized List latest(Optional limit, Optional page) { fmpEarningsCallTranscriptLatestService.param(PARAM_LIMIT, limit.orElse(limit(100))); fmpEarningsCallTranscriptLatestService.param(PARAM_PAGE, page.orElse(page(0))); return fmpEarningsCallTranscriptLatestService.download(); } - public synchronized FmpEarningsCallTranscriptList[] list() { + public synchronized List list() { return fmpEarningsCallTranscriptListService.download(); } } diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpEconomicsClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpEconomicsClient.java index 8125bba..5c963bf 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpEconomicsClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpEconomicsClient.java @@ -9,15 +9,16 @@ import dev.sorn.fmp4j.services.FmpService; import dev.sorn.fmp4j.services.FmpTreasuryRatesService; import java.time.LocalDate; +import java.util.List; public class FmpEconomicsClient { - protected final FmpService fmpTreasuryRatesService; + protected final FmpService fmpTreasuryRatesService; public FmpEconomicsClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpTreasuryRatesService = new FmpTreasuryRatesService(fmpConfig, fmpHttpClient); } - public synchronized FmpTreasuryRate[] treasuryRates(LocalDate from, LocalDate to) { + public synchronized List treasuryRates(LocalDate from, LocalDate to) { fmpTreasuryRatesService.param(PARAM_FROM, from); fmpTreasuryRatesService.param(PARAM_TO, to); return fmpTreasuryRatesService.download(); diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpEtfClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpEtfClient.java index 84c05cb..00433d8 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpEtfClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpEtfClient.java @@ -16,14 +16,15 @@ import dev.sorn.fmp4j.services.FmpEtfSectorWeightingService; import dev.sorn.fmp4j.services.FmpService; import dev.sorn.fmp4j.types.FmpSymbol; +import java.util.List; public class FmpEtfClient { // Alphabetical order - protected final FmpService etfAssetExposureService; - protected final FmpService etfCountryWeightingService; - protected final FmpService etfHoldingService; - protected final FmpService etfInfoService; - protected final FmpService etfSectorWeightingService; + protected final FmpService etfAssetExposureService; + protected final FmpService etfCountryWeightingService; + protected final FmpService etfHoldingService; + protected final FmpService etfInfoService; + protected final FmpService etfSectorWeightingService; public FmpEtfClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.etfAssetExposureService = new FmpEtfAssetExposureService(fmpConfig, fmpHttpClient); @@ -33,27 +34,27 @@ public FmpEtfClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.etfSectorWeightingService = new FmpEtfSectorWeightingService(fmpConfig, fmpHttpClient); } - public synchronized FmpEtfAssetExposure[] assetExposure(FmpSymbol symbol) { + public synchronized List assetExposure(FmpSymbol symbol) { etfAssetExposureService.param(PARAM_SYMBOL, symbol); return etfAssetExposureService.download(); } - public synchronized FmpEtfCountryWeighting[] countryWeightings(FmpSymbol symbol) { + public synchronized List countryWeightings(FmpSymbol symbol) { etfCountryWeightingService.param(PARAM_SYMBOL, symbol); return etfCountryWeightingService.download(); } - public synchronized FmpEtfHolding[] holdings(FmpSymbol symbol) { + public synchronized List holdings(FmpSymbol symbol) { etfHoldingService.param(PARAM_SYMBOL, symbol); return etfHoldingService.download(); } - public synchronized FmpEtfInfo[] info(FmpSymbol symbol) { + public synchronized List info(FmpSymbol symbol) { etfInfoService.param(PARAM_SYMBOL, symbol); return etfInfoService.download(); } - public synchronized FmpEtfSectorWeighting[] sectorWeightings(FmpSymbol symbol) { + public synchronized List sectorWeightings(FmpSymbol symbol) { etfSectorWeightingService.param(PARAM_SYMBOL, symbol); return etfSectorWeightingService.download(); } diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpNewsClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpNewsClient.java index f3d7dc9..1ef5db7 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpNewsClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpNewsClient.java @@ -18,15 +18,16 @@ import dev.sorn.fmp4j.types.FmpPage; import dev.sorn.fmp4j.types.FmpSymbol; import java.time.LocalDate; +import java.util.List; import java.util.Optional; import java.util.Set; public class FmpNewsClient { // Alphabetical order - protected FmpService fmpCryptoNewsService; - protected FmpService fmpForexNewsService; - protected FmpService fmpStockNewsService; + protected FmpService fmpCryptoNewsService; + protected FmpService fmpForexNewsService; + protected FmpService fmpStockNewsService; public FmpNewsClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpCryptoNewsService = new FmpNewsService(fmpConfig, fmpHttpClient, "crypto"); @@ -34,19 +35,19 @@ public FmpNewsClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpStockNewsService = new FmpNewsService(fmpConfig, fmpHttpClient, "stock"); } - public synchronized FmpNews[] crypto(Set symbols) { + public synchronized List crypto(Set symbols) { return crypto(symbols, empty(), empty(), empty(), empty()); } - public synchronized FmpNews[] forex(Set symbols) { + public synchronized List forex(Set symbols) { return forex(symbols, empty(), empty(), empty(), empty()); } - public synchronized FmpNews[] stock(Set symbols) { + public synchronized List stock(Set symbols) { return stock(symbols, empty(), empty(), empty(), empty()); } - public synchronized FmpNews[] crypto( + public synchronized List crypto( Set symbols, Optional from, Optional to, @@ -55,7 +56,7 @@ public synchronized FmpNews[] crypto( return news(fmpCryptoNewsService, symbols, from, to, page, limit); } - public synchronized FmpNews[] forex( + public synchronized List forex( Set symbols, Optional from, Optional to, @@ -64,7 +65,7 @@ public synchronized FmpNews[] forex( return news(fmpForexNewsService, symbols, from, to, page, limit); } - public synchronized FmpNews[] stock( + public synchronized List stock( Set symbols, Optional from, Optional to, @@ -73,8 +74,8 @@ public synchronized FmpNews[] stock( return news(fmpStockNewsService, symbols, from, to, page, limit); } - protected synchronized FmpNews[] news( - FmpService service, + protected synchronized List news( + FmpService service, Set symbols, Optional from, Optional to, diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpQuoteClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpQuoteClient.java index 5bcc94c..350ec34 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpQuoteClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpQuoteClient.java @@ -12,11 +12,12 @@ import dev.sorn.fmp4j.services.FmpService; import dev.sorn.fmp4j.services.FmpStockPriceChangeService; import dev.sorn.fmp4j.types.FmpSymbol; +import java.util.List; public class FmpQuoteClient { - protected final FmpService quoteService; - protected final FmpService shortQuoteService; - protected final FmpService stockPriceChangeService; + protected final FmpService quoteService; + protected final FmpService shortQuoteService; + protected final FmpService stockPriceChangeService; public FmpQuoteClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.quoteService = new FmpQuoteService(fmpConfig, fmpHttpClient); @@ -24,17 +25,17 @@ public FmpQuoteClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.stockPriceChangeService = new FmpStockPriceChangeService(fmpConfig, fmpHttpClient); } - public synchronized FmpFullQuote[] full(FmpSymbol symbol) { + public synchronized List full(FmpSymbol symbol) { quoteService.param(PARAM_SYMBOL, symbol); return quoteService.download(); } - public synchronized FmpPartialQuote[] partial(FmpSymbol symbol) { + public synchronized List partial(FmpSymbol symbol) { shortQuoteService.param(PARAM_SYMBOL, symbol); return shortQuoteService.download(); } - public synchronized FmpStockPriceChange[] priceChange(FmpSymbol symbol) { + public synchronized List priceChange(FmpSymbol symbol) { stockPriceChangeService.param(PARAM_SYMBOL, symbol); return stockPriceChangeService.download(); } diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpSearchClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpSearchClient.java index cb2bcc5..75295ef 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpSearchClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpSearchClient.java @@ -21,16 +21,17 @@ import dev.sorn.fmp4j.types.FmpCusip; import dev.sorn.fmp4j.types.FmpIsin; import dev.sorn.fmp4j.types.FmpSymbol; +import java.util.List; public class FmpSearchClient { // Alphabetical order - protected final FmpService fmpSearchByCikService; - protected final FmpService fmpSearchByCusipService; - protected final FmpService fmpSearchByIsinService; - protected final FmpService fmpSearchByNameService; - protected final FmpService fmpSearchBySymbolService; - protected final FmpService fmpSearchPressReleasesService; + protected final FmpService fmpSearchByCikService; + protected final FmpService fmpSearchByCusipService; + protected final FmpService fmpSearchByIsinService; + protected final FmpService fmpSearchByNameService; + protected final FmpService fmpSearchBySymbolService; + protected final FmpService fmpSearchPressReleasesService; public FmpSearchClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpSearchByCikService = new FmpSearchByCikService(fmpConfig, fmpHttpClient); @@ -41,32 +42,32 @@ public FmpSearchClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpSearchPressReleasesService = new FmpSearchPressReleasesService(fmpConfig, fmpHttpClient); } - public synchronized FmpSearchByCik[] byCik(FmpCik cik) { + public synchronized List byCik(FmpCik cik) { fmpSearchByCikService.param("cik", cik); return fmpSearchByCikService.download(); } - public synchronized FmpSearchByCusip[] byCusip(FmpCusip cusip) { + public synchronized List byCusip(FmpCusip cusip) { fmpSearchByCusipService.param("cusip", cusip); return fmpSearchByCusipService.download(); } - public synchronized FmpSearchByIsin[] byIsin(FmpIsin isin) { + public synchronized List byIsin(FmpIsin isin) { fmpSearchByIsinService.param("isin", isin); return fmpSearchByIsinService.download(); } - public synchronized FmpSearchByName[] byName(String query) { + public synchronized List byName(String query) { fmpSearchByNameService.param("query", query); return fmpSearchByNameService.download(); } - public synchronized FmpSearchBySymbol[] bySymbol(FmpSymbol query) { + public synchronized List bySymbol(FmpSymbol query) { fmpSearchBySymbolService.param("query", query); return fmpSearchBySymbolService.download(); } - public synchronized FmpSearchPressRelease[] pressReleases(FmpSymbol symbol) { + public synchronized List pressReleases(FmpSymbol symbol) { fmpSearchPressReleasesService.param(PARAM_SYMBOLS, symbol); return fmpSearchPressReleasesService.download(); } diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpSecFilingsSearchClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpSecFilingsSearchClient.java index a75273b..fa19296 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpSecFilingsSearchClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpSecFilingsSearchClient.java @@ -17,18 +17,19 @@ import dev.sorn.fmp4j.types.FmpPage; import dev.sorn.fmp4j.types.FmpSymbol; import java.time.LocalDate; +import java.util.List; import java.util.Optional; public class FmpSecFilingsSearchClient { protected static final FmpPage DEFAULT_PAGE = page(0); protected static final FmpLimit DEFAULT_LIMIT = limit(100); - protected final FmpService fmpSecFilingsSearchBySymbol; + protected final FmpService fmpSecFilingsSearchBySymbol; public FmpSecFilingsSearchClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.fmpSecFilingsSearchBySymbol = new FmpSecFilingsSearchBySymbolService(fmpConfig, fmpHttpClient); } - public synchronized FmpSecFilingsSearchBySymbol[] bySymbol( + public synchronized List bySymbol( FmpSymbol symbol, LocalDate from, LocalDate to, Optional page, Optional limit) { fmpSecFilingsSearchBySymbol.param(PARAM_SYMBOL, symbol); fmpSecFilingsSearchBySymbol.param(PARAM_FROM, from); diff --git a/src/main/java/dev/sorn/fmp4j/clients/FmpStatementClient.java b/src/main/java/dev/sorn/fmp4j/clients/FmpStatementClient.java index d1008cf..58ef1d0 100644 --- a/src/main/java/dev/sorn/fmp4j/clients/FmpStatementClient.java +++ b/src/main/java/dev/sorn/fmp4j/clients/FmpStatementClient.java @@ -48,31 +48,32 @@ import dev.sorn.fmp4j.types.FmpPeriod; import dev.sorn.fmp4j.types.FmpStructure; import dev.sorn.fmp4j.types.FmpSymbol; +import java.util.List; import java.util.Optional; public class FmpStatementClient { protected static final FmpLimit DEFAULT_LIMIT = limit(5); - protected final FmpService incomeStatementService; - protected final FmpService balanceSheetStatementService; - protected final FmpService cashFlowStatementService; - protected final FmpService incomeStatementAsReportedService; - protected final FmpService balanceSheetStatementAsReportedService; - protected final FmpService cashFlowStatementAsReportedService; - protected final FmpService incomeStatementGrowthService; - protected final FmpService balanceSheetStatementGrowthService; - protected final FmpService cashFlowStatementGrowthService; - protected final FmpService incomeStatementTtmService; - protected final FmpService balanceSheetStatementTtmService; - protected final FmpService cashFlowStatementTtmService; - protected final FmpService financialGrowthService; - protected final FmpService ratioService; - protected final FmpService ratioTtmService; - protected final FmpService keyMetricService; - protected final FmpService keyMetricTtmService; - protected final FmpService enterpriseValuesService; - protected final FmpService revenueGeographicSegmentationService; - protected final FmpService revenueProductSegmentationService; + protected final FmpService incomeStatementService; + protected final FmpService balanceSheetStatementService; + protected final FmpService cashFlowStatementService; + protected final FmpService incomeStatementAsReportedService; + protected final FmpService balanceSheetStatementAsReportedService; + protected final FmpService cashFlowStatementAsReportedService; + protected final FmpService incomeStatementGrowthService; + protected final FmpService balanceSheetStatementGrowthService; + protected final FmpService cashFlowStatementGrowthService; + protected final FmpService incomeStatementTtmService; + protected final FmpService balanceSheetStatementTtmService; + protected final FmpService cashFlowStatementTtmService; + protected final FmpService financialGrowthService; + protected final FmpService ratioService; + protected final FmpService ratioTtmService; + protected final FmpService keyMetricService; + protected final FmpService keyMetricTtmService; + protected final FmpService enterpriseValuesService; + protected final FmpService revenueGeographicSegmentationService; + protected final FmpService revenueProductSegmentationService; public FmpStatementClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.incomeStatementService = new FmpIncomeStatementService(fmpConfig, fmpHttpClient); @@ -101,7 +102,7 @@ public FmpStatementClient(FmpConfig fmpConfig, FmpHttpClient fmpHttpClient) { this.revenueProductSegmentationService = new FmpRevenueProductSegmentationService(fmpConfig, fmpHttpClient); } - public synchronized FmpIncomeStatement[] income( + public synchronized List income( FmpSymbol symbol, Optional period, Optional limit) { incomeStatementService.param(PARAM_SYMBOL, symbol); incomeStatementService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -109,7 +110,7 @@ public synchronized FmpIncomeStatement[] income( return incomeStatementService.download(); } - public synchronized FmpFinancialStatementAsReported[] incomeAsReported( + public synchronized List incomeAsReported( FmpSymbol symbol, Optional period, Optional limit) { incomeStatementAsReportedService.param(PARAM_SYMBOL, symbol); incomeStatementAsReportedService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -117,7 +118,7 @@ public synchronized FmpFinancialStatementAsReported[] incomeAsReported( return incomeStatementAsReportedService.download(); } - public synchronized FmpIncomeStatementGrowth[] incomeGrowth( + public synchronized List incomeGrowth( FmpSymbol symbol, Optional period, Optional limit) { incomeStatementGrowthService.param(PARAM_SYMBOL, symbol); incomeStatementGrowthService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -125,13 +126,13 @@ public synchronized FmpIncomeStatementGrowth[] incomeGrowth( return incomeStatementGrowthService.download(); } - public synchronized FmpIncomeStatement[] incomeTtm(FmpSymbol symbol, Optional limit) { + public synchronized List incomeTtm(FmpSymbol symbol, Optional limit) { incomeStatementTtmService.param(PARAM_SYMBOL, symbol); incomeStatementTtmService.param(PARAM_LIMIT, limit.orElse(DEFAULT_LIMIT)); return incomeStatementTtmService.download(); } - public synchronized FmpBalanceSheetStatement[] balanceSheet( + public synchronized List balanceSheet( FmpSymbol symbol, Optional period, Optional limit) { balanceSheetStatementService.param(PARAM_SYMBOL, symbol); balanceSheetStatementService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -139,7 +140,7 @@ public synchronized FmpBalanceSheetStatement[] balanceSheet( return balanceSheetStatementService.download(); } - public synchronized FmpFinancialStatementAsReported[] balanceSheetAsReported( + public synchronized List balanceSheetAsReported( FmpSymbol symbol, Optional period, Optional limit) { balanceSheetStatementAsReportedService.param(PARAM_SYMBOL, symbol); balanceSheetStatementAsReportedService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -147,7 +148,7 @@ public synchronized FmpFinancialStatementAsReported[] balanceSheetAsReported( return balanceSheetStatementAsReportedService.download(); } - public synchronized FmpBalanceSheetStatementGrowth[] balanceSheetGrowth( + public synchronized List balanceSheetGrowth( FmpSymbol symbol, Optional period, Optional limit) { balanceSheetStatementGrowthService.param(PARAM_SYMBOL, symbol); balanceSheetStatementGrowthService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -155,13 +156,13 @@ public synchronized FmpBalanceSheetStatementGrowth[] balanceSheetGrowth( return balanceSheetStatementGrowthService.download(); } - public synchronized FmpBalanceSheetStatement[] balanceSheetTtm(FmpSymbol symbol, Optional limit) { + public synchronized List balanceSheetTtm(FmpSymbol symbol, Optional limit) { balanceSheetStatementTtmService.param(PARAM_SYMBOL, symbol); balanceSheetStatementTtmService.param(PARAM_LIMIT, limit.orElse(DEFAULT_LIMIT)); return balanceSheetStatementTtmService.download(); } - public synchronized FmpCashFlowStatement[] cashFlow( + public synchronized List cashFlow( FmpSymbol symbol, Optional period, Optional limit) { cashFlowStatementService.param(PARAM_SYMBOL, symbol); cashFlowStatementService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -169,7 +170,7 @@ public synchronized FmpCashFlowStatement[] cashFlow( return cashFlowStatementService.download(); } - public synchronized FmpFinancialStatementAsReported[] cashFlowAsReported( + public synchronized List cashFlowAsReported( FmpSymbol symbol, Optional period, Optional limit) { cashFlowStatementAsReportedService.param(PARAM_SYMBOL, symbol); cashFlowStatementAsReportedService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -177,7 +178,7 @@ public synchronized FmpFinancialStatementAsReported[] cashFlowAsReported( return cashFlowStatementAsReportedService.download(); } - public synchronized FmpCashFlowStatementGrowth[] cashFlowGrowth( + public synchronized List cashFlowGrowth( FmpSymbol symbol, Optional period, Optional limit) { cashFlowStatementGrowthService.param(PARAM_SYMBOL, symbol); cashFlowStatementGrowthService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -185,13 +186,13 @@ public synchronized FmpCashFlowStatementGrowth[] cashFlowGrowth( return cashFlowStatementGrowthService.download(); } - public synchronized FmpCashFlowStatement[] cashFlowTtm(FmpSymbol symbol, Optional limit) { + public synchronized List cashFlowTtm(FmpSymbol symbol, Optional limit) { cashFlowStatementTtmService.param(PARAM_SYMBOL, symbol); cashFlowStatementTtmService.param(PARAM_LIMIT, limit.orElse(DEFAULT_LIMIT)); return cashFlowStatementTtmService.download(); } - public synchronized FmpFinancialGrowth[] financialGrowth( + public synchronized List financialGrowth( FmpSymbol symbol, Optional period, Optional limit) { financialGrowthService.param(PARAM_SYMBOL, symbol); financialGrowthService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -199,7 +200,7 @@ public synchronized FmpFinancialGrowth[] financialGrowth( return financialGrowthService.download(); } - public synchronized FmpKeyMetric[] keyMetrics( + public synchronized List keyMetrics( FmpSymbol symbol, Optional period, Optional limit) { keyMetricService.param(PARAM_SYMBOL, symbol); keyMetricService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -207,24 +208,24 @@ public synchronized FmpKeyMetric[] keyMetrics( return keyMetricService.download(); } - public synchronized FmpKeyMetricTtm[] keyMetricsTtm(FmpSymbol symbol) { + public synchronized List keyMetricsTtm(FmpSymbol symbol) { keyMetricTtmService.param(PARAM_SYMBOL, symbol); return keyMetricTtmService.download(); } - public synchronized FmpRatio[] ratios(FmpSymbol symbol, Optional period, Optional limit) { + public synchronized List ratios(FmpSymbol symbol, Optional period, Optional limit) { ratioService.param(PARAM_SYMBOL, symbol); ratioService.param(PARAM_PERIOD, period.orElse(ANNUAL)); ratioService.param(PARAM_LIMIT, limit.orElse(DEFAULT_LIMIT)); return ratioService.download(); } - public synchronized FmpRatioTtm[] ratiosTtm(FmpSymbol symbol) { + public synchronized List ratiosTtm(FmpSymbol symbol) { ratioTtmService.param(PARAM_SYMBOL, symbol); return ratioTtmService.download(); } - public synchronized FmpEnterpriseValue[] enterpriseValues( + public synchronized List enterpriseValues( FmpSymbol symbol, Optional period, Optional limit) { enterpriseValuesService.param(PARAM_SYMBOL, symbol); enterpriseValuesService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -232,7 +233,7 @@ public synchronized FmpEnterpriseValue[] enterpriseValues( return enterpriseValuesService.download(); } - public synchronized FmpRevenueGeographicSegmentation[] revenueGeographicSegmentations( + public synchronized List revenueGeographicSegmentations( FmpSymbol symbol, Optional period, Optional structure) { revenueGeographicSegmentationService.param(PARAM_SYMBOL, symbol); revenueGeographicSegmentationService.param(PARAM_PERIOD, period.orElse(ANNUAL)); @@ -240,7 +241,7 @@ public synchronized FmpRevenueGeographicSegmentation[] revenueGeographicSegmenta return revenueGeographicSegmentationService.download(); } - public synchronized FmpRevenueProductSegmentation[] revenueProductSegmentations( + public synchronized List revenueProductSegmentations( FmpSymbol symbol, Optional period, Optional structure) { revenueProductSegmentationService.param(PARAM_SYMBOL, symbol); revenueProductSegmentationService.param(PARAM_PERIOD, period.orElse(ANNUAL)); diff --git a/src/main/java/dev/sorn/fmp4j/csv/FmpCsvDeserializer.java b/src/main/java/dev/sorn/fmp4j/csv/FmpCsvDeserializer.java index d5c8419..7339a72 100644 --- a/src/main/java/dev/sorn/fmp4j/csv/FmpCsvDeserializer.java +++ b/src/main/java/dev/sorn/fmp4j/csv/FmpCsvDeserializer.java @@ -1,17 +1,15 @@ package dev.sorn.fmp4j.csv; import static com.fasterxml.jackson.dataformat.csv.CsvSchema.emptySchema; -import static java.util.stream.IntStream.range; import com.fasterxml.jackson.core.json.JsonReadFeature; -import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.dataformat.csv.CsvMapper; import dev.sorn.fmp4j.exceptions.FmpDeserializationException; import dev.sorn.fmp4j.http.FmpDeserializer; import dev.sorn.fmp4j.json.FmpJsonModule; import java.io.IOException; import java.io.StringReader; -import java.lang.reflect.Array; +import java.util.List; public final class FmpCsvDeserializer implements FmpDeserializer { public static final FmpCsvDeserializer FMP_CSV_DESERIALIZER = new FmpCsvDeserializer(); @@ -35,21 +33,18 @@ private String removeByteOrderMark(String content) { } @Override - public T deserialize(String content, TypeReference type) { + public List deserialize(String content, Class clazz) { try { final var cleanedCsv = removeByteOrderMark(content); - final var javaType = CSV_MAPPER.getTypeFactory().constructType(type.getType()); - final var componentType = javaType.getContentType(); final var schema = emptySchema().withHeader().withNullValue(""); - final var reader = CSV_MAPPER.readerFor(componentType).with(schema); - final var iterator = reader.readValues(new StringReader(cleanedCsv)); - final var list = iterator.readAll(); - final var array = Array.newInstance(componentType.getRawClass(), list.size()); - range(0, list.size()).forEach(i -> Array.set(array, i, list.get(i))); - return (T) array; + final var reader = CSV_MAPPER.readerFor(clazz).with(schema); + return reader.readValues(new StringReader(cleanedCsv)).readAll().stream() + .filter(clazz::isInstance) + .map(clazz::cast) + .toList(); } catch (IOException e) { throw new FmpDeserializationException( - e, "Failed to deserialize CSV to '%s': %s", type.getType().getTypeName(), content); + e, "Failed to deserialize CSV to List<%s>: %s", clazz.getSimpleName(), content); } } } diff --git a/src/main/java/dev/sorn/fmp4j/http/FmpDeserializer.java b/src/main/java/dev/sorn/fmp4j/http/FmpDeserializer.java index ac58531..f02f6b3 100644 --- a/src/main/java/dev/sorn/fmp4j/http/FmpDeserializer.java +++ b/src/main/java/dev/sorn/fmp4j/http/FmpDeserializer.java @@ -1,7 +1,7 @@ package dev.sorn.fmp4j.http; -import com.fasterxml.jackson.core.type.TypeReference; +import java.util.List; public interface FmpDeserializer { - T deserialize(String content, TypeReference type); + List deserialize(String content, Class clazz); } diff --git a/src/main/java/dev/sorn/fmp4j/http/FmpHttpClient.java b/src/main/java/dev/sorn/fmp4j/http/FmpHttpClient.java index 2a2cd8d..7bb4bfa 100644 --- a/src/main/java/dev/sorn/fmp4j/http/FmpHttpClient.java +++ b/src/main/java/dev/sorn/fmp4j/http/FmpHttpClient.java @@ -1,9 +1,9 @@ package dev.sorn.fmp4j.http; -import com.fasterxml.jackson.core.type.TypeReference; import java.net.URI; +import java.util.List; import java.util.Map; public interface FmpHttpClient { - T get(TypeReference type, URI uri, Map headers, Map queryParams); + List get(Class clazz, URI uri, Map headers, Map queryParams); } diff --git a/src/main/java/dev/sorn/fmp4j/http/FmpHttpClientImpl.java b/src/main/java/dev/sorn/fmp4j/http/FmpHttpClientImpl.java index cee6a90..35a94d1 100644 --- a/src/main/java/dev/sorn/fmp4j/http/FmpHttpClientImpl.java +++ b/src/main/java/dev/sorn/fmp4j/http/FmpHttpClientImpl.java @@ -3,12 +3,12 @@ import static dev.sorn.fmp4j.http.FmpUriUtils.uriWithParams; import static java.util.Objects.requireNonNull; -import com.fasterxml.jackson.core.type.TypeReference; import dev.sorn.fmp4j.exceptions.FmpDeserializationException; import dev.sorn.fmp4j.types.FmpApiKey; import java.io.IOException; import java.net.URI; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.apache.commons.lang3.tuple.Pair; import org.apache.hc.client5.http.classic.HttpClient; @@ -27,7 +27,7 @@ public FmpHttpClientImpl(HttpClient httpClient, FmpDeserializationRegistry deser } @Override - public T get(TypeReference type, URI uri, Map headers, Map queryParams) { + public List get(Class clazz, URI uri, Map headers, Map queryParams) { try { requireNonNull(headers, "'headers' is required"); final var contentType = headers.get("Content-Type"); @@ -38,23 +38,23 @@ public T get(TypeReference type, URI uri, Map headers, Ma if (responseBody.isBlank()) { throw new FmpHttpException( "Empty response for type [%s], uri [%s], headers [%s], queryParams [%s]", - type.getType(), uri, headers, queryParams); + clazz.getSimpleName(), uri, headers, queryParams); } if (statusCode == 401 || statusCode == 403) { throw new FmpUnauthorizedException( "Unauthorized for type [%s], uri [%s], headers [%s], queryParams [%s]", - type.getType(), uri, headers, queryParams, responseBody); + clazz.getSimpleName(), uri, headers, queryParams, responseBody); } return deserializationRegistry .resolve(FmpContentType.fromContentTypeHeader(contentType)) - .deserialize(responseBody, type); + .deserialize(responseBody, clazz); } catch (FmpHttpException e) { throw e; } catch (FmpDeserializationException e) { throw new FmpHttpException( e, "Deserialization failed for type [%s], uri [%s], headers [%s], queryParams [%s]", - type.getType(), + clazz.getSimpleName(), uri, headers, queryParams); diff --git a/src/main/java/dev/sorn/fmp4j/json/FmpJsonDeserializer.java b/src/main/java/dev/sorn/fmp4j/json/FmpJsonDeserializer.java index daa7c7e..dab392a 100644 --- a/src/main/java/dev/sorn/fmp4j/json/FmpJsonDeserializer.java +++ b/src/main/java/dev/sorn/fmp4j/json/FmpJsonDeserializer.java @@ -1,6 +1,5 @@ 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; @@ -8,6 +7,7 @@ import dev.sorn.fmp4j.exceptions.FmpDeserializationException; import dev.sorn.fmp4j.http.FmpDeserializer; import java.io.IOException; +import java.util.List; public final class FmpJsonDeserializer implements FmpDeserializer { public static final FmpJsonDeserializer FMP_JSON_DESERIALIZER = new FmpJsonDeserializer(); @@ -21,12 +21,12 @@ private FmpJsonDeserializer() { // prevent direct instantiation } - public T deserialize(String json, TypeReference type) { + public List deserialize(String json, Class clazz) { try { - return OBJECT_MAPPER.readValue(json, type); + return OBJECT_MAPPER.readerForListOf(clazz).readValue(json); } catch (IOException e) { throw new FmpDeserializationException( - e, "Failed to deserialize JSON to '%s': %s", type.getType().getTypeName(), json); + e, "Failed to deserialize JSON to '%s': %s", clazz.getSimpleName(), json); } } } diff --git a/src/main/java/dev/sorn/fmp4j/json/FmpJsonUtils.java b/src/main/java/dev/sorn/fmp4j/json/FmpJsonUtils.java index a37a289..bb6fe0e 100644 --- a/src/main/java/dev/sorn/fmp4j/json/FmpJsonUtils.java +++ b/src/main/java/dev/sorn/fmp4j/json/FmpJsonUtils.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import java.lang.reflect.Type; +import java.util.List; public final class FmpJsonUtils { private FmpJsonUtils() { @@ -16,4 +17,13 @@ public Type getType() { } }; } + + public static TypeReference> typeRefList(Class clazz) { + return new TypeReference<>() { + @Override + public Type getType() { + return super.getType(); + } + }; + } } diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthService.java b/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthService.java index acf7a79..2075fd6 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpBalanceSheetStatementGrowthService extends FmpService { +public class FmpBalanceSheetStatementGrowthService extends FmpService { public FmpBalanceSheetStatementGrowthService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpBalanceSheetStatementGrowth[].class)); + super(cfg, http, FmpBalanceSheetStatementGrowth.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementService.java b/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementService.java index 87bb4ba..f758fb5 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpBalanceSheetStatementService extends FmpService { +public class FmpBalanceSheetStatementService extends FmpService { public FmpBalanceSheetStatementService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpBalanceSheetStatement[].class)); + super(cfg, http, FmpBalanceSheetStatement.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmService.java b/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmService.java index 5719207..f40ca96 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -11,9 +10,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpBalanceSheetStatementTtmService extends FmpService { +public class FmpBalanceSheetStatementTtmService extends FmpService { public FmpBalanceSheetStatementTtmService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpBalanceSheetStatement[].class)); + super(cfg, http, FmpBalanceSheetStatement.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpBulkBalanceSheetStatementService.java b/src/main/java/dev/sorn/fmp4j/services/FmpBulkBalanceSheetStatementService.java index 28a9b14..7a0eeb4 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpBulkBalanceSheetStatementService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpBulkBalanceSheetStatementService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_YEAR; @@ -11,9 +10,9 @@ import dev.sorn.fmp4j.types.FmpYear; import java.util.Map; -public class FmpBulkBalanceSheetStatementService extends FmpService { +public class FmpBulkBalanceSheetStatementService extends FmpService { public FmpBulkBalanceSheetStatementService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpBalanceSheetStatement[].class)); + super(cfg, http, FmpBalanceSheetStatement.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementGrowthService.java b/src/main/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementGrowthService.java index 0ab4163..5a69fd8 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementGrowthService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementGrowthService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_YEAR; @@ -11,9 +10,9 @@ import dev.sorn.fmp4j.types.FmpYear; import java.util.Map; -public class FmpBulkCashFlowStatementGrowthService extends FmpService { +public class FmpBulkCashFlowStatementGrowthService extends FmpService { public FmpBulkCashFlowStatementGrowthService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpCashFlowStatementGrowth[].class)); + super(cfg, http, FmpCashFlowStatementGrowth.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementService.java b/src/main/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementService.java index b56b46a..2571395 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_YEAR; @@ -11,9 +10,9 @@ import dev.sorn.fmp4j.types.FmpYear; import java.util.Map; -public class FmpBulkCashFlowStatementService extends FmpService { +public class FmpBulkCashFlowStatementService extends FmpService { public FmpBulkCashFlowStatementService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpCashFlowStatement[].class)); + super(cfg, http, FmpCashFlowStatement.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpBulkCompaniesService.java b/src/main/java/dev/sorn/fmp4j/services/FmpBulkCompaniesService.java index 6c11ee8..5ed7d90 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpBulkCompaniesService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpBulkCompaniesService.java @@ -1,16 +1,14 @@ 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.FmpCompanies; import dev.sorn.fmp4j.types.FmpPart; import java.util.Map; -public class FmpBulkCompaniesService extends FmpService { +public class FmpBulkCompaniesService extends FmpService { public FmpBulkCompaniesService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpCompanies[].class)); + super(cfg, http, FmpCompanies.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthService.java b/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthService.java index 6434bb9..d6b6911 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpCashFlowStatementGrowthService extends FmpService { +public class FmpCashFlowStatementGrowthService extends FmpService { public FmpCashFlowStatementGrowthService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpCashFlowStatementGrowth[].class)); + super(cfg, http, FmpCashFlowStatementGrowth.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementService.java b/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementService.java index 9376b7f..acaaa85 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpCashFlowStatementService extends FmpService { +public class FmpCashFlowStatementService extends FmpService { public FmpCashFlowStatementService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpCashFlowStatement[].class)); + super(cfg, http, FmpCashFlowStatement.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmService.java b/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmService.java index bffcc9e..8e0b333 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -11,9 +10,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpCashFlowStatementTtmService extends FmpService { +public class FmpCashFlowStatementTtmService extends FmpService { public FmpCashFlowStatementTtmService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpCashFlowStatement[].class)); + super(cfg, http, FmpCashFlowStatement.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpCompanyService.java b/src/main/java/dev/sorn/fmp4j/services/FmpCompanyService.java index d260c97..8dcb58a 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpCompanyService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpCompanyService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpCompanyService extends FmpService { +public class FmpCompanyService extends FmpService { public FmpCompanyService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpCompany[].class)); + super(cfg, http, FmpCompany.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpDividendService.java b/src/main/java/dev/sorn/fmp4j/services/FmpDividendService.java index b1a6ec0..ec7e3d6 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpDividendService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpDividendService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpDividendService extends FmpService { +public class FmpDividendService extends FmpService { public FmpDividendService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpDividend[].class)); + super(cfg, http, FmpDividend.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpDividendsCalendarService.java b/src/main/java/dev/sorn/fmp4j/services/FmpDividendsCalendarService.java index 59c345d..293f258 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpDividendsCalendarService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpDividendsCalendarService.java @@ -1,15 +1,13 @@ 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.FmpDividendsCalendar; import java.util.Map; -public class FmpDividendsCalendarService extends FmpService { +public class FmpDividendsCalendarService extends FmpService { public FmpDividendsCalendarService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpDividendsCalendar[].class)); + super(cfg, http, FmpDividendsCalendar.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEarningService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEarningService.java index 3a7de05..34c373b 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEarningService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEarningService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpEarningService extends FmpService { +public class FmpEarningService extends FmpService { public FmpEarningService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEarning[].class)); + super(cfg, http, FmpEarning.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCalendarService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCalendarService.java index 627818a..bb8c5cb 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCalendarService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCalendarService.java @@ -1,15 +1,13 @@ 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.FmpEarningsCalendar; import java.util.Map; -public class FmpEarningsCalendarService extends FmpService { +public class FmpEarningsCalendarService extends FmpService { public FmpEarningsCalendarService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEarningsCalendar[].class)); + super(cfg, http, FmpEarningsCalendar.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptDatesService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptDatesService.java index 6cf20a7..d0d136d 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptDatesService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptDatesService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpEarningsCallTranscriptDatesService extends FmpService { +public class FmpEarningsCallTranscriptDatesService extends FmpService { public FmpEarningsCallTranscriptDatesService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEarningsCallTranscriptDate[].class)); + super(cfg, http, FmpEarningsCallTranscriptDate.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptLatestService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptLatestService.java index 38ff269..6933a68 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptLatestService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptLatestService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PAGE; @@ -11,9 +10,9 @@ import dev.sorn.fmp4j.types.FmpPage; import java.util.Map; -public class FmpEarningsCallTranscriptLatestService extends FmpService { +public class FmpEarningsCallTranscriptLatestService extends FmpService { public FmpEarningsCallTranscriptLatestService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEarningsCallTranscriptLatest[].class)); + super(cfg, http, FmpEarningsCallTranscriptLatest.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptListService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptListService.java index e11a5b3..f3bba5a 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptListService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptListService.java @@ -1,15 +1,13 @@ 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.FmpEarningsCallTranscriptList; import java.util.Map; -public class FmpEarningsCallTranscriptListService extends FmpService { +public class FmpEarningsCallTranscriptListService extends FmpService { public FmpEarningsCallTranscriptListService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEarningsCallTranscriptList[].class)); + super(cfg, http, FmpEarningsCallTranscriptList.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptService.java index b6ab976..2628bc6 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_QUARTER; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -15,9 +14,9 @@ import dev.sorn.fmp4j.types.FmpYear; import java.util.Map; -public class FmpEarningsCallTranscriptService extends FmpService { +public class FmpEarningsCallTranscriptService extends FmpService { public FmpEarningsCallTranscriptService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEarningsCallTranscript[].class)); + super(cfg, http, FmpEarningsCallTranscript.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesService.java index 421f11b..c47c827 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpEnterpriseValuesService extends FmpService { +public class FmpEnterpriseValuesService extends FmpService { public FmpEnterpriseValuesService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEnterpriseValue[].class)); + super(cfg, http, FmpEnterpriseValue.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureService.java index 1e478eb..3693337 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpEtfAssetExposureService extends FmpService { +public class FmpEtfAssetExposureService extends FmpService { public FmpEtfAssetExposureService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEtfAssetExposure[].class)); + super(cfg, http, FmpEtfAssetExposure.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingService.java index 6bad24f..8884302 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpEtfCountryWeightingService extends FmpService { +public class FmpEtfCountryWeightingService extends FmpService { public FmpEtfCountryWeightingService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEtfCountryWeighting[].class)); + super(cfg, http, FmpEtfCountryWeighting.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEtfHoldingService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEtfHoldingService.java index ddb678d..50922d8 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEtfHoldingService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEtfHoldingService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpEtfHoldingService extends FmpService { +public class FmpEtfHoldingService extends FmpService { public FmpEtfHoldingService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEtfHolding[].class)); + super(cfg, http, FmpEtfHolding.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEtfInfoService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEtfInfoService.java index 86609f6..d7f9999 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEtfInfoService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEtfInfoService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpEtfInfoService extends FmpService { +public class FmpEtfInfoService extends FmpService { public FmpEtfInfoService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEtfInfo[].class)); + super(cfg, http, FmpEtfInfo.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEtfListService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEtfListService.java index 776207a..a4e68e5 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEtfListService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEtfListService.java @@ -1,15 +1,13 @@ 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.FmpEtf; import java.util.Map; -public class FmpEtfListService extends FmpService { +public class FmpEtfListService extends FmpService { public FmpEtfListService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEtf[].class)); + super(cfg, http, FmpEtf.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingService.java b/src/main/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingService.java index 2894aec..ac69075 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpEtfSectorWeightingService extends FmpService { +public class FmpEtfSectorWeightingService extends FmpService { public FmpEtfSectorWeightingService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpEtfSectorWeighting[].class)); + super(cfg, http, FmpEtfSectorWeighting.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpFinancialGrowthService.java b/src/main/java/dev/sorn/fmp4j/services/FmpFinancialGrowthService.java index f874e4c..dfddb51 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpFinancialGrowthService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpFinancialGrowthService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpFinancialGrowthService extends FmpService { +public class FmpFinancialGrowthService extends FmpService { public FmpFinancialGrowthService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpFinancialGrowth[].class)); + super(cfg, http, FmpFinancialGrowth.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedService.java b/src/main/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedService.java index 0f26c46..f6098fa 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,11 +12,11 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpFinancialStatementAsReportedService extends FmpService { +public class FmpFinancialStatementAsReportedService extends FmpService { protected final String type; public FmpFinancialStatementAsReportedService(FmpConfig cfg, FmpHttpClient http, String type) { - super(cfg, http, typeRef(FmpFinancialStatementAsReported[].class)); + super(cfg, http, FmpFinancialStatementAsReported.class); this.type = type; } diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalChartService.java b/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalChartService.java index 8d02068..1b775a5 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalChartService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalChartService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_FROM; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_TO; @@ -13,11 +12,11 @@ import java.time.LocalDate; import java.util.Map; -public class FmpHistoricalChartService extends FmpService { +public class FmpHistoricalChartService extends FmpService { protected final FmpInterval interval; public FmpHistoricalChartService(FmpConfig cfg, FmpHttpClient http, FmpInterval interval) { - super(cfg, http, typeRef(FmpHistoricalChart[].class)); + super(cfg, http, FmpHistoricalChart.class); this.interval = interval; } diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullService.java b/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullService.java index 0ccd5fc..c7cccd6 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_FROM; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_TO; @@ -12,9 +11,9 @@ import java.time.LocalDate; import java.util.Map; -public class FmpHistoricalPriceEodFullService extends FmpService { +public class FmpHistoricalPriceEodFullService extends FmpService { public FmpHistoricalPriceEodFullService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpHistoricalPriceEodFull[].class)); + super(cfg, http, FmpHistoricalPriceEodFull.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightService.java b/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightService.java index 72294ed..c0dfb86 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_FROM; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_TO; @@ -12,9 +11,9 @@ import java.time.LocalDate; import java.util.Map; -public class FmpHistoricalPriceEodLightService extends FmpService { +public class FmpHistoricalPriceEodLightService extends FmpService { public FmpHistoricalPriceEodLightService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpHistoricalPriceEodLight[].class)); + super(cfg, http, FmpHistoricalPriceEodLight.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthService.java b/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthService.java index 0c014f7..c017cb9 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpIncomeStatementGrowthService extends FmpService { +public class FmpIncomeStatementGrowthService extends FmpService { public FmpIncomeStatementGrowthService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpIncomeStatementGrowth[].class)); + super(cfg, http, FmpIncomeStatementGrowth.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementService.java b/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementService.java index 75b40d1..f956e66 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpIncomeStatementService extends FmpService { +public class FmpIncomeStatementService extends FmpService { public FmpIncomeStatementService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpIncomeStatement[].class)); + super(cfg, http, FmpIncomeStatement.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmService.java b/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmService.java index 94f5579..099c02a 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -11,9 +10,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpIncomeStatementTtmService extends FmpService { +public class FmpIncomeStatementTtmService extends FmpService { public FmpIncomeStatementTtmService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpIncomeStatement[].class)); + super(cfg, http, FmpIncomeStatement.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpIposCalendarService.java b/src/main/java/dev/sorn/fmp4j/services/FmpIposCalendarService.java index 2ee879f..bc4eb1f 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpIposCalendarService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpIposCalendarService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_FROM; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_TO; @@ -10,9 +9,9 @@ import java.time.LocalDate; import java.util.Map; -public class FmpIposCalendarService extends FmpService { +public class FmpIposCalendarService extends FmpService { public FmpIposCalendarService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpIposCalendar[].class)); + super(cfg, http, FmpIposCalendar.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpIposDisclosureService.java b/src/main/java/dev/sorn/fmp4j/services/FmpIposDisclosureService.java index c425c86..b6afdad 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpIposDisclosureService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpIposDisclosureService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_FROM; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_TO; @@ -10,9 +9,9 @@ import java.time.LocalDate; import java.util.Map; -public class FmpIposDisclosureService extends FmpService { +public class FmpIposDisclosureService extends FmpService { public FmpIposDisclosureService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpIposDisclosure[].class)); + super(cfg, http, FmpIposDisclosure.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpIposProspectusService.java b/src/main/java/dev/sorn/fmp4j/services/FmpIposProspectusService.java index b26fa4a..d9f9174 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpIposProspectusService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpIposProspectusService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_FROM; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_TO; @@ -10,9 +9,9 @@ import java.time.LocalDate; import java.util.Map; -public class FmpIposProspectusService extends FmpService { +public class FmpIposProspectusService extends FmpService { public FmpIposProspectusService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpIposProspectus[].class)); + super(cfg, http, FmpIposProspectus.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpKeyMetricService.java b/src/main/java/dev/sorn/fmp4j/services/FmpKeyMetricService.java index 308ebcd..a6caef5 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpKeyMetricService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpKeyMetricService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpKeyMetricService extends FmpService { +public class FmpKeyMetricService extends FmpService { public FmpKeyMetricService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpKeyMetric[].class)); + super(cfg, http, FmpKeyMetric.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmService.java b/src/main/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmService.java index 86bd349..1b11307 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpKeyMetricTtmService extends FmpService { +public class FmpKeyMetricTtmService extends FmpService { public FmpKeyMetricTtmService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpKeyMetricTtm[].class)); + super(cfg, http, FmpKeyMetricTtm.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpNewsService.java b/src/main/java/dev/sorn/fmp4j/services/FmpNewsService.java index 57cbd2a..7e098d5 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpNewsService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpNewsService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_FROM; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PAGE; @@ -16,11 +15,11 @@ import java.time.LocalDate; import java.util.Map; -public class FmpNewsService extends FmpService { +public class FmpNewsService extends FmpService { protected final String type; public FmpNewsService(FmpConfig cfg, FmpHttpClient http, String type) { - super(cfg, http, typeRef(FmpNews[].class)); + super(cfg, http, FmpNews.class); this.type = type; } diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpPartialQuoteService.java b/src/main/java/dev/sorn/fmp4j/services/FmpPartialQuoteService.java index 4ba7c43..d74b0ac 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpPartialQuoteService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpPartialQuoteService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpPartialQuoteService extends FmpService { +public class FmpPartialQuoteService extends FmpService { public FmpPartialQuoteService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpPartialQuote[].class)); + super(cfg, http, FmpPartialQuote.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpQuoteService.java b/src/main/java/dev/sorn/fmp4j/services/FmpQuoteService.java index b710159..55b24d5 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpQuoteService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpQuoteService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpQuoteService extends FmpService { +public class FmpQuoteService extends FmpService { public FmpQuoteService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpFullQuote[].class)); + super(cfg, http, FmpFullQuote.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpRatioService.java b/src/main/java/dev/sorn/fmp4j/services/FmpRatioService.java index 2543b30..b3bb00e 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpRatioService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpRatioService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpRatioService extends FmpService { +public class FmpRatioService extends FmpService { public FmpRatioService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpRatio[].class)); + super(cfg, http, FmpRatio.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpRatioTtmService.java b/src/main/java/dev/sorn/fmp4j/services/FmpRatioTtmService.java index 84d6740..c35232b 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpRatioTtmService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpRatioTtmService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpRatioTtmService extends FmpService { +public class FmpRatioTtmService extends FmpService { public FmpRatioTtmService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpRatioTtm[].class)); + super(cfg, http, FmpRatioTtm.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationService.java b/src/main/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationService.java index c5b501c..c8ec0ba 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_STRUCTURE; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpRevenueGeographicSegmentationService extends FmpService { +public class FmpRevenueGeographicSegmentationService extends FmpService { public FmpRevenueGeographicSegmentationService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpRevenueGeographicSegmentation[].class)); + super(cfg, http, FmpRevenueGeographicSegmentation.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationService.java b/src/main/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationService.java index a625426..84c8b1f 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_STRUCTURE; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; @@ -13,9 +12,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpRevenueProductSegmentationService extends FmpService { +public class FmpRevenueProductSegmentationService extends FmpService { public FmpRevenueProductSegmentationService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpRevenueProductSegmentation[].class)); + super(cfg, http, FmpRevenueProductSegmentation.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpSearchByCikService.java b/src/main/java/dev/sorn/fmp4j/services/FmpSearchByCikService.java index f62c4ef..b2fd1ec 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpSearchByCikService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpSearchByCikService.java @@ -1,16 +1,14 @@ 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.FmpSearchByCik; import dev.sorn.fmp4j.types.FmpCik; import java.util.Map; -public class FmpSearchByCikService extends FmpService { +public class FmpSearchByCikService extends FmpService { public FmpSearchByCikService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpSearchByCik[].class)); + super(cfg, http, FmpSearchByCik.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpSearchByCusipService.java b/src/main/java/dev/sorn/fmp4j/services/FmpSearchByCusipService.java index 8c3709c..c4a5e88 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpSearchByCusipService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpSearchByCusipService.java @@ -1,16 +1,14 @@ 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.FmpSearchByCusip; import dev.sorn.fmp4j.types.FmpCusip; import java.util.Map; -public class FmpSearchByCusipService extends FmpService { +public class FmpSearchByCusipService extends FmpService { public FmpSearchByCusipService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpSearchByCusip[].class)); + super(cfg, http, FmpSearchByCusip.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpSearchByIsinService.java b/src/main/java/dev/sorn/fmp4j/services/FmpSearchByIsinService.java index 8b247fb..e59c2a4 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpSearchByIsinService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpSearchByIsinService.java @@ -1,16 +1,14 @@ 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.FmpSearchByIsin; import dev.sorn.fmp4j.types.FmpIsin; import java.util.Map; -public class FmpSearchByIsinService extends FmpService { +public class FmpSearchByIsinService extends FmpService { public FmpSearchByIsinService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpSearchByIsin[].class)); + super(cfg, http, FmpSearchByIsin.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpSearchByNameService.java b/src/main/java/dev/sorn/fmp4j/services/FmpSearchByNameService.java index 8ad89bd..bdb7521 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpSearchByNameService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpSearchByNameService.java @@ -1,15 +1,13 @@ 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.FmpSearchByName; import java.util.Map; -public class FmpSearchByNameService extends FmpService { +public class FmpSearchByNameService extends FmpService { public FmpSearchByNameService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpSearchByName[].class)); + super(cfg, http, FmpSearchByName.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpSearchBySymbolService.java b/src/main/java/dev/sorn/fmp4j/services/FmpSearchBySymbolService.java index ae53ade..6c55876 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpSearchBySymbolService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpSearchBySymbolService.java @@ -1,16 +1,14 @@ 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.FmpSearchBySymbol; import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpSearchBySymbolService extends FmpService { +public class FmpSearchBySymbolService extends FmpService { public FmpSearchBySymbolService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpSearchBySymbol[].class)); + super(cfg, http, FmpSearchBySymbol.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesService.java b/src/main/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesService.java index fb6a08d..365da32 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOLS; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,10 +8,10 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpSearchPressReleasesService extends FmpService { +public class FmpSearchPressReleasesService extends FmpService { public FmpSearchPressReleasesService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpSearchPressRelease[].class)); + super(cfg, http, FmpSearchPressRelease.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolService.java b/src/main/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolService.java index 5deabbb..ca8d4a1 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_FROM; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_LIMIT; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PAGE; @@ -16,9 +15,9 @@ import java.time.LocalDate; import java.util.Map; -public class FmpSecFilingsSearchBySymbolService extends FmpService { +public class FmpSecFilingsSearchBySymbolService extends FmpService { public FmpSecFilingsSearchBySymbolService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpSecFilingsSearchBySymbol[].class)); + super(cfg, http, FmpSecFilingsSearchBySymbol.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpService.java b/src/main/java/dev/sorn/fmp4j/services/FmpService.java index 6dcd271..3e17dc4 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpService.java @@ -2,11 +2,11 @@ import static java.util.Objects.requireNonNull; -import com.fasterxml.jackson.core.type.TypeReference; import dev.sorn.fmp4j.cfg.FmpConfig; import dev.sorn.fmp4j.http.FmpHttpClient; import java.net.URI; import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; @@ -15,12 +15,12 @@ public abstract class FmpService { protected final FmpConfig cfg; protected final FmpHttpClient http; protected final ConcurrentHashMap params = new ConcurrentHashMap<>(); - protected final TypeReference typeRef; + protected final Class clazz; - protected FmpService(FmpConfig cfg, FmpHttpClient http, TypeReference typeRef) { + protected FmpService(FmpConfig cfg, FmpHttpClient http, Class clazz) { this.cfg = requireNonNull(cfg, "'cfg' is required"); this.http = requireNonNull(http, "'http' is required"); - this.typeRef = requireNonNull(typeRef, "'typeRef' is required"); + this.clazz = requireNonNull(clazz, "'clazz' is required"); this.params.put("apikey", requireNonNull(cfg.fmpApiKey(), "'apikey' is required")); } @@ -34,8 +34,8 @@ protected final URI url() { protected abstract Map> optionalParams(); - protected R filter(R r) { - return r; + protected boolean filter(R r) { + return true; } private void validateParamKey(String key) { @@ -74,7 +74,7 @@ protected Map headers() { return Map.of("Content-Type", "application/json"); } - public final R download() { + public final List download() { final var required = requiredParams(); final var missing = required.keySet().stream() .filter(req -> !params.containsKey(req)) @@ -84,6 +84,8 @@ public final R download() { throw new FmpServiceException("%s are required query params for endpoint [%s]", missing, url()); } - return filter(http.get(typeRef, url(), headers(), params)); + return http.get(clazz, url(), headers(), params).stream() + .filter(this::filter) + .toList(); } } diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpSplitService.java b/src/main/java/dev/sorn/fmp4j/services/FmpSplitService.java index 1bf7fc1..03a5727 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpSplitService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpSplitService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpSplitService extends FmpService { +public class FmpSplitService extends FmpService { public FmpSplitService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpSplit[].class)); + super(cfg, http, FmpSplit.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpSplitsCalendarService.java b/src/main/java/dev/sorn/fmp4j/services/FmpSplitsCalendarService.java index 1ced245..9eb0097 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpSplitsCalendarService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpSplitsCalendarService.java @@ -1,15 +1,13 @@ 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.FmpSplitsCalendar; import java.util.Map; -public class FmpSplitsCalendarService extends FmpService { +public class FmpSplitsCalendarService extends FmpService { public FmpSplitsCalendarService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpSplitsCalendar[].class)); + super(cfg, http, FmpSplitsCalendar.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpStockListService.java b/src/main/java/dev/sorn/fmp4j/services/FmpStockListService.java index dd0f4ff..f63e7a9 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpStockListService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpStockListService.java @@ -1,16 +1,13 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; -import static java.util.Arrays.stream; - import dev.sorn.fmp4j.cfg.FmpConfig; import dev.sorn.fmp4j.http.FmpHttpClient; import dev.sorn.fmp4j.models.FmpStock; import java.util.Map; -public class FmpStockListService extends FmpService { +public class FmpStockListService extends FmpService { public FmpStockListService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpStock[].class)); + super(cfg, http, FmpStock.class); } @Override @@ -29,7 +26,10 @@ protected Map> optionalParams() { } @Override - protected FmpStock[] filter(FmpStock[] stocks) { - return stream(stocks).filter(s -> s.symbol() != null).toArray(FmpStock[]::new); + protected boolean filter(FmpStock stocks) { + if (stocks.symbol() == null) { + return false; + } + return true; } } diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpStockPriceChangeService.java b/src/main/java/dev/sorn/fmp4j/services/FmpStockPriceChangeService.java index dd5d0ad..8bbcc3d 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpStockPriceChangeService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpStockPriceChangeService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import dev.sorn.fmp4j.cfg.FmpConfig; @@ -9,9 +8,9 @@ import dev.sorn.fmp4j.types.FmpSymbol; import java.util.Map; -public class FmpStockPriceChangeService extends FmpService { +public class FmpStockPriceChangeService extends FmpService { public FmpStockPriceChangeService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpStockPriceChange[].class)); + super(cfg, http, FmpStockPriceChange.class); } @Override diff --git a/src/main/java/dev/sorn/fmp4j/services/FmpTreasuryRatesService.java b/src/main/java/dev/sorn/fmp4j/services/FmpTreasuryRatesService.java index 2713cd2..5e8a955 100644 --- a/src/main/java/dev/sorn/fmp4j/services/FmpTreasuryRatesService.java +++ b/src/main/java/dev/sorn/fmp4j/services/FmpTreasuryRatesService.java @@ -1,6 +1,5 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_FROM; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_TO; @@ -10,9 +9,9 @@ import java.time.LocalDate; import java.util.Map; -public class FmpTreasuryRatesService extends FmpService { +public class FmpTreasuryRatesService extends FmpService { public FmpTreasuryRatesService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, typeRef(FmpTreasuryRate[].class)); + super(cfg, http, FmpTreasuryRate.class); } @Override diff --git a/src/test/java/dev/sorn/fmp4j/FmpClientTest.java b/src/test/java/dev/sorn/fmp4j/FmpClientTest.java index 6035b87..5b42e7c 100644 --- a/src/test/java/dev/sorn/fmp4j/FmpClientTest.java +++ b/src/test/java/dev/sorn/fmp4j/FmpClientTest.java @@ -18,7 +18,6 @@ import static java.lang.System.setProperty; import static java.util.Collections.emptySet; import static java.util.Optional.empty; -import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; @@ -78,6 +77,7 @@ import dev.sorn.fmp4j.services.HttpTest; import dev.sorn.fmp4j.types.FmpSymbol; import java.time.LocalDate; +import java.util.List; import java.util.Optional; import java.util.Set; import java.util.TreeSet; @@ -1143,15 +1143,15 @@ void earnings_transcript_list() { assertValidResult(result, 4, FmpEarningsCallTranscriptList.class); } - private void assertValidResult(T[] result, int expectedLength, Class expectedType) { + private void assertValidResult(List result, int expectedLength, Class expectedType) { assertValidResult(result, expectedLength, expectedType, emptySet()); } - private void assertValidResult( - T[] result, int expectedLength, Class expectedType, Set ignoreFields) { + private void assertValidResult( + List result, int expectedLength, Class expectedType, Set ignoreFields) { assertNotNull(result, "result was null, likely a missing stub"); - assertEquals(expectedLength, result.length); - range(0, expectedLength).forEach(i -> assertInstanceOf(expectedType, result[i])); - range(0, expectedLength).forEach(i -> assertAllFieldsNonNull(result[i], ignoreFields)); + assertEquals(expectedLength, result.size()); + result.forEach(r -> assertInstanceOf(expectedType, r)); + result.forEach(r -> assertAllFieldsNonNull(r, ignoreFields)); } } diff --git a/src/test/java/dev/sorn/fmp4j/TestUtils.java b/src/test/java/dev/sorn/fmp4j/TestUtils.java index 80c7c93..f28df59 100644 --- a/src/test/java/dev/sorn/fmp4j/TestUtils.java +++ b/src/test/java/dev/sorn/fmp4j/TestUtils.java @@ -6,7 +6,6 @@ import static java.util.Collections.emptySet; import static org.junit.jupiter.api.Assertions.assertNotNull; -import com.fasterxml.jackson.core.type.TypeReference; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; @@ -20,6 +19,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; +import java.util.List; import java.util.Set; public final class TestUtils { @@ -27,14 +27,14 @@ private TestUtils() { throw new AssertionError(TestUtils.class.getSimpleName() + " cannot be instantiated."); } - public static T csvTestResource(TypeReference typeRef, String filename, Object... args) { + public static List csvTestResource(Class clazz, String filename, Object... args) { final var csv = testResource(filename, args); - return FMP_CSV_DESERIALIZER.deserialize(csv, typeRef); + return FMP_CSV_DESERIALIZER.deserialize(csv, clazz); } - public static T jsonTestResource(TypeReference typeRef, String filename, Object... args) { + public static List jsonTestResource(Class clazz, String filename, Object... args) { final var json = testResource(filename, args); - return FMP_JSON_DESERIALIZER.deserialize(json, typeRef); + return FMP_JSON_DESERIALIZER.deserialize(json, clazz); } public static String testResource(String filename, Object... args) { diff --git a/src/test/java/dev/sorn/fmp4j/csv/FmpCsvDeserializerTest.java b/src/test/java/dev/sorn/fmp4j/csv/FmpCsvDeserializerTest.java index eab9d0a..a15f358 100644 --- a/src/test/java/dev/sorn/fmp4j/csv/FmpCsvDeserializerTest.java +++ b/src/test/java/dev/sorn/fmp4j/csv/FmpCsvDeserializerTest.java @@ -1,7 +1,6 @@ package dev.sorn.fmp4j.csv; import static dev.sorn.fmp4j.csv.FmpCsvDeserializer.FMP_CSV_DESERIALIZER; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -30,22 +29,24 @@ void deserialize_array() { GOOGL,Alphabet Inc.,2800.50,50 MSFT,Microsoft Corp.,300.75,75 """; + // when - var result = deserializer.deserialize(csv, typeRef(TestCsvObject[].class)); + var result = deserializer.deserialize(csv, TestCsvObject.class); + // then - assertEquals(3, result.length); - assertEquals("AAPL", result[0].symbol()); - assertEquals("Apple Inc.", result[0].name()); - assertEquals(150.25, result[0].price()); - assertEquals(100, result[0].quantity()); - assertEquals("GOOGL", result[1].symbol()); - assertEquals("Alphabet Inc.", result[1].name()); - assertEquals(2800.50, result[1].price()); - assertEquals(50, result[1].quantity()); - assertEquals("MSFT", result[2].symbol()); - assertEquals("Microsoft Corp.", result[2].name()); - assertEquals(300.75, result[2].price()); - assertEquals(75, result[2].quantity()); + assertEquals(3, result.size()); + assertEquals("AAPL", result.get(0).symbol()); + assertEquals("Apple Inc.", result.get(0).name()); + assertEquals(150.25, result.get(0).price()); + assertEquals(100, result.get(0).quantity()); + assertEquals("GOOGL", result.get(1).symbol()); + assertEquals("Alphabet Inc.", result.get(1).name()); + assertEquals(2800.50, result.get(1).price()); + assertEquals(50, result.get(1).quantity()); + assertEquals("MSFT", result.get(2).symbol()); + assertEquals("Microsoft Corp.", result.get(2).name()); + assertEquals(300.75, result.get(2).price()); + assertEquals(75, result.get(2).quantity()); } @Test @@ -58,17 +59,17 @@ void deserialize_array_with_null_values() { GOOGL,,2800.50, """; // when - var result = deserializer.deserialize(csv, typeRef(TestCsvObject[].class)); + var result = deserializer.deserialize(csv, TestCsvObject.class); // then - assertEquals(2, result.length); - assertEquals("AAPL", result[0].symbol()); - assertEquals("Apple Inc.", result[0].name()); - assertNull(result[0].price()); - assertEquals(100, result[0].quantity()); - assertEquals("GOOGL", result[1].symbol()); - assertNull(result[1].name()); - assertEquals(2800.50, result[1].price()); - assertNull(result[1].quantity()); + assertEquals(2, result.size()); + assertEquals("AAPL", result.get(0).symbol()); + assertEquals("Apple Inc.", result.get(0).name()); + assertNull(result.get(0).price()); + assertEquals(100, result.get(0).quantity()); + assertEquals("GOOGL", result.get(1).symbol()); + assertNull(result.get(1).name()); + assertEquals(2800.50, result.get(1).price()); + assertNull(result.get(1).quantity()); } @Test @@ -80,13 +81,13 @@ void deserialize_array_with_byte_order_mark() { AAPL,Apple Inc.,150.25,100 """; // when - var result = deserializer.deserialize(csv, typeRef(TestCsvObject[].class)); + var result = deserializer.deserialize(csv, TestCsvObject.class); // then - assertEquals(1, result.length); - assertEquals("AAPL", result[0].symbol()); - assertEquals("Apple Inc.", result[0].name()); - assertEquals(150.25, result[0].price()); - assertEquals(100, result[0].quantity()); + assertEquals(1, result.size()); + assertEquals("AAPL", result.get(0).symbol()); + assertEquals("Apple Inc.", result.get(0).name()); + assertEquals(150.25, result.get(0).price()); + assertEquals(100, result.get(0).quantity()); } @Test @@ -96,9 +97,9 @@ void deserialize_array_empty_content() { symbol,name,price,quantity """; // when - var result = deserializer.deserialize(csv, typeRef(TestCsvObject[].class)); + var result = deserializer.deserialize(csv, TestCsvObject.class); // then - assertEquals(0, result.length); + assertEquals(0, result.size()); } @Test @@ -112,14 +113,13 @@ void deserialize_array_fails_on_malformed_csv() { // when // then var e = assertThrows( FmpDeserializationException.class, - () -> FMP_CSV_DESERIALIZER.deserialize(malformedCsv, typeRef(TestCsvObject[].class))); + () -> FMP_CSV_DESERIALIZER.deserialize(malformedCsv, TestCsvObject.class)); assertEquals( """ - Failed to deserialize CSV to 'dev.sorn.fmp4j.TestCsvObject[]': symbol,name,price,quantity + Failed to deserialize CSV to List: symbol,name,price,quantity AAPL,Apple Inc.,not_a_number,100 - """ - .replaceAll("\\s", ""), - e.getMessage().replaceAll("\\s", "")); + """, + e.getMessage()); } @Test @@ -130,13 +130,13 @@ void deserialize_array_with_trailing_comma() { AAPL,Apple Inc.,150.25,100, """; // when - var result = deserializer.deserialize(csv, typeRef(TestCsvObject[].class)); + var result = deserializer.deserialize(csv, TestCsvObject.class); // then - assertEquals(1, result.length); - assertEquals("AAPL", result[0].symbol()); - assertEquals("Apple Inc.", result[0].name()); - assertEquals(150.25, result[0].price()); - assertEquals(100, result[0].quantity()); + assertEquals(1, result.size()); + assertEquals("AAPL", result.get(0).symbol()); + assertEquals("Apple Inc.", result.get(0).name()); + assertEquals(150.25, result.get(0).price()); + assertEquals(100, result.get(0).quantity()); } @Test @@ -147,12 +147,12 @@ void deserialize_array_with_empty_string_as_null() { AAPL,"",150.25,100 """; // when - var result = deserializer.deserialize(csv, typeRef(TestCsvObject[].class)); + var result = deserializer.deserialize(csv, TestCsvObject.class); // then - assertEquals(1, result.length); - assertEquals("AAPL", result[0].symbol()); - assertNull(result[0].name()); - assertEquals(150.25, result[0].price()); - assertEquals(100, result[0].quantity()); + assertEquals(1, result.size()); + assertEquals("AAPL", result.get(0).symbol()); + assertNull(result.get(0).name()); + assertEquals(150.25, result.get(0).price()); + assertEquals(100, result.get(0).quantity()); } } diff --git a/src/test/java/dev/sorn/fmp4j/http/FmpHttpClientTest.java b/src/test/java/dev/sorn/fmp4j/http/FmpHttpClientTest.java index c75ddf9..d5b9943 100644 --- a/src/test/java/dev/sorn/fmp4j/http/FmpHttpClientTest.java +++ b/src/test/java/dev/sorn/fmp4j/http/FmpHttpClientTest.java @@ -1,13 +1,10 @@ package dev.sorn.fmp4j.http; import static dev.sorn.fmp4j.TestDeserializationRegistry.TEST_DESERIALIZATION_REGISTRY; -import static dev.sorn.fmp4j.json.FmpJsonUtils.typeRef; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import dev.sorn.fmp4j.TestObject; @@ -39,35 +36,6 @@ void setUp() { client = new FmpHttpClientImpl(httpClient, TEST_DESERIALIZATION_REGISTRY); } - @Test - void get_successful_request_object() throws Exception { - // given - var headers = Map.of("Authorization", "Bearer token", "Content-Type", "application/json"); - var params = Map.of("apikey", new FmpApiKey("ABCDEf0ghIjklmNO1pqRsT2u34VWx5y6")); - var jsonResponse = - """ - { - "key": "fmp4j", - "object": { - "value": 42 - } - } - """ - .replaceAll("\\s", ""); - var expected = new TestObject("fmp4j", new TestObjectValue(42)); - when(httpClient.executeOpen(any(), any(HttpGet.class), any())).thenReturn(httpResponse); - when(httpResponse.getEntity()).thenReturn(new StringEntity(jsonResponse)); - when(httpResponse.getCode()).thenReturn(200); - - // when - var result = client.get(typeRef(TestObject.class), testUri, headers, params); - - // then - assertNotNull(result); - assertEquals(expected, result); - verify(httpResponse).close(); - } - @Test void get_successful_request_array() throws IOException { // given @@ -99,12 +67,12 @@ void get_successful_request_array() throws IOException { when(httpResponse.getCode()).thenReturn(200); // when - var result = client.get(typeRef(TestObject[].class), testUri, headers, params); + var result = client.get(TestObject.class, testUri, headers, params); // then - assertEquals(2, result.length); - assertEquals(expected[0], result[0]); - assertEquals(expected[1], result[1]); + assertEquals(2, result.size()); + assertEquals(expected[0], result.get(0)); + assertEquals(expected[1], result.get(1)); } @Test @@ -114,8 +82,7 @@ void get_handles_execution_exception() throws Exception { when(httpClient.executeOpen(any(), any(HttpGet.class), any())).thenThrow(new IOException("Connection failed")); // when // then - var e = assertThrows( - FmpHttpException.class, () -> client.get(typeRef(TestObject[].class), testUri, null, params)); + var e = assertThrows(FmpHttpException.class, () -> client.get(TestObject.class, testUri, null, params)); assertEquals("HTTP request failed: https://financialmodelingprep.com/stable", e.getMessage()); } @@ -126,8 +93,7 @@ void get_handles_entity_exception() throws Exception { when(httpResponse.getEntity()).thenThrow(new RuntimeException("Invalid entity")); // when // then - var e = assertThrows( - FmpHttpException.class, () -> client.get(typeRef(TestObject[].class), testUri, null, null)); + var e = assertThrows(FmpHttpException.class, () -> client.get(TestObject.class, testUri, null, null)); assertEquals("HTTP request failed: https://financialmodelingprep.com/stable", e.getMessage()); } @@ -145,10 +111,9 @@ void throws_unauthorized_for_code(int code) throws IOException { // then var e = assertThrows( - FmpUnauthorizedException.class, - () -> client.get(typeRef(TestObject[].class), testUri, headers, params)); + FmpUnauthorizedException.class, () -> client.get(TestObject.class, testUri, headers, params)); assertEquals( - "Unauthorized for type [class [Ldev.sorn.fmp4j.TestObject;], uri [https://financialmodelingprep.com/stable], headers [{some=header}], queryParams [{apikey=AB****************************y6}]", + "Unauthorized for type [TestObject], uri [https://financialmodelingprep.com/stable], headers [{some=header}], queryParams [{apikey=AB****************************y6}]", e.getMessage()); } @@ -166,10 +131,9 @@ void json_deserialization_of_wrong_type_throws_correct_exception() throws IOExce when(httpResponse.getEntity()).thenReturn(new StringEntity(res)); // then - var e = assertThrows( - FmpHttpException.class, () -> client.get(typeRef(TestObject[].class), testUri, headers, params)); + var e = assertThrows(FmpHttpException.class, () -> client.get(TestObject.class, testUri, headers, params)); assertEquals( - "Deserialization failed for type [class [Ldev.sorn.fmp4j.TestObject;], uri [https://financialmodelingprep.com/stable], headers [{Content-Type=application/json}], queryParams [{apikey=AB****************************y6}]", + "Deserialization failed for type [TestObject], uri [https://financialmodelingprep.com/stable], headers [{Content-Type=application/json}], queryParams [{apikey=AB****************************y6}]", e.getMessage()); } @@ -187,10 +151,9 @@ void csv_deserialization_of_wrong_type_throws_correct_exception() throws IOExcep when(httpResponse.getEntity()).thenReturn(new StringEntity(res)); // then - var e = assertThrows( - FmpHttpException.class, () -> client.get(typeRef(TestObject[].class), testUri, headers, params)); + var e = assertThrows(FmpHttpException.class, () -> client.get(TestObject.class, testUri, headers, params)); assertEquals( - "Deserialization failed for type [class [Ldev.sorn.fmp4j.TestObject;], uri [https://financialmodelingprep.com/stable], headers [{Content-Type=text/csv}], queryParams [{apikey=AB****************************y6}]", + "Deserialization failed for type [TestObject], uri [https://financialmodelingprep.com/stable], headers [{Content-Type=text/csv}], queryParams [{apikey=AB****************************y6}]", e.getMessage()); } } diff --git a/src/test/java/dev/sorn/fmp4j/json/FmpJsonDeserializerTest.java b/src/test/java/dev/sorn/fmp4j/json/FmpJsonDeserializerTest.java index 510e41e..8a9498e 100644 --- a/src/test/java/dev/sorn/fmp4j/json/FmpJsonDeserializerTest.java +++ b/src/test/java/dev/sorn/fmp4j/json/FmpJsonDeserializerTest.java @@ -1,7 +1,6 @@ package dev.sorn.fmp4j.json; 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; @@ -20,25 +19,6 @@ void setUp() { deserializer = FMP_JSON_DESERIALIZER; } - @Test - void deserialize_object() { - // given - var json = - """ - { - "key": "key", - "object": { - "value": 42 - } - } - """; - // when - var obj = deserializer.deserialize(json, typeRef(TestObject.class)); - // then - assertEquals("key", obj.key()); - assertEquals(new TestObjectValue(42), obj.object()); - } - @Test void deserialize_array() { // given @@ -59,25 +39,16 @@ void deserialize_array() { } ] """; + // when - var obj = deserializer.deserialize(json, typeRef(TestObject[].class)); - // then - assertEquals(2, obj.length); - assertEquals("key3", obj[0].key()); - assertEquals("key7", obj[1].key()); - assertEquals(new TestObjectValue(28), obj[0].object()); - assertEquals(new TestObjectValue(42), obj[1].object()); - } + var obj = deserializer.deserialize(json, TestObject.class); - @Test - void deserialize_object_fails_on_malformed_json() { - // given - var malformedJson = "{"; - // when // then - var e = assertThrows( - FmpDeserializationException.class, - () -> FMP_JSON_DESERIALIZER.deserialize(malformedJson, typeRef(TestObject.class))); - assertEquals("Failed to deserialize JSON to 'dev.sorn.fmp4j.TestObject': {", e.getMessage()); + // then + assertEquals(2, obj.size()); + assertEquals("key3", obj.get(0).key()); + assertEquals("key7", obj.get(1).key()); + assertEquals(new TestObjectValue(28), obj.get(0).object()); + assertEquals(new TestObjectValue(42), obj.get(1).object()); } @Test @@ -87,33 +58,8 @@ void deserialize_array_fails_on_malformed_json() { // when // then var e = assertThrows( FmpDeserializationException.class, - () -> FMP_JSON_DESERIALIZER.deserialize(malformedJson, typeRef(TestObject[].class))); - assertEquals("Failed to deserialize JSON to 'dev.sorn.fmp4j.TestObject[]': [", e.getMessage()); - } - - @Test - void deserialize_object_fails_on_type_mismatch() { - // given - var mismatchedJson = - """ - { - "key": "key", - "object": "not_an_object" - } - """; - // when // then - var e = assertThrows( - FmpDeserializationException.class, - () -> FMP_JSON_DESERIALIZER.deserialize(mismatchedJson, typeRef(TestObject.class))); - assertEquals( - """ - Failed to deserialize JSON to 'dev.sorn.fmp4j.TestObject': { - "key": "key", - "object": "not_an_object" - } - """ - .replaceAll("\\s", ""), - e.getMessage().replaceAll("\\s", "")); + () -> FMP_JSON_DESERIALIZER.deserialize(malformedJson, TestObject.class)); + assertEquals("Failed to deserialize JSON to 'TestObject': [", e.getMessage()); } @Test @@ -128,10 +74,10 @@ void deserialize_array_fails_on_element_type_mismatch() { // when // then var e = assertThrows( FmpDeserializationException.class, - () -> FMP_JSON_DESERIALIZER.deserialize(invalidElementJson, typeRef(TestObject[].class))); + () -> FMP_JSON_DESERIALIZER.deserialize(invalidElementJson, TestObject.class)); assertEquals( """ - Failed to deserialize JSON to 'dev.sorn.fmp4j.TestObject[]': [ + Failed to deserialize JSON to 'TestObject': [ {"key": "valid", "object": {"value": 1}}, {"key": "invalid", "object": "not_an_object"} ] diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthServiceTest.java index 9ee9b72..6e2d5ed 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementGrowthServiceTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.params.provider.ValueSource; class FmpBalanceSheetStatementGrowthServiceTest extends HttpTest implements BalanceSheetStatementGrowthTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -73,7 +73,7 @@ void successful_download_with_optional_period_and_limit(String period) { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementServiceTest.java index d21408c..a4ab3bf 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementServiceTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.params.provider.ValueSource; class FmpBalanceSheetStatementServiceTest extends HttpTest implements BalanceSheetStatementTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -69,9 +69,9 @@ void successful_download() { var result = service.download(); // then - assertEquals(5, result.length); - assertEquals(anAnnualBalanceSheetStatement(), result[0]); - range(0, 5).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(5, result.size()); + assertEquals(anAnnualBalanceSheetStatement(), result.get(0)); + range(0, 5).forEach(i -> assertAllFieldsNonNull(result.get(i))); } @ParameterizedTest @@ -91,7 +91,7 @@ void successful_download_with_optional_period_and_limit(String period) { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmServiceTest.java index 2554977..2557a58 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpBalanceSheetStatementTtmServiceTest.java @@ -18,7 +18,7 @@ import org.junit.jupiter.api.Test; class FmpBalanceSheetStatementTtmServiceTest extends HttpTest implements BalanceSheetStatementTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -67,7 +67,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("capitalLeaseObligationsNonCurrent"))); + assertEquals(limit, result.size()); + range(0, limit) + .forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("capitalLeaseObligationsNonCurrent"))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpBulkBalanceSheetStatementServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpBulkBalanceSheetStatementServiceTest.java index 7e89842..d28de66 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpBulkBalanceSheetStatementServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpBulkBalanceSheetStatementServiceTest.java @@ -20,7 +20,7 @@ import org.junit.jupiter.params.provider.ValueSource; class FmpBulkBalanceSheetStatementServiceTest extends HttpTest implements BalanceSheetStatementTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -71,7 +71,7 @@ void successful_download_with_required_params(String periodString) { var result = service.download(); // then - assertEquals(2, result.length); - range(0, result.length).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(2, result.size()); + range(0, result.size()).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementGrowthServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementGrowthServiceTest.java index 59f8536..24ef816 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementGrowthServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementGrowthServiceTest.java @@ -1,15 +1,14 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.testResource; import static dev.sorn.fmp4j.types.FmpPeriod.period; import static dev.sorn.fmp4j.types.FmpYear.year; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_QUARTER; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_YEAR; -import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; +import dev.sorn.fmp4j.TestUtils; import dev.sorn.fmp4j.models.FmpCashFlowStatementGrowth; import dev.sorn.fmp4j.types.FmpPeriod; import dev.sorn.fmp4j.types.FmpYear; @@ -18,7 +17,7 @@ import org.junit.jupiter.api.Test; class FmpBulkCashFlowStatementGrowthServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -68,7 +67,7 @@ void successful_download() { var result = service.download(); // then - assertEquals(1, result.length); - range(0, result.length).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(1, result.size()); + result.forEach(TestUtils::assertAllFieldsNonNull); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementServiceTest.java index 19b93e3..4ae00a2 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpBulkCashFlowStatementServiceTest.java @@ -1,14 +1,13 @@ package dev.sorn.fmp4j.services; -import static dev.sorn.fmp4j.TestUtils.assertAllFieldsNonNull; import static dev.sorn.fmp4j.TestUtils.testResource; import static dev.sorn.fmp4j.types.FmpPeriod.period; import static dev.sorn.fmp4j.types.FmpYear.year; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_PERIOD; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_YEAR; -import static java.util.stream.IntStream.range; import static org.junit.jupiter.api.Assertions.assertEquals; +import dev.sorn.fmp4j.TestUtils; import dev.sorn.fmp4j.models.FmpCashFlowStatement; import dev.sorn.fmp4j.types.FmpPeriod; import dev.sorn.fmp4j.types.FmpYear; @@ -19,7 +18,7 @@ import org.junit.jupiter.params.provider.ValueSource; class FmpBulkCashFlowStatementServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -70,7 +69,7 @@ void successful_download_with_required_params(String periodString) { var result = service.download(); // then - assertEquals(2, result.length); - range(0, result.length).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(2, result.size()); + result.forEach(TestUtils::assertAllFieldsNonNull); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpBulkCompaniesServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpBulkCompaniesServiceTest.java index f34af43..9a7bd10 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpBulkCompaniesServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpBulkCompaniesServiceTest.java @@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test; class FmpBulkCompaniesServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -61,8 +61,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(1, result.length); - assertInstanceOf(FmpCompanies.class, result[0]); - assertAllFieldsNonNull(result[0]); + assertEquals(1, result.size()); + assertInstanceOf(FmpCompanies.class, result.get(0)); + assertAllFieldsNonNull(result.get(0)); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthServiceTest.java index 302a700..464b26b 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementGrowthServiceTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.params.provider.ValueSource; class FmpCashFlowStatementGrowthServiceTest extends HttpTest implements CashFlowStatementGrowthTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -72,7 +72,7 @@ void successful_download_with_optional_period_and_limit(String period) { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementServiceTest.java index 2f56a93..ca2aeb5 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementServiceTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.params.provider.ValueSource; class FmpCashFlowStatementServiceTest extends HttpTest implements CashFlowStatementTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -69,9 +69,9 @@ void successful_download() { var result = service.download(); // then - assertEquals(5, result.length); - assertEquals(anAnnualCashFlowStatement(), result[0]); - range(0, 5).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(5, result.size()); + assertEquals(anAnnualCashFlowStatement(), result.get(0)); + range(0, 5).forEach(i -> assertAllFieldsNonNull(result.get(i))); } @ParameterizedTest @@ -91,7 +91,7 @@ void successful_download_with_optional_period_and_limit(String period) { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmServiceTest.java index d7701e7..1a1d05f 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpCashFlowStatementTtmServiceTest.java @@ -17,7 +17,7 @@ import org.junit.jupiter.api.Test; class FmpCashFlowStatementTtmServiceTest extends HttpTest implements CashFlowStatementTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -66,7 +66,7 @@ void successful_download() { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpCompanyServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpCompanyServiceTest.java index 634e39c..30e4658 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpCompanyServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpCompanyServiceTest.java @@ -14,7 +14,7 @@ import org.junit.jupiter.api.Test; class FmpCompanyServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -62,8 +62,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(1, result.length); - assertInstanceOf(FmpCompany.class, result[0]); - assertAllFieldsNonNull(result[0]); + assertEquals(1, result.size()); + assertInstanceOf(FmpCompany.class, result.get(0)); + assertAllFieldsNonNull(result.get(0)); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpDividendServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpDividendServiceTest.java index d305d0f..9966af6 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpDividendServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpDividendServiceTest.java @@ -16,7 +16,7 @@ import org.junit.jupiter.api.Test; class FmpDividendServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -64,8 +64,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(4, result.length); - range(0, 4).forEach(i -> assertInstanceOf(FmpDividend.class, result[i])); - range(0, 4).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("declarationDate"))); + assertEquals(4, result.size()); + range(0, 4).forEach(i -> assertInstanceOf(FmpDividend.class, result.get(i))); + range(0, 4).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("declarationDate"))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpDividendsCalendarServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpDividendsCalendarServiceTest.java index 2db03ac..379fcb4 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpDividendsCalendarServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpDividendsCalendarServiceTest.java @@ -13,7 +13,7 @@ import org.junit.jupiter.api.Test; class FmpDividendsCalendarServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -59,8 +59,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(4, result.length); - range(0, 4).forEach(i -> assertInstanceOf(FmpDividendsCalendar.class, result[i])); - range(0, 4).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("declarationDate"))); + assertEquals(4, result.size()); + range(0, 4).forEach(i -> assertInstanceOf(FmpDividendsCalendar.class, result.get(i))); + range(0, 4).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("declarationDate"))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEarningServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEarningServiceTest.java index fd41806..5677edd 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEarningServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEarningServiceTest.java @@ -16,7 +16,7 @@ import org.junit.jupiter.api.Test; class FmpEarningServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -64,10 +64,10 @@ void successful_download() { var result = service.download(); // then - assertEquals(4, result.length); - range(0, 4).forEach(i -> assertInstanceOf(FmpEarning.class, result[i])); + assertEquals(4, result.size()); + range(0, 4).forEach(i -> assertInstanceOf(FmpEarning.class, result.get(i))); range(0, 4) .forEach(i -> assertAllFieldsNonNull( - result[i], Set.of("epsActual", "epsEstimated", "revenueActual", "revenueEstimated"))); + result.get(i), Set.of("epsActual", "epsEstimated", "revenueActual", "revenueEstimated"))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCalendarServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCalendarServiceTest.java index 17f3678..4292292 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCalendarServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCalendarServiceTest.java @@ -13,7 +13,7 @@ import org.junit.jupiter.api.Test; class FmpEarningsCalendarServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -59,10 +59,10 @@ void successful_download() { var result = service.download(); // then - assertEquals(4, result.length); - range(0, 4).forEach(i -> assertInstanceOf(FmpEarningsCalendar.class, result[i])); + assertEquals(4, result.size()); + range(0, 4).forEach(i -> assertInstanceOf(FmpEarningsCalendar.class, result.get(i))); range(0, 4) .forEach(i -> assertAllFieldsNonNull( - result[i], Set.of("epsActual", "epsEstimated", "revenueActual", "revenueEstimated"))); + result.get(i), Set.of("epsActual", "epsEstimated", "revenueActual", "revenueEstimated"))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptDatesServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptDatesServiceTest.java index 71d32ef..516543e 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptDatesServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptDatesServiceTest.java @@ -16,7 +16,7 @@ import org.junit.jupiter.api.Test; class FmpEarningsCallTranscriptDatesServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -64,8 +64,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(81, result.length); - range(0, 81).forEach(i -> assertInstanceOf(FmpEarningsCallTranscriptDate.class, result[i])); - range(0, 81).forEach(i -> assertAllFieldsNonNull(result[i], emptySet())); + assertEquals(81, result.size()); + range(0, 81).forEach(i -> assertInstanceOf(FmpEarningsCallTranscriptDate.class, result.get(i))); + range(0, 81).forEach(i -> assertAllFieldsNonNull(result.get(i), emptySet())); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptLatestServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptLatestServiceTest.java index 117a6d7..5acab2d 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptLatestServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptLatestServiceTest.java @@ -19,7 +19,7 @@ import org.junit.jupiter.api.Test; class FmpEarningsCallTranscriptLatestServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -69,8 +69,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(2, result.length); - range(0, 2).forEach(i -> assertInstanceOf(FmpEarningsCallTranscriptLatest.class, result[i])); - range(0, 2).forEach(i -> assertAllFieldsNonNull(result[i], emptySet())); + assertEquals(2, result.size()); + range(0, 2).forEach(i -> assertInstanceOf(FmpEarningsCallTranscriptLatest.class, result.get(i))); + range(0, 2).forEach(i -> assertAllFieldsNonNull(result.get(i), emptySet())); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptListServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptListServiceTest.java index 8bb2027..266f543 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptListServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptListServiceTest.java @@ -13,7 +13,7 @@ import org.junit.jupiter.api.Test; class FmpEarningsCallTranscriptListServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -59,8 +59,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(4, result.length); - range(0, 4).forEach(i -> assertInstanceOf(FmpEarningsCallTranscriptList.class, result[i])); - range(0, 4).forEach(i -> assertAllFieldsNonNull(result[i], emptySet())); + assertEquals(4, result.size()); + range(0, 4).forEach(i -> assertInstanceOf(FmpEarningsCallTranscriptList.class, result.get(i))); + range(0, 4).forEach(i -> assertAllFieldsNonNull(result.get(i), emptySet())); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptServiceTest.java index a8c7996..2e63817 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEarningsCallTranscriptServiceTest.java @@ -24,7 +24,7 @@ import org.junit.jupiter.api.Test; class FmpEarningsCallTranscriptServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -82,8 +82,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(1, result.length); - range(0, 1).forEach(i -> assertInstanceOf(FmpEarningsCallTranscript.class, result[i])); - range(0, 1).forEach(i -> assertAllFieldsNonNull(result[i], emptySet())); + assertEquals(1, result.size()); + range(0, 1).forEach(i -> assertInstanceOf(FmpEarningsCallTranscript.class, result.get(i))); + range(0, 1).forEach(i -> assertAllFieldsNonNull(result.get(i), emptySet())); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesServiceTest.java index 2d366ed..b60b60f 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEnterpriseValuesServiceTest.java @@ -22,7 +22,7 @@ import org.junit.jupiter.params.provider.ValueSource; class FmpEnterpriseValuesServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -76,8 +76,8 @@ void successful_download(String period) { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertInstanceOf(FmpEnterpriseValue.class, result[i])); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i], emptySet())); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertInstanceOf(FmpEnterpriseValue.class, result.get(i))); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i), emptySet())); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureServiceTest.java index 5021902..5c30fda 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfAssetExposureServiceTest.java @@ -15,7 +15,7 @@ import org.junit.jupiter.api.Test; class FmpEtfAssetExposureServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -63,8 +63,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(28, result.length); - range(0, 28).forEach(i -> assertInstanceOf(FmpEtfAssetExposure.class, result[i])); - range(0, 28).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(28, result.size()); + range(0, 28).forEach(i -> assertInstanceOf(FmpEtfAssetExposure.class, result.get(i))); + range(0, 28).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingServiceTest.java index 30beec0..cb6461b 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfCountryWeightingServiceTest.java @@ -15,7 +15,7 @@ import org.junit.jupiter.api.Test; class FmpEtfCountryWeightingServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -63,8 +63,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(6, result.length); - range(0, 6).forEach(i -> assertInstanceOf(FmpEtfCountryWeighting.class, result[i])); - range(0, 6).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(6, result.size()); + range(0, 6).forEach(i -> assertInstanceOf(FmpEtfCountryWeighting.class, result.get(i))); + range(0, 6).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfHoldingServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfHoldingServiceTest.java index 2239e5d..fa6b075 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfHoldingServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfHoldingServiceTest.java @@ -16,7 +16,7 @@ import org.junit.jupiter.api.Test; class FmpEtfHoldingServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -64,8 +64,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(103, result.length); - range(0, 103).forEach(i -> assertInstanceOf(FmpEtfHolding.class, result[i])); - range(0, 103).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("isin"))); + assertEquals(103, result.size()); + range(0, 103).forEach(i -> assertInstanceOf(FmpEtfHolding.class, result.get(i))); + range(0, 103).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("isin"))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfInfoServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfInfoServiceTest.java index 2ae9949..b03d76e 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfInfoServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfInfoServiceTest.java @@ -14,7 +14,7 @@ import org.junit.jupiter.api.Test; class FmpEtfInfoServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -62,8 +62,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(1, result.length); - assertInstanceOf(FmpEtfInfo.class, result[0]); - assertAllFieldsNonNull(result[0]); + assertEquals(1, result.size()); + assertInstanceOf(FmpEtfInfo.class, result.get(0)); + assertAllFieldsNonNull(result.get(0)); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfListServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfListServiceTest.java index e55ee98..44097cb 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfListServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfListServiceTest.java @@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test; class FmpEtfListServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -58,8 +58,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(4, result.length); - range(0, 4).forEach(i -> assertInstanceOf(FmpEtf.class, result[i])); - range(0, 4).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(4, result.size()); + range(0, 4).forEach(i -> assertInstanceOf(FmpEtf.class, result.get(i))); + range(0, 4).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingServiceTest.java index 11937d1..ef0c9da 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpEtfSectorWeightingServiceTest.java @@ -15,7 +15,7 @@ import org.junit.jupiter.api.Test; class FmpEtfSectorWeightingServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -63,8 +63,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(11, result.length); - range(0, 11).forEach(i -> assertInstanceOf(FmpEtfSectorWeighting.class, result[i])); - range(0, 11).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(11, result.size()); + range(0, 11).forEach(i -> assertInstanceOf(FmpEtfSectorWeighting.class, result.get(i))); + range(0, 11).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpFinancialGrowthServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpFinancialGrowthServiceTest.java index 8d569b4..be56e0e 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpFinancialGrowthServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpFinancialGrowthServiceTest.java @@ -22,7 +22,7 @@ import org.junit.jupiter.params.provider.ValueSource; class FmpFinancialGrowthServiceTest extends HttpTest implements FinancialGrowthTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -72,10 +72,10 @@ void successful_download(String period) { var result = service.download(); // then - assertEquals(limit, result.length); + assertEquals(limit, result.size()); range(0, limit) .forEach(i -> assertAllFieldsNonNull( - result[i], + result.get(i), Set.of( "ebitdaGrowth", "growthCapitalExpenditure", diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedServiceTest.java index dc44ce2..4ad9a27 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpFinancialStatementAsReportedServiceTest.java @@ -80,8 +80,8 @@ void successful_download(String type, FmpSymbol symbol, String period) { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("reportedCurrency"))); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("reportedCurrency"))); } static Stream reportCompanyProvider() { diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpFullQuoteServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpFullQuoteServiceTest.java index a792c0f..47fcb34 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpFullQuoteServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpFullQuoteServiceTest.java @@ -4,13 +4,14 @@ import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import static java.lang.String.format; -import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import dev.sorn.fmp4j.QuoteTestData; import dev.sorn.fmp4j.models.FmpFullQuote; import dev.sorn.fmp4j.types.FmpSymbol; +import java.util.List; import java.util.Map; import java.util.function.BiConsumer; import java.util.function.Consumer; @@ -18,7 +19,7 @@ import org.junit.jupiter.api.Test; class FmpFullQuoteServiceTest extends HttpTest implements QuoteTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -66,14 +67,14 @@ void successful_download() { var result = service.download(); // then - var expected = new FmpFullQuote[] {aFullQuote()}; - assertArrayEquals(expected, result); + var expected = List.of(aFullQuote()); + assertThat(expected).containsExactlyElementsOf(result); } @Test void missing_symbol_throws() { // given // when - Consumer> f = FmpService::download; + Consumer> f = FmpService::download; // then var e = assertThrows(FmpServiceException.class, () -> f.accept(service)); diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalChartServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalChartServiceTest.java index 32c27e7..a515ee9 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalChartServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalChartServiceTest.java @@ -93,8 +93,8 @@ void successful_download(String interval) { var result = service.download(); // then - assertEquals(2, result.length); - range(0, 2).forEach(i -> assertInstanceOf(FmpHistoricalChart.class, result[i])); - range(0, 2).forEach(i -> assertAllFieldsNonNull(result[i], emptySet())); + assertEquals(2, result.size()); + range(0, 2).forEach(i -> assertInstanceOf(FmpHistoricalChart.class, result.get(i))); + range(0, 2).forEach(i -> assertAllFieldsNonNull(result.get(i), emptySet())); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullServiceTest.java index 7f226cc..59d250b 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodFullServiceTest.java @@ -19,7 +19,7 @@ import org.junit.jupiter.api.Test; class FmpHistoricalPriceEodFullServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -71,8 +71,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(5, result.length); - range(0, 5).forEach(i -> assertInstanceOf(FmpHistoricalPriceEodFull.class, result[i])); - range(0, 5).forEach(i -> assertAllFieldsNonNull(result[i], emptySet())); + assertEquals(5, result.size()); + range(0, 5).forEach(i -> assertInstanceOf(FmpHistoricalPriceEodFull.class, result.get(i))); + range(0, 5).forEach(i -> assertAllFieldsNonNull(result.get(i), emptySet())); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightServiceTest.java index 91509b2..f2d7f72 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpHistoricalPriceEodLightServiceTest.java @@ -19,7 +19,7 @@ import org.junit.jupiter.api.Test; class FmpHistoricalPriceEodLightServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -71,8 +71,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(5, result.length); - range(0, 5).forEach(i -> assertInstanceOf(FmpHistoricalPriceEodLight.class, result[i])); - range(0, 5).forEach(i -> assertAllFieldsNonNull(result[i], emptySet())); + assertEquals(5, result.size()); + range(0, 5).forEach(i -> assertInstanceOf(FmpHistoricalPriceEodLight.class, result.get(i))); + range(0, 5).forEach(i -> assertAllFieldsNonNull(result.get(i), emptySet())); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthServiceTest.java index cdd038d..6a60f12 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementGrowthServiceTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.params.provider.ValueSource; class FmpIncomeStatementGrowthServiceTest extends HttpTest implements IncomeStatementGrowthTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -72,7 +72,7 @@ void successful_download_with_optional_period_and_limit(String period) { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementServiceTest.java index 718125b..6974ed6 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementServiceTest.java @@ -24,7 +24,7 @@ import org.junit.jupiter.params.provider.CsvSource; class FmpIncomeStatementServiceTest extends HttpTest implements IncomeStatementTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -72,9 +72,9 @@ void successful_download() { var result = service.download(); // then - assertEquals(5, result.length); - assertEquals(anAnnualIncomeStatement(), result[0]); - range(0, 5).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(5, result.size()); + assertEquals(anAnnualIncomeStatement(), result.get(0)); + range(0, 5).forEach(i -> assertAllFieldsNonNull(result.get(i))); } @ParameterizedTest @@ -93,7 +93,7 @@ void successful_download_with_optional_period_and_limit(String symbol, String pe var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("cik"))); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("cik"))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmServiceTest.java index a28d909..c9bfd02 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIncomeStatementTtmServiceTest.java @@ -17,7 +17,7 @@ import org.junit.jupiter.api.Test; class FmpIncomeStatementTtmServiceTest extends HttpTest implements IncomeStatementTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -66,7 +66,7 @@ void successful_download() { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIposCalendarServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIposCalendarServiceTest.java index b412284..523bc62 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIposCalendarServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIposCalendarServiceTest.java @@ -16,7 +16,7 @@ import org.junit.jupiter.api.Test; public class FmpIposCalendarServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -62,8 +62,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(2, result.length); - range(0, 2).forEach(i -> assertInstanceOf(FmpIposCalendar.class, result[i])); - range(0, 2).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("shares", "priceRange", "marketCap"))); + assertEquals(2, result.size()); + range(0, 2).forEach(i -> assertInstanceOf(FmpIposCalendar.class, result.get(i))); + range(0, 2).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("shares", "priceRange", "marketCap"))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIposDisclosureServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIposDisclosureServiceTest.java index 45b5e41..3131063 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIposDisclosureServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIposDisclosureServiceTest.java @@ -16,7 +16,7 @@ import org.junit.jupiter.api.Test; public class FmpIposDisclosureServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -62,8 +62,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(2, result.length); - range(0, 2).forEach(i -> assertInstanceOf(FmpIposDisclosure.class, result[i])); - range(0, 2).forEach(i -> assertAllFieldsNonNull(result[i], Set.of())); + assertEquals(2, result.size()); + range(0, 2).forEach(i -> assertInstanceOf(FmpIposDisclosure.class, result.get(i))); + range(0, 2).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of())); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpIposProspectusServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpIposProspectusServiceTest.java index 001bba7..9898cd5 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpIposProspectusServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpIposProspectusServiceTest.java @@ -16,7 +16,7 @@ import org.junit.jupiter.api.Test; public class FmpIposProspectusServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -62,8 +62,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(2, result.length); - range(0, 2).forEach(i -> assertInstanceOf(FmpIposProspectus.class, result[i])); - range(0, 2).forEach(i -> assertAllFieldsNonNull(result[i], Set.of())); + assertEquals(2, result.size()); + range(0, 2).forEach(i -> assertInstanceOf(FmpIposProspectus.class, result.get(i))); + range(0, 2).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of())); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricServiceTest.java index 80c5671..1584d31 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricServiceTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.params.provider.ValueSource; public class FmpKeyMetricServiceTest extends HttpTest implements KeyMetricTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -69,9 +69,9 @@ void successful_download() { var result = service.download(); // then - assertEquals(5, result.length); - assertEquals(anAnnualKeyMetric(), result[0]); - range(0, 5).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(5, result.size()); + assertEquals(anAnnualKeyMetric(), result.get(0)); + range(0, 5).forEach(i -> assertAllFieldsNonNull(result.get(i))); } @ParameterizedTest @@ -90,7 +90,7 @@ void successful_download_with_optional_period_and_limit(String period) { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmServiceTest.java index 0501044..cf16224 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpKeyMetricTtmServiceTest.java @@ -13,7 +13,7 @@ import org.junit.jupiter.api.Test; public class FmpKeyMetricTtmServiceTest extends HttpTest implements KeyMetricTtmTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -61,7 +61,7 @@ void successful_download() { var result = service.download(); // then - assertEquals(1, result.length); - assertEquals(aTtmKeyMetric(), result[0]); + assertEquals(1, result.size()); + assertEquals(aTtmKeyMetric(), result.get(0)); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpNewsServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpNewsServiceTest.java index b0ad0c0..45a0212 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpNewsServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpNewsServiceTest.java @@ -86,7 +86,7 @@ void successful_download(String type, FmpSymbol symbol) { var result = service.download(); // then - assertEquals(2, result.length); - range(0, 2).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(2, result.size()); + range(0, 2).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpPartialQuoteServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpPartialQuoteServiceTest.java index 4f0f0de..5ad2e61 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpPartialQuoteServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpPartialQuoteServiceTest.java @@ -4,13 +4,14 @@ import static dev.sorn.fmp4j.types.FmpSymbol.symbol; import static dev.sorn.fmp4j.utils.FmpParameters.PARAM_SYMBOL; import static java.lang.String.format; -import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import dev.sorn.fmp4j.QuoteTestData; import dev.sorn.fmp4j.models.FmpPartialQuote; import dev.sorn.fmp4j.types.FmpSymbol; +import java.util.List; import java.util.Map; import java.util.function.BiConsumer; import java.util.function.Consumer; @@ -18,7 +19,7 @@ import org.junit.jupiter.api.Test; class FmpPartialQuoteServiceTest extends HttpTest implements QuoteTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -66,14 +67,14 @@ void successful_download() { var result = service.download(); // then - var expected = new FmpPartialQuote[] {aPartialQuote()}; - assertArrayEquals(expected, result); + var expected = List.of(aPartialQuote()); + assertThat(expected).containsExactlyElementsOf(expected); } @Test void missing_symbol_throws() { // given // when - Consumer> f = FmpService::download; + Consumer> f = FmpService::download; // then var e = assertThrows(FmpServiceException.class, () -> f.accept(service)); diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpRatioServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpRatioServiceTest.java index 04f4cbc..074f4ec 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpRatioServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpRatioServiceTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.params.provider.ValueSource; class FmpRatioServiceTest extends HttpTest implements RatioTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -69,9 +69,9 @@ void successful_download() { var result = service.download(); // then - assertEquals(5, result.length); - assertEquals(anAnnualRatio(), result[0]); - range(0, 5).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(5, result.size()); + assertEquals(anAnnualRatio(), result.get(0)); + range(0, 5).forEach(i -> assertAllFieldsNonNull(result.get(i))); } @ParameterizedTest @@ -90,7 +90,7 @@ void successful_download_with_optional_period_and_limit(String period) { var result = service.download(); // then - assertEquals(limit, result.length); - range(0, limit).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(limit, result.size()); + range(0, limit).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpRatioTtmServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpRatioTtmServiceTest.java index 9c999ff..f6c3c44 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpRatioTtmServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpRatioTtmServiceTest.java @@ -13,7 +13,7 @@ import org.junit.jupiter.api.Test; class FmpRatioTtmServiceTest extends HttpTest implements RatioTtmTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -61,7 +61,7 @@ void successful_download() { var result = service.download(); // then - assertEquals(1, result.length); - assertEquals(aTtmRatio(), result[0]); + assertEquals(1, result.size()); + assertEquals(aTtmRatio(), result.get(0)); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationServiceTest.java index f4d7871..1d541a9 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpRevenueGeographicSegmentationServiceTest.java @@ -22,7 +22,7 @@ public class FmpRevenueGeographicSegmentationServiceTest extends HttpTest implements RevenueGeographicSegmentationTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -70,9 +70,9 @@ void successful_download() { var result = service.download(); // then - assertEquals(15, result.length); - range(0, 15).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("reportedCurrency"))); - assertEquals(aRevenueGeographicSegmentation(), result[0]); + assertEquals(15, result.size()); + range(0, 15).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("reportedCurrency"))); + assertEquals(aRevenueGeographicSegmentation(), result.get(0)); } @Test @@ -93,8 +93,8 @@ void successful_download_annual_flat() { var result = service.download(); // then - assertEquals(15, result.length); - range(0, 15).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("reportedCurrency"))); + assertEquals(15, result.size()); + range(0, 15).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("reportedCurrency"))); } @Test @@ -115,7 +115,7 @@ void successful_download_quarter_flat() { var result = service.download(); // then - assertEquals(59, result.length); - range(0, 59).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("reportedCurrency"))); + assertEquals(59, result.size()); + range(0, 59).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("reportedCurrency"))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationServiceTest.java index 2986b31..d5ff8ec 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpRevenueProductSegmentationServiceTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.Test; class FmpRevenueProductSegmentationServiceTest extends HttpTest implements RevenueProductSegmentationTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -69,9 +69,9 @@ void successful_download() { var result = service.download(); // then - assertEquals(15, result.length); - range(0, 15).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("reportedCurrency"))); - assertEquals(aRevenueProductSegmentation(), result[0]); + assertEquals(15, result.size()); + range(0, 15).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("reportedCurrency"))); + assertEquals(aRevenueProductSegmentation(), result.get(0)); } @Test @@ -92,8 +92,8 @@ void successful_download_annual_flat() { var result = service.download(); // then - assertEquals(15, result.length); - range(0, 15).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("reportedCurrency"))); + assertEquals(15, result.size()); + range(0, 15).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("reportedCurrency"))); } @Test @@ -114,7 +114,7 @@ void successful_download_quarter_flat() { var result = service.download(); // then - assertEquals(42, result.length); - range(0, 42).forEach(i -> assertAllFieldsNonNull(result[i], Set.of("reportedCurrency"))); + assertEquals(42, result.size()); + range(0, 42).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of("reportedCurrency"))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCikServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCikServiceTest.java index a540ed5..73c20a1 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCikServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCikServiceTest.java @@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test; public class FmpSearchByCikServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -60,8 +60,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(1, result.length); - assertInstanceOf(FmpSearchByCik.class, result[0]); - assertAllFieldsNonNull(result[0]); + assertEquals(1, result.size()); + assertInstanceOf(FmpSearchByCik.class, result.get(0)); + assertAllFieldsNonNull(result.get(0)); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCusipServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCusipServiceTest.java index 2e1801b..ff41e53 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCusipServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByCusipServiceTest.java @@ -14,7 +14,7 @@ import org.junit.jupiter.api.Test; class FmpSearchByCusipServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -62,8 +62,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(3, result.length); - range(0, 3).forEach(i -> assertInstanceOf(FmpSearchByCusip.class, result[i])); - range(0, 3).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(3, result.size()); + range(0, 3).forEach(i -> assertInstanceOf(FmpSearchByCusip.class, result.get(i))); + range(0, 3).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByIsinServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByIsinServiceTest.java index 06f9410..29751e2 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByIsinServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByIsinServiceTest.java @@ -14,7 +14,7 @@ import org.junit.jupiter.api.Test; class FmpSearchByIsinServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -62,8 +62,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(3, result.length); - range(0, 3).forEach(i -> assertInstanceOf(FmpSearchByIsin.class, result[i])); - range(0, 3).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(3, result.size()); + range(0, 3).forEach(i -> assertInstanceOf(FmpSearchByIsin.class, result.get(i))); + range(0, 3).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByNameServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByNameServiceTest.java index 372b7fe..9d5339a 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchByNameServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchByNameServiceTest.java @@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test; class FmpSearchByNameServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -60,8 +60,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(5, result.length); - range(0, 5).forEach(i -> assertInstanceOf(FmpSearchByName.class, result[i])); - range(0, 5).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(5, result.size()); + range(0, 5).forEach(i -> assertInstanceOf(FmpSearchByName.class, result.get(i))); + range(0, 5).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchBySymbolServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchBySymbolServiceTest.java index 2864649..a0ceb3f 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchBySymbolServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchBySymbolServiceTest.java @@ -13,7 +13,7 @@ import org.junit.jupiter.api.Test; class FmpSearchBySymbolServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -61,7 +61,7 @@ void ignores_exchange_full_name_in_response() { var result = service.download(); // then - assertEquals("Euronext Amsterdam", result[0].exchange().fullName()); + assertEquals("Euronext Amsterdam", result.get(0).exchange().fullName()); } @Test @@ -78,8 +78,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(1, result.length); - assertInstanceOf(FmpSearchBySymbol.class, result[0]); - assertAllFieldsNonNull(result[0]); + assertEquals(1, result.size()); + assertInstanceOf(FmpSearchBySymbol.class, result.get(0)); + assertAllFieldsNonNull(result.get(0)); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesServiceTest.java index f264d67..2476c2b 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSearchPressReleasesServiceTest.java @@ -14,7 +14,7 @@ import org.junit.jupiter.api.Test; class FmpSearchPressReleasesServiceTest extends HttpTest implements FmpSearchPressReleaseTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -62,9 +62,9 @@ void successful_download() { var result = service.download(); // then - assertEquals(3, result.length); - assertAllFieldsNonNull(result[0]); - assertEquals("V", result[0].symbol().value()); - assertEquals("Visa Reports Fiscal Q4 2024 Earnings", result[0].title()); + assertEquals(3, result.size()); + assertAllFieldsNonNull(result.get(0)); + assertEquals("V", result.get(0).symbol().value()); + assertEquals("Visa Reports Fiscal Q4 2024 Earnings", result.get(0).title()); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolServiceTest.java index 1e8e94c..8613ed3 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSecFilingsSearchBySymbolServiceTest.java @@ -24,7 +24,7 @@ import org.junit.jupiter.api.Test; class FmpSecFilingsSearchBySymbolServiceTest extends HttpTest implements FinancialGrowthTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -83,7 +83,7 @@ void successful_download() { var result = service.download(); // then - assertEquals(limit.value(), result.length); - range(0, limit.value()).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(limit.value(), result.size()); + range(0, limit.value()).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpServiceTest.java index 7a4b6c2..dcd0686 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpServiceTest.java @@ -13,7 +13,6 @@ import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.openMocks; -import com.fasterxml.jackson.core.type.TypeReference; import dev.sorn.fmp4j.cfg.FmpConfig; import dev.sorn.fmp4j.http.FmpHttpClient; import dev.sorn.fmp4j.types.FmpApiKey; @@ -172,7 +171,7 @@ void should_not_throw_missing_required_params() { // Concrete implementation for testing private static class ConcreteFmpService extends FmpService { public ConcreteFmpService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, new TypeReference() {}); + super(cfg, http, String.class); } @Override @@ -193,7 +192,7 @@ protected String relativeUrl() { private static class MultiRequiredFmpService extends FmpService { public MultiRequiredFmpService(FmpConfig cfg, FmpHttpClient http) { - super(cfg, http, new TypeReference() {}); + super(cfg, http, String.class); } @Override diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSplitServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSplitServiceTest.java index a7e26b4..018b173 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSplitServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSplitServiceTest.java @@ -14,7 +14,7 @@ import org.junit.jupiter.api.Test; class FmpSplitServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -61,11 +61,11 @@ void successful_download() { var result = service.download(); // then - assertEquals(1, result.length); - assertInstanceOf(FmpSplit.class, result[0]); - assertAllFieldsNonNull(result[0], Set.of()); - assertEquals(symbol("AAPL"), result[0].symbol()); - assertEquals(4, result[0].numerator()); - assertEquals(1, result[0].denominator()); + assertEquals(1, result.size()); + assertInstanceOf(FmpSplit.class, result.get(0)); + assertAllFieldsNonNull(result.get(0), Set.of()); + assertEquals(symbol("AAPL"), result.get(0).symbol()); + assertEquals(4, result.get(0).numerator()); + assertEquals(1, result.get(0).denominator()); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpSplitsCalendarServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpSplitsCalendarServiceTest.java index 76c8e71..44803aa 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpSplitsCalendarServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpSplitsCalendarServiceTest.java @@ -13,7 +13,7 @@ import org.junit.jupiter.api.Test; class FmpSplitsCalendarServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -58,11 +58,11 @@ void successful_download() { var result = service.download(); // then - assertEquals(2, result.length); - range(0, 2).forEach(i -> assertInstanceOf(FmpSplitsCalendar.class, result[i])); - range(0, 2).forEach(i -> assertAllFieldsNonNull(result[i], Set.of())); - assertEquals(symbol("NVDA"), result[0].symbol()); - assertEquals(10, result[0].numerator()); - assertEquals(1, result[0].denominator()); + assertEquals(2, result.size()); + range(0, 2).forEach(i -> assertInstanceOf(FmpSplitsCalendar.class, result.get(i))); + range(0, 2).forEach(i -> assertAllFieldsNonNull(result.get(i), Set.of())); + assertEquals(symbol("NVDA"), result.get(0).symbol()); + assertEquals(10, result.get(0).numerator()); + assertEquals(1, result.get(0).denominator()); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpStockListServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpStockListServiceTest.java index 98e4655..9fa0a3e 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpStockListServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpStockListServiceTest.java @@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test; class FmpStockListServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -58,9 +58,9 @@ void successful_download() { var result = service.download(); // then - assertEquals(2, result.length); - range(0, 2).forEach(i -> assertInstanceOf(FmpStock.class, result[i])); - range(0, 2).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(2, result.size()); + range(0, 2).forEach(i -> assertInstanceOf(FmpStock.class, result.get(i))); + range(0, 2).forEach(i -> assertAllFieldsNonNull(result.get(i))); } @Test @@ -75,8 +75,8 @@ void partial_successful_download() { var result = service.download(); // then - assertEquals(2, result.length); - range(0, 2).forEach(i -> assertInstanceOf(FmpStock.class, result[i])); - range(0, 2).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(2, result.size()); + range(0, 2).forEach(i -> assertInstanceOf(FmpStock.class, result.get(i))); + range(0, 2).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpStockPriceChangeServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpStockPriceChangeServiceTest.java index 6578cb2..9382ffe 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpStockPriceChangeServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpStockPriceChangeServiceTest.java @@ -13,7 +13,7 @@ import org.junit.jupiter.api.Test; class FmpStockPriceChangeServiceTest extends HttpTest implements StockPriceChangeTestData { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -61,7 +61,7 @@ void successful_download() { var result = service.download(); // then - assertEquals(1, result.length); - assertEquals(aStockPriceChange(), result[0]); + assertEquals(1, result.size()); + assertEquals(aStockPriceChange(), result.get(0)); } } diff --git a/src/test/java/dev/sorn/fmp4j/services/FmpTreasuryRatesServiceTest.java b/src/test/java/dev/sorn/fmp4j/services/FmpTreasuryRatesServiceTest.java index 1ed9e76..97391c8 100644 --- a/src/test/java/dev/sorn/fmp4j/services/FmpTreasuryRatesServiceTest.java +++ b/src/test/java/dev/sorn/fmp4j/services/FmpTreasuryRatesServiceTest.java @@ -15,7 +15,7 @@ import org.junit.jupiter.api.Test; class FmpTreasuryRatesServiceTest extends HttpTest { - private FmpService service; + private FmpService service; @BeforeEach void setup() { @@ -65,8 +65,8 @@ void successful_download() { var result = service.download(); // then - assertEquals(2, result.length); - range(0, 2).forEach(i -> assertInstanceOf(FmpTreasuryRate.class, result[i])); - range(0, 2).forEach(i -> assertAllFieldsNonNull(result[i])); + assertEquals(2, result.size()); + range(0, 2).forEach(i -> assertInstanceOf(FmpTreasuryRate.class, result.get(i))); + range(0, 2).forEach(i -> assertAllFieldsNonNull(result.get(i))); } } diff --git a/src/test/java/dev/sorn/fmp4j/types/FmpSymbolTest.java b/src/test/java/dev/sorn/fmp4j/types/FmpSymbolTest.java index 9172494..1ac0811 100644 --- a/src/test/java/dev/sorn/fmp4j/types/FmpSymbolTest.java +++ b/src/test/java/dev/sorn/fmp4j/types/FmpSymbolTest.java @@ -4,11 +4,9 @@ import static dev.sorn.fmp4j.TestUtils.serialize; import static dev.sorn.fmp4j.TestUtils.testResource; 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; import static java.lang.String.format; -import static java.util.Arrays.stream; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -226,10 +224,10 @@ void check_all_symbols() { // given var res = testResource("stable/financial-statement-symbol-list/full.json"); - var symbols = FMP_JSON_DESERIALIZER.deserialize(res, typeRef(String[].class)); + var symbols = FMP_JSON_DESERIALIZER.deserialize(res, String.class); var failedSymbols = new ArrayList(); - stream(symbols).forEach(symbol -> { + symbols.forEach(symbol -> { try { symbol(symbol); } catch (Exception e) {