module Main where import Net.IEX.Previous import Test.HUnit import Net.Stocks import qualified Data.ByteString.Lazy.Char8 as L8 import qualified Net.IEX.Stats as XS main :: IO Counts main = runTestTT tests tests = TestList [TestLabel "" testChart, TestLabel "" testCompany, TestLabel "" testDelayedQuote, TestLabel "" testDelayedDividend, TestLabel "" testEarnings, TestLabel "" testEffectiveSpread, TestLabel "" testFinancials, TestLabel "" testStats, TestLabel "" testNewsItem, TestLabel "" testOHLC, TestLabel "" testPeers, TestLabel "" testPrevious, TestLabel "" testPrice, TestLabel "" testQuote, TestLabel "" testRelevant, TestLabel "" testSplit, TestLabel "" testVolumeByVenue, TestLabel "" testTypeQuery1, TestLabel "" testBatch, TestLabel "" testMultiBatch1, TestLabel "" testMultiBatch2, TestLabel "" testCorrectCompanyName, TestLabel "" testMarket, TestLabel "" testIntraDayStats, TestLabel "" testRecentStats, TestLabel "" testRecordStats, -- TestLabel "" testHistDailyStats TestLabel "" testBook, TestLabel "" testTS ] testChart = TestCase (do result <- getChart "aapl" assertBool "desc" (result /= Nothing)) testCompany = TestCase (do result <- getCompany "aapl" assertBool "desc" (result /= Nothing)) testDelayedQuote = TestCase (do result <- getDelayedQuote "aapl" assertBool "desc" (result /= Nothing)) testDelayedDividend = TestCase (do result <- getDelayedDividend "aapl" assertBool "desc" (result /= Nothing)) testEarnings = TestCase (do result <- getEarnings "aapl" assertBool "desc" (result /= Nothing)) testEffectiveSpread = TestCase (do result <- getEffectiveSpread "aapl" assertBool "desc" (result /= Nothing)) testFinancials = TestCase (do result <- getFinancials "aapl" assertBool "desc" (result /= Nothing)) testStats = TestCase (do result <- getStats "aapl" assertBool "desc" (result /= Nothing)) testNewsItem = TestCase (do result <- getNewsItem "aapl" assertBool "desc" (result /= Nothing)) testOHLC = TestCase (do result <- getOHLC "aapl" assertBool "desc" (result /= Nothing)) testPeers = TestCase (do (Just result) <- getPeers "aapl" assertEqual "get the correct peers for AAPL" result (L8.pack "[\"MSFT\",\"NOK\",\"IBM\",\"HPQ\",\"GOOGL\",\"BB\",\"XLK\"]")) testPrevious = TestCase (do result <- getPrevious "aapl" assertBool "desc" (result /= Nothing)) testPrice = TestCase (do result <- getPrice "aapl" assertBool "" (result /= Nothing)) testQuote = TestCase (do result <- getQuote "aapl" assertBool "desc" (result /= Nothing)) testRelevant = TestCase (do result <- getRelevant "aapl" assertBool "desc" (result /= Nothing)) testSplit = TestCase (do result <- getSplit "aapl" assertBool "desc" (result /= Nothing)) testVolumeByVenue = TestCase (do result <- getVolumeByVenue "aapl" assertBool "desc" (result /= Nothing)) testTypeQuery1 = TestCase (assertEqual "" "types=news,ohlc" (typeQuery [NewsQuery, OHLCQuery])) testBatch = TestCase (do result <- getBatchCompany "aapl" [StatsQuery, NewsQuery, CompanyQuery] assertBool "" (result /= Nothing)) testMultiBatch1 = TestCase (do result <- getBatch ["fb"] [OHLCQuery] assertBool "" (result /= Nothing)) testMultiBatch2 = TestCase (do result <- getBatch ["dps", "fb"] [OHLCQuery, CompanyQuery] assertBool "" (result /= Nothing)) -- fail testCorrectCompanyName = TestCase (do result <- getBatchCompany "aapl" [StatsQuery, NewsQuery, CompanyQuery] assertEqual "" (pickCompanyName result) "Apple Inc.") pickCompanyName :: Maybe Batch -> String pickCompanyName (Just (Batch {stats = st})) = pickCompanyName' st pickCompanyName' :: Maybe XS.Stats -> String pickCompanyName' (Just (XS.Stats {XS.companyName = cname})) = cname testMarket = TestCase (do result <- getMarket assertBool "" (result /= Nothing)) testIntraDayStats = TestCase (do result <- getIntraDayStats assertBool "" (result /= Nothing)) testRecentStats = TestCase (do result <- getRecentStats assertBool "" (result /= Nothing)) testRecordStats = TestCase (do result <- getRecordStats assertBool "" (result /= Nothing)) testBook = TestCase (do result <- getBook "aapl" assertBool "" (result /= Nothing)) testTS = TestCase (do result <- getTS "aapl" assertBool "" (result /= Nothing)) -- testHistDailyStats = TestCase (do result <- getHistoricalDailyStats -- assertBool "" (result /= Nothing))