From ac95601609d3e7ba40ef2ad231143b0929e2fe5b Mon Sep 17 00:00:00 2001 From: Jonathan Lamothe Date: Wed, 1 Jan 2020 23:40:24 -0500 Subject: [PATCH] removed (redundant) Mtlstats.Actions.EditGoalie module --- src/Mtlstats/Actions/EditGoalie.hs | 164 --------- test/Actions/EditGoalieSpec.hs | 537 ----------------------------- test/ActionsSpec.hs | 2 - 3 files changed, 703 deletions(-) delete mode 100644 src/Mtlstats/Actions/EditGoalie.hs delete mode 100644 test/Actions/EditGoalieSpec.hs diff --git a/src/Mtlstats/Actions/EditGoalie.hs b/src/Mtlstats/Actions/EditGoalie.hs deleted file mode 100644 index c1599b2..0000000 --- a/src/Mtlstats/Actions/EditGoalie.hs +++ /dev/null @@ -1,164 +0,0 @@ -{- | - -mtlstats -Copyright (C) 2019 Rhéal Lamothe - - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - --} - -module Mtlstats.Actions.EditGoalie - ( editGoalieNumber - , editGoalieName - , editGoalieYtdGames - , editGoalieYtdMins - , editGoalieYtdGoals - , editGoalieYtdWins - , editGoalieYtdLosses - , editGoalieYtdTies - , editGoalieLtGames - , editGoalieLtMins - , editGoalieLtGoals - , editGoalieLtWins - , editGoalieLtLosses - , editGoalieLtTies - ) where - -import Control.Monad (void) -import Data.Maybe (fromMaybe) -import Lens.Micro ((^.), (&), (.~), (%~)) - -import Mtlstats.Types -import Mtlstats.Util - --- | Edits a goalie's number -editGoalieNumber - :: Int - -- ^ New goalie number - -> ProgState - -> ProgState -editGoalieNumber num = editGoalie (gNumber .~ num) EGMenu - --- | Edits a goalie's name -editGoalieName - :: String - -- ^ The new name - -> ProgState - -> ProgState -editGoalieName name = editGoalie (gName .~ name) EGMenu - --- | Edits a goalie's YTD games -editGoalieYtdGames - :: Int - -- ^ The number of games played - -> ProgState - -> ProgState -editGoalieYtdGames games = editGoalie (gYtd.gsGames .~ games) EGYtd - --- | Edits a goalie's YTD minutes -editGoalieYtdMins - :: Int - -- ^ The number of minutes played - -> ProgState - -> ProgState -editGoalieYtdMins mins = editGoalie (gYtd.gsMinsPlayed .~ mins) EGYtd - --- | Edits a goalie's YTD goals allowed -editGoalieYtdGoals - :: Int - -- ^ The number of goals - -> ProgState - -> ProgState -editGoalieYtdGoals goals = editGoalie (gYtd.gsGoalsAllowed .~ goals) EGYtd - --- | Edits a goalie's YTD wins -editGoalieYtdWins - :: Int - -- ^ The number of wins - -> ProgState - -> ProgState -editGoalieYtdWins wins = editGoalie (gYtd.gsWins .~ wins) EGYtd - --- | Edits a goalie's YTD losses -editGoalieYtdLosses - :: Int - -- ^ The number of losses - -> ProgState - -> ProgState -editGoalieYtdLosses losses = editGoalie (gYtd.gsLosses .~ losses) EGYtd - --- | Edits a goalie's YTD ties -editGoalieYtdTies - :: Int - -- ^ The number of ties - -> ProgState - -> ProgState -editGoalieYtdTies ties = editGoalie (gYtd.gsTies .~ ties) EGYtd - --- | Edits a goalie's lifetime games played -editGoalieLtGames - :: Int - -- ^ The number of games - -> ProgState - -> ProgState -editGoalieLtGames games = editGoalie (gLifetime.gsGames .~ games) EGLifetime - --- | Edits a goalie's lifetime minutes played -editGoalieLtMins - :: Int - -- ^ The number of minutes - -> ProgState - -> ProgState -editGoalieLtMins mins = editGoalie (gLifetime.gsMinsPlayed .~ mins) EGLifetime - --- | Edits a goalie's lifetime goals allowed -editGoalieLtGoals - :: Int - -- ^ The number of goals - -> ProgState - -> ProgState -editGoalieLtGoals goals = editGoalie (gLifetime.gsGoalsAllowed .~ goals) EGLifetime - --- | Edits a goalie's lifetime wins -editGoalieLtWins - :: Int - -- ^ The number of wins - -> ProgState - -> ProgState -editGoalieLtWins wins = editGoalie (gLifetime.gsWins .~ wins) EGLifetime - --- | Edits a goalie's lifetime losses -editGoalieLtLosses - :: Int - -- ^ The number of losses - -> ProgState - -> ProgState -editGoalieLtLosses losses = editGoalie (gLifetime.gsLosses .~ losses) EGLifetime - --- | Edits a goalie's lifetime ties -editGoalieLtTies - :: Int - -- ^ The number of ties - -> ProgState - -> ProgState -editGoalieLtTies ties = editGoalie (gLifetime.gsTies .~ ties) EGLifetime - -editGoalie :: (Goalie -> Goalie) -> EditGoalieMode -> ProgState -> ProgState -editGoalie f mode s = fromMaybe s $ do - gid <- s^.progMode.editGoalieStateL.egsSelectedGoalie - void $ nth gid $ s^.database.dbGoalies - Just $ s - & database.dbGoalies %~ modifyNth gid f - & progMode.editGoalieStateL.egsMode .~ mode diff --git a/test/Actions/EditGoalieSpec.hs b/test/Actions/EditGoalieSpec.hs deleted file mode 100644 index af8c4bb..0000000 --- a/test/Actions/EditGoalieSpec.hs +++ /dev/null @@ -1,537 +0,0 @@ -{- - -mtlstats -Copyright (C) 2019 Rhéal Lamothe - - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - --} - -module Actions.EditGoalieSpec (spec) where - -import Data.Maybe (fromJust) -import Lens.Micro ((^.), (&), (.~)) -import Test.Hspec (Spec, context, describe, it, shouldBe) - -import Mtlstats.Actions.EditGoalie -import Mtlstats.Types -import Mtlstats.Util - -spec :: Spec -spec = describe "EditGoalie" $ do - editGoalieNumberSpec - editGoalieNameSpec - editGoalieYtdGamesSpec - editGoalieYtdMinsSpec - editGoalieYtdGoalsSpec - editGoalieYtdWinsSpec - editGoalieYtdLossesSpec - editGoalieYtdTiesSpec - editGoalieLtGamesSpec - editGoalieLtMinsSpec - editGoalieLtGoalsSpec - editGoalieLtWinsSpec - editGoalieLtLossesSpec - editGoalieLtTiesSpec - -editGoalieNumberSpec :: Spec -editGoalieNumberSpec = describe "editGoalieNumber" $ editTest - (editGoalieNumber 5) - EGNumber - (uncurry newGoalie) - [ ( "set Joe" - , Just 0 - , (5, "Joe") - , (3, "Bob") - , EGMenu - ) - , ( "set Bob" - , Just 1 - , (2, "Joe") - , (5, "Bob") - , EGMenu - ) - , ( "out of bounds" - , Just 2 - , (2, "Joe") - , (3, "Bob") - , EGNumber - ) - , ( "no goalie selected" - , Nothing - , (2, "Joe") - , (3, "Bob") - , EGNumber - ) - ] - -editGoalieNameSpec :: Spec -editGoalieNameSpec = describe "editGoalieName" $ editTest - (editGoalieName "foo") - EGName - (uncurry newGoalie) - [ ( "set Joe" - , Just 0 - , ( 2, "foo" ) - , ( 3, "Bob" ) - , EGMenu - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe" ) - , ( 3, "foo" ) - , EGMenu - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe" ) - , ( 3, "Bob" ) - , EGName - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe" ) - , ( 3, "Bob" ) - , EGName - ) - ] - -editGoalieYtdGamesSpec :: Spec -editGoalieYtdGamesSpec = describe "editGoalieYtdGames" $ editTest - (editGoalieYtdGames 1) - EGYtdGames - (\(num, name, games) -> newGoalie num name & gYtd.gsGames .~ games) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGYtd - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 1 ) - , EGYtd - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdGames - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdGames - ) - ] - -editGoalieYtdMinsSpec :: Spec -editGoalieYtdMinsSpec = describe "editGoalieYtdMins" $ editTest - (editGoalieYtdMins 1) - EGYtdMins - (\(num, name, mins) -> newGoalie num name & gYtd.gsMinsPlayed .~ mins) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGYtd - ) - , ( "set Bob" - , Just 1 - , (2, "Joe", 0 ) - , (3, "Bob", 1 ) - , EGYtd - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdMins - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdMins - ) - ] - -editGoalieYtdGoalsSpec :: Spec -editGoalieYtdGoalsSpec = describe "editGoalieYtdGoals" $ editTest - (editGoalieYtdGoals 1) - EGYtdGoals - (\(num, name, goals) -> newGoalie num name & gYtd.gsGoalsAllowed .~ goals) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGYtd - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 1 ) - , EGYtd - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdGoals - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdGoals - ) - ] - -editGoalieYtdWinsSpec :: Spec -editGoalieYtdWinsSpec = describe "editGoalieYtdWins" $ editTest - (editGoalieYtdWins 1) - EGYtdWins - (\(num, name, wins) -> newGoalie num name & gYtd.gsWins .~ wins) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGYtd - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 1 ) - , EGYtd - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdWins - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdWins - ) - ] - -editGoalieYtdLossesSpec :: Spec -editGoalieYtdLossesSpec = describe "editGoalieYtdLosses" $ editTest - (editGoalieYtdLosses 1) - EGYtdLosses - (\(num, name, losses) -> newGoalie num name & gYtd.gsLosses .~ losses) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGYtd - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 1 ) - , EGYtd - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdLosses - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdLosses - ) - ] - -editGoalieYtdTiesSpec :: Spec -editGoalieYtdTiesSpec = describe "editGoalieYtdTies" $ editTest - (editGoalieYtdTies 1) - EGYtdTies - (\(num, name, ties) -> newGoalie num name & gYtd.gsTies .~ ties) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGYtd - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 1 ) - , EGYtd - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdTies - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGYtdTies - ) - ] - -editGoalieLtGamesSpec :: Spec -editGoalieLtGamesSpec = describe "editGoalieLtGames" $ editTest - (editGoalieLtGames 1) - EGLtGames - (\(num, name, games) -> newGoalie num name & gLifetime.gsGames .~ games) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGLifetime - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 1 ) - , EGLifetime - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtGames - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtGames - ) - ] - -editGoalieLtMinsSpec :: Spec -editGoalieLtMinsSpec = describe "editGoalieLtMins" $ editTest - (editGoalieLtMins 1) - EGLtMins - (\(num, name, mins) -> newGoalie num name & gLifetime.gsMinsPlayed .~ mins) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGLifetime - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 1 ) - , EGLifetime - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtMins - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtMins - ) - ] - -editGoalieLtGoalsSpec :: Spec -editGoalieLtGoalsSpec = describe "editGoalieLtGoals" $ editTest - (editGoalieLtGoals 1) - EGLtGoals - (\(num, name, goals) -> newGoalie num name & gLifetime.gsGoalsAllowed .~ goals) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGLifetime - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 1 ) - , EGLifetime - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtGoals - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtGoals - ) - ] - -editGoalieLtWinsSpec :: Spec -editGoalieLtWinsSpec = describe "editGoalieLtWins" $ editTest - (editGoalieLtWins 1) - EGLtWins - (\(num, name, wins) -> newGoalie num name & gLifetime.gsWins .~ wins) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGLifetime - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 1 ) - , EGLifetime - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtWins - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtWins - ) - ] - -editGoalieLtLossesSpec :: Spec -editGoalieLtLossesSpec = describe "editGoalieLtLosses" $ editTest - (editGoalieLtLosses 1) - EGLtLosses - (\(num, name, losses) -> newGoalie num name & gLifetime.gsLosses .~ losses) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGLifetime - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 1 ) - , EGLifetime - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtLosses - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtLosses - ) - ] - -editGoalieLtTiesSpec :: Spec -editGoalieLtTiesSpec = describe "editGoalieLtTies" $ editTest - (editGoalieLtTies 1) - EGLtTies - (\(num, name, ties) -> newGoalie num name & gLifetime.gsTies .~ ties) - [ ( "set Joe" - , Just 0 - , ( 2, "Joe", 1 ) - , ( 3, "Bob", 0 ) - , EGLifetime - ) - , ( "set Bob" - , Just 1 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 1 ) - , EGLifetime - ) - , ( "out of bounds" - , Just 2 - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtTies - ) - , ( "no goalie selected" - , Nothing - , ( 2, "Joe", 0 ) - , ( 3, "Bob", 0 ) - , EGLtTies - ) - ] - -editTest - :: (ProgState -> ProgState) - -> EditGoalieMode - -> (a -> Goalie) - -> [(String, Maybe Int, a, a, EditGoalieMode)] - -> Spec -editTest func setMode mkGoalie params = do - mapM_ - (\(setLabel, setGid, joeData, bobData, expectMode) -> context setLabel $ do - let - egs = newEditGoalieState - & egsSelectedGoalie .~ setGid - & egsMode .~ setMode - - ps = func $ progState $ EditGoalie egs - - mapM_ - (\(chkLabel, chkGid, goalieData) -> context chkLabel $ let - actual = fromJust $ nth chkGid $ ps^.database.dbGoalies - expected = mkGoalie goalieData - in it ("should be " ++ show expected) $ - actual `shouldBe` expected) - -- label, goalie ID, goalie data - [ ( "check Joe", 0, joeData ) - , ( "check Bob", 1, bobData ) - ] - - context "check mode" $ - it ("should be " ++ show expectMode) $ - ps^.progMode.editGoalieStateL.egsMode `shouldBe` expectMode) - - params - - context "wrong progMode" $ do - let ps = func $ progState MainMenu - - it "should not change the database" $ - ps^.database `shouldBe` db - - it "should not change the progMode" $ - show (ps^.progMode) `shouldBe` "MainMenu" - -joe :: Goalie -joe = newGoalie 2 "Joe" - -bob :: Goalie -bob = newGoalie 3 "Bob" - -db :: Database -db = newDatabase & dbGoalies .~ [joe, bob] - -progState :: ProgMode -> ProgState -progState mode = newProgState - & progMode .~ mode - & database .~ db diff --git a/test/ActionsSpec.hs b/test/ActionsSpec.hs index 0f6e1d9..d29fd6a 100644 --- a/test/ActionsSpec.hs +++ b/test/ActionsSpec.hs @@ -38,7 +38,6 @@ import Test.Hspec import Mtlstats.Actions import Mtlstats.Types -import qualified Actions.EditGoalieSpec as EditGoalie import qualified Actions.NewGameSpec as NewGame import qualified TypesSpec as TS @@ -63,7 +62,6 @@ spec = describe "Mtlstats.Actions" $ do scrollUpSpec scrollDownSpec NewGame.spec - EditGoalie.spec startNewSeasonSpec :: Spec startNewSeasonSpec = describe "startNewSeason" $ do