mirror of
https://github.com/macocianradu/RosettaHaskellCompiler.git
synced 2026-03-18 13:00:08 +00:00
55 lines
2.8 KiB
Haskell
55 lines
2.8 KiB
Haskell
module Parser.EnumSpec where
|
|
|
|
import Test.Hspec
|
|
import Model.Enum
|
|
import qualified Data.Text as Text
|
|
import Text.Megaparsec
|
|
import Parser.Enum
|
|
import Test.Hspec.Megaparsec
|
|
|
|
spec :: Spec
|
|
spec = do
|
|
describe "Testing enum parsing" $ do
|
|
it "[Test 1]" $ do
|
|
plainText <- readFile "resources/Enums/testEnum1.rosetta"
|
|
parse enumParser "" (Text.pack plainText) `shouldParse` head enums
|
|
it "[Test 2]" $ do
|
|
plainText <- readFile "resources/Enums/testEnum2.rosetta"
|
|
parse enumParser "" (Text.pack plainText) `shouldParse` (enums !! 1)
|
|
it "[Test 3]" $ do
|
|
plainText <- readFile "resources/Enums/testEnum3.rosetta"
|
|
parse enumParser "" (Text.pack plainText) `shouldParse` (enums !! 2)
|
|
it "[Test 4]" $ do
|
|
plainText <- readFile "resources/Enums/testEnum4.rosetta"
|
|
parse enumParser "" (Text.pack plainText) `shouldParse` (enums !! 3)
|
|
it "[Test 5]" $ do
|
|
plainText <- readFile "resources/Enums/testEnum5.rosetta"
|
|
parse enumParser "" `shouldFailOn` Text.pack plainText
|
|
it "[Test 6]" $ do
|
|
plainText <- readFile "resources/Enums/testEnum6.rosetta"
|
|
parse enumParser "" `shouldFailOn` Text.pack plainText
|
|
|
|
|
|
enums :: [EnumType]
|
|
enums = [
|
|
MakeEnum {enumName = "PeriodEnum",
|
|
enumDescription = Just "The enumerated values to specified the period, e.g. day, week.",
|
|
enumValues = [MakeEnumValue {enumValueName = "D", enumValueDescription = Just "Day", enumValueDisplayName = Just "day"},
|
|
MakeEnumValue {enumValueName = "M", enumValueDescription = Just "Month", enumValueDisplayName = Just "month"},
|
|
MakeEnumValue {enumValueName = "Y", enumValueDescription = Just "Year", enumValueDisplayName = Just "year"}]},
|
|
|
|
MakeEnum {enumName = "EnumWithoutDisplay",
|
|
enumDescription = Just "The enumerated values to specified the period, e.g. day, week.",
|
|
enumValues = [MakeEnumValue {enumValueName = "D", enumValueDescription = Just "Day", enumValueDisplayName = Nothing},
|
|
MakeEnumValue {enumValueName = "M", enumValueDescription = Just "Month", enumValueDisplayName = Nothing},
|
|
MakeEnumValue {enumValueName = "Y", enumValueDescription = Just "Year", enumValueDisplayName = Nothing}]},
|
|
|
|
|
|
MakeEnum {enumName = "EnumWithoutDescription",
|
|
enumDescription = Nothing,
|
|
enumValues = [MakeEnumValue {enumValueName = "X", enumValueDescription = Nothing, enumValueDisplayName = Just "xs"},
|
|
MakeEnumValue {enumValueName = "Y", enumValueDescription = Nothing, enumValueDisplayName = Just "ys"}]},
|
|
|
|
MakeEnum {enumName = "Wrong",
|
|
enumDescription = Nothing,
|
|
enumValues = [MakeEnumValue {enumValueName = "A", enumValueDescription = Just "asd", enumValueDisplayName = Nothing}]}] |