From 8a7cd8fcf85ced5505beeac76583bf159c3df123 Mon Sep 17 00:00:00 2001 From: Sean Kessler Date: Thu, 7 Mar 2024 22:56:00 -0500 Subject: [PATCH] Unit test for TOR --- .../.vs/MarketDataUnitTests/v16/.suo | Bin 176640 -> 176640 bytes .../v16/TestStore/0/testlog.manifest | Bin 24 -> 0 bytes MarketDataUnitTests/App.config | 4 +- MarketDataUnitTests/MarketDataFeedTests.cs | 63 ++++++++++++------ 4 files changed, 46 insertions(+), 21 deletions(-) delete mode 100644 MarketDataUnitTests/.vs/MarketDataUnitTests/v16/TestStore/0/testlog.manifest diff --git a/MarketDataUnitTests/.vs/MarketDataUnitTests/v16/.suo b/MarketDataUnitTests/.vs/MarketDataUnitTests/v16/.suo index a7f22bee839b5293efdf6d22c474df1fe6f8e6d9..fdb8501cf09ee124c229b238f189ccc344673377 100644 GIT binary patch delta 10817 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 delta 9015 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 diff --git a/MarketDataUnitTests/.vs/MarketDataUnitTests/v16/TestStore/0/testlog.manifest b/MarketDataUnitTests/.vs/MarketDataUnitTests/v16/TestStore/0/testlog.manifest deleted file mode 100644 index 9b77aab692da58c4424b9e104ae8fc3ffaeab699..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24 bcmXR;&-W=QP7PsZU| - + - + diff --git a/MarketDataUnitTests/MarketDataFeedTests.cs b/MarketDataUnitTests/MarketDataFeedTests.cs index 0e41e20..691897e 100644 --- a/MarketDataUnitTests/MarketDataFeedTests.cs +++ b/MarketDataUnitTests/MarketDataFeedTests.cs @@ -6,6 +6,8 @@ using MarketData.Utils; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Generic; +using System.Linq; +using System.Threading; namespace MarketDataUnitTests { @@ -13,19 +15,35 @@ namespace MarketDataUnitTests public class MarketDataFeedTests { +// This test is for the TOT Feed [TestMethod] - public void ETFHoldsingsYahooRetrieval() + public void TORFeedRetrieval() { - String etfSymbol="ACWX"; - ETFHoldings etfHoldings=MarketDataHelper.GetETFHoldings(etfSymbol); - Assert.IsTrue(null!=etfHoldings && etfHoldings.Count>0); + bool result = MarketDataHelper.GetWorldTime(); + Assert.IsTrue(result,"TORFeedFailed"); + } + + + [TestMethod] + public void ETFHoldingsYahooRetrieval() + { + String[] etfSymbols={"JFNNX","ACWX","ACES","BBH"}; + List results = new List(); + + foreach(String etfSymbol in etfSymbols) + { + results.Add(MarketDataHelper.GetETFHoldings(etfSymbol)); + try{Thread.Sleep(500);}catch(Exception){;} + } + Assert.IsTrue(results.Any(x => x!=null),String.Format("{0} items failed.",etfSymbols.Length)); } [TestMethod] - public void ConsumerPriceIndexBureauOfLaborStatisticsRetrieval() + public void LatestPriceXXXRetrieval() { - PriceIndices priceIndices = MarketDataHelper.GetConsumerPriceIndices(); - Assert.IsTrue(null!=priceIndices && priceIndices.Count>0); + String symbol="ACWX"; + Price price=MarketDataHelper.GetLatestPriceGoogle(symbol); + Assert.IsTrue(null!=price && price.IsValid); } [TestMethod] @@ -37,8 +55,23 @@ namespace MarketDataUnitTests Assert.IsTrue(price.IsValid,"Invalid Price"); } + [TestMethod] + public void LatestPriceBigChartsRetrieval() + { + String symbol="AAPL"; + Price price=MarketDataHelper.GetLatestPriceBigCharts(symbol); + Assert.IsTrue(null!=price,"No Price"); + Assert.IsTrue(price.IsValid,"Invalid Price"); + } + + [TestMethod] + public void ConsumerPriceIndexBureauOfLaborStatisticsRetrieval() + { + PriceIndices priceIndices = MarketDataHelper.GetConsumerPriceIndices(); + Assert.IsTrue(null!=priceIndices && priceIndices.Count>0); + } + - // This test only passes when the web proxy is bypassed // Yahoo Fundamental feed is very poor quality and lots of misses. It's a last resort. [TestMethod] public void FundamentalYahooRetrieval() @@ -46,7 +79,7 @@ namespace MarketDataUnitTests String symbol = "AAPL"; Fundamental fundamental=MarketDataHelper.GetFundamental(symbol); Assert.IsTrue(null!=fundamental); -// Assert.IsTrue(!Utility.IsEpoch(fundamental.NextEarningsDate),"NextEarningsDate"); + Assert.IsTrue(!Utility.IsEpoch(fundamental.NextEarningsDate),"NextEarningsDate"); // Assert.IsTrue(!double.IsNaN(fundamental.Beta),"Beta"); Assert.IsTrue(!double.IsNaN(fundamental.Low52),"Low52"); Assert.IsTrue(!double.IsNaN(fundamental.High52),"High52"); @@ -61,7 +94,7 @@ namespace MarketDataUnitTests // Assert.IsTrue(!double.IsNaN(fundamental.TotalDebt),"TotalDebt"); // Assert.IsTrue(!double.IsNaN(fundamental.SharesOutstanding),"SharesOutstanding"); // Assert.IsTrue(!double.IsNaN(fundamental.Revenue),"Revenue"); - Assert.IsTrue(!double.IsNaN(fundamental.RevenuePerShare),"RevenuePerShare"); +// Assert.IsTrue(!double.IsNaN(fundamental.RevenuePerShare),"RevenuePerShare"); Assert.IsTrue(!double.IsNaN(fundamental.QtrlyRevenueGrowth),"QtrlyRevenueGrowth"); // Assert.IsTrue(!double.IsNaN(fundamental.GrossProfit),"GrossProfit"); Assert.IsTrue(!double.IsNaN(fundamental.EBITDA),"EBITDA"); @@ -237,7 +270,7 @@ namespace MarketDataUnitTests } [TestMethod] - public void IncomeStatementNASDAQRetrievsl() + public void IncomeStatementNASDAQRetrieval() { String symbol="MIDD"; List incomeStatements=MarketDataHelper.GetIncomeStatementNASDAQ(symbol,IncomeStatement.PeriodType.Annual); @@ -339,14 +372,6 @@ namespace MarketDataUnitTests Assert.IsTrue(!double.IsNaN(fundamental.DebtToEquity),"DebtToEquity"); } - [TestMethod] - public void LatestPriceBigChartsRetrieval() - { - String symbol="MIDD"; - Price price=MarketDataHelper.GetLatestPriceBigCharts(symbol); - Assert.IsTrue(null!=price,"No Price"); - Assert.IsTrue(price.IsValid,"Invalid Price"); - } [TestMethod] public void GetPriceAsOfBigChartsRetrieval()