1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
module ItemKindUnitTests (itemKindUnitTests) where
import Prelude ()
import Game.LambdaHack.Core.Prelude
import Test.Tasty
import Test.Tasty.HUnit
import qualified Content.RuleKind
import Game.LambdaHack.Common.Kind (emptyMultiGroupItem)
import Game.LambdaHack.Content.ItemKind
import qualified Game.LambdaHack.Content.RuleKind as RK
import qualified Game.LambdaHack.Definition.Ability as Ability
itemKindUnitTests :: TestTree
itemKindUnitTests = testGroup "itemKindUnitTests" $
let standardSymbols = RK.ritemSymbols Content.RuleKind.standardRules
customSymbols = emptyItemSymbolsUsedInEngine {rsymbolNecklace = '*'}
in
[ testCase "overlonginame_validateSingle_errs" $
validateSingle standardSymbols
emptyMultiGroupItem { iname = "123456789012345678901234" }
@?= ["iname longer than 23"]
, testCase "shortEnoughiname_validateSingle_noErr" $
validateSingle standardSymbols
emptyMultiGroupItem
@?= []
, testCase "equipableNoSlotxSymbol_validateSingle_errs" $
validateSingle standardSymbols
emptyMultiGroupItem { iaspects = [ SetFlag Ability.Equipable ] }
@?= ["EqpSlot not specified but Equipable or Meleeable and not a likely organ or necklace or template"]
, testCase "equipableNoSlot,Symbol_validateSingle_noErr" $
validateSingle standardSymbols
emptyMultiGroupItem { isymbol = ','
, iaspects = [ SetFlag Ability.Equipable ] }
@?= []
, testCase "equipableNoSlot\"Symbol_validateSingle_noErr" $
validateSingle standardSymbols
emptyMultiGroupItem { isymbol = '"'
, iaspects = [ SetFlag Ability.Equipable ] }
@?= []
, testCase "equipableNoSlot/Symbol_validateSingle_noErr" $
validateSingle standardSymbols
emptyMultiGroupItem { isymbol = '/'
, iaspects = [ SetFlag Ability.Equipable ] }
@?= []
, testCase "equipableNoSlot*CustomRules_validateSingle_noErr" $
validateSingle customSymbols
emptyMultiGroupItem { isymbol = '*'
, iaspects = [ SetFlag Ability.Equipable ] }
@?= []
, testCase "equipableNoSlot\"CustomRules_validateSingle_errs" $
validateSingle customSymbols
emptyMultiGroupItem { isymbol = '"'
, iaspects = [ SetFlag Ability.Equipable ] }
@?= ["EqpSlot not specified but Equipable or Meleeable and not a likely organ or necklace or template"]
]
|