aws-arn-0.3.3.0: test/Network/AWS/ARN/StatesTest.hs
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
module Network.AWS.ARN.StatesTest where
import Data.Text (Text)
import Lens.Micro.Pro (Lens', set, (^?))
import Network.AWS.ARN.States
import Test.Tasty
import Test.Tasty.HUnit
test_all :: TestTree
test_all =
testGroup
"Network.AWS.ARN.StateMachine"
[ testGroup
"StateMachine"
[ testGroup
"parsing"
[ testCase "unqualified state machine name" $
"stateMachine:workflow" ^? _StateMachine @?= Just (StateMachine "workflow" Nothing),
testCase "qualified state machine name" $
"stateMachine:workflow:42" ^? _StateMachine @?= Just (StateMachine "workflow" $ Just "42")
],
testGroup
"updating"
[ testCase "setting name" $
set (_StateMachine . smName) "newWorkflow" "stateMachine:workflow"
@?= "stateMachine:newWorkflow",
testCase "setting qualifier" $
set (_StateMachine . smQualifier) (Just "v1") "stateMachine:workflow"
@?= "stateMachine:workflow:v1",
testCase "unsetting qualifier" $
set (_StateMachine . smQualifier) Nothing "stateMachine:workflow:v1"
@?= "stateMachine:workflow"
]
]
]
smName :: Lens' StateMachine Text
smName l sm@StateMachine {name} = (\n -> sm {name = n}) <$> l name
smQualifier :: Lens' StateMachine (Maybe Text)
smQualifier l sm@StateMachine {qualifier} = (\q -> sm {qualifier = q}) <$> l qualifier