repos / handle-examples.hs.git


handle-examples.hs.git / records-handle / test
Evgenii Akentev  ·  2021-01-07

Test.hs

 1import Test.Hspec
 2
 3import qualified TestWeatherProvider
 4import qualified WeatherProvider
 5import qualified WeatherReporter
 6
 7main :: IO ()
 8main = hspec spec
 9
10weatherWithTemp :: WeatherProvider.Temperature -> WeatherReporter.Handle
11weatherWithTemp = WeatherReporter.new
12  . TestWeatherProvider.new
13  . TestWeatherProvider.Config
14
15spec :: Spec
16spec = describe "WeatherReporter" $ do
17  it "weather in London is 0" $ do
18    weatherReportInLondon <- WeatherReporter.getCurrentWeatherReportInLondon $
19      weatherWithTemp 0
20    weatherReportInLondon `shouldBe` "The current temperature in London is 0"
21  it "weather in London is -5" $ do
22    weatherReportInLondon <- WeatherReporter.getCurrentWeatherReportInLondon $
23      weatherWithTemp (-5)
24    weatherReportInLondon `shouldBe` "The current temperature in London is -5"