{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} module Headroom.Ext.JavaSpec ( spec ) where import Headroom.Configuration.Types ( HeaderConfig(..) , HeaderSyntax(..) ) import Headroom.Ext.Java import Headroom.FileSystem ( loadFile ) import Headroom.Variables ( mkVariables ) import RIO import RIO.FilePath ( () ) import Test.Hspec spec :: Spec spec = do let codeSamples = "test-data" "code-samples" describe "extractPackageName" $ do it "extracts package name from Java source code" $ do sample <- loadFile $ codeSamples "java" "sample1.java" extractPackageName sample `shouldBe` Just "foo" describe "extractVariables" $ do it "extracts variables from Java source code" $ do let config = HeaderConfig ["java"] 0 0 [] [] (BlockComment "/*" "*/") meta = Nothing headerPos = Just (0, 2) expected = mkVariables [("_java_package_name", "foo")] sample <- loadFile $ codeSamples "java" "sample1.java" extractVariables config meta headerPos sample `shouldBe` expected