headroom-0.3.1.0: test/Headroom/Ext/JavaSpec.hs
{-# 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