Evgenii Akentev
·
2021-01-09
Test.hs
1import Test.Hspec
2
3import qualified TestWeatherProvider
4import qualified WeatherProvider
5import qualified TemperatureProvider
6import qualified WindProvider
7import qualified WeatherReporter
8
9main :: IO ()
10main = hspec spec
11
12weatherWithTempAndWind
13 :: TemperatureProvider.Temperature
14 -> WindProvider.WindSpeed
15 -> WeatherReporter.Handle
16weatherWithTempAndWind t w = WeatherReporter.new
17 $ TestWeatherProvider.new
18 $ TestWeatherProvider.Config t w
19
20spec :: Spec
21spec = describe "WeatherReporter" $ do
22 it "weather in London is 0 and wind is 5" $ do
23 weatherReportInLondon <- WeatherReporter.getCurrentWeatherReportInLondon $
24 weatherWithTempAndWind 0 5
25 weatherReportInLondon `shouldBe` "The current temperature in London is 0 and wind speed is 5"
26 it "weather in London is -5 and wind is 10" $ do
27 weatherReportInLondon <- WeatherReporter.getCurrentWeatherReportInLondon $
28 weatherWithTempAndWind (-5) 10
29 weatherReportInLondon `shouldBe` "The current temperature in London is -5 and wind speed is 10"