tinytools-0.1.0.0: test/Potato/Flow/Deprecated/Controller/Manipulator/SelectSpec.hs
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE RecursiveDo #-}
module Potato.Flow.Deprecated.Controller.Manipulator.SelectSpec
( spec
)
where
import Relude hiding (empty, fromList)
import Test.Hspec
import Test.Hspec.Contrib.HUnit (fromHUnitTest)
import Test.HUnit
import Potato.Flow
import Potato.Flow.Common
import Potato.Flow.TestStates
-- attempt to select 0 area objects and ensure behavior is correct
test_Select_zero :: Test
test_Select_zero = constructTest "zero" owlpfstate_zero bs expected where
bs = [
EWCLabel "select b1"
, EWCTool Tool_Select
, EWCMouse (LMouseData (V2 (-1) (-1)) False MouseButton_Left [] False)
, EWCMouse (LMouseData (V2 1 1) True MouseButton_Left [] False)
, EWCLabel "deselect"
, EWCKeyboard (KeyboardData KeyboardKey_Esc [])
, EWCLabel "select sl1"
, EWCMouse (LMouseData (V2 9 9) False MouseButton_Left [] False)
, EWCMouse (LMouseData (V2 11 11) True MouseButton_Left [] False)
]
expected = [
LabelCheck "select b1"
, EqPredicate goatState_selectedTool Tool_Select
, numSelectedEltsEqualPredicate 0
, numSelectedEltsEqualPredicate 1
, LabelCheck "deselect"
, numSelectedEltsEqualPredicate 0
, LabelCheck "select sl1"
, numSelectedEltsEqualPredicate 0
-- not possible to select zero area lines ATM (TODO fix)
, numSelectedEltsEqualPredicate 0
]
spec :: Spec
spec = do
describe "SelectHandler" $ do
fromHUnitTest $ test_Select_zero