38 lines
880 B
Go
38 lines
880 B
Go
package integration
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/marte-community/marte-dev-tools/internal/index"
|
|
"github.com/marte-community/marte-dev-tools/internal/parser"
|
|
)
|
|
|
|
func TestIsolatedFileIsolation(t *testing.T) {
|
|
pt := index.NewProjectTree()
|
|
|
|
// File 1: Project file
|
|
f1 := "#package P\n+A = { Class = C }"
|
|
p1 := parser.NewParser(f1)
|
|
c1, _ := p1.Parse()
|
|
pt.AddFile("f1.marte", c1)
|
|
|
|
// File 2: Isolated file
|
|
f2 := "+B = { Class = C }"
|
|
p2 := parser.NewParser(f2)
|
|
c2, _ := p2.Parse()
|
|
pt.AddFile("f2.marte", c2)
|
|
|
|
pt.ResolveReferences()
|
|
|
|
// Try finding A from f2
|
|
isoNode := pt.IsolatedFiles["f2.marte"]
|
|
if pt.ResolveName(isoNode, "A", nil) != nil {
|
|
t.Error("Isolated file f2 should not see global A")
|
|
}
|
|
|
|
// Try finding B from f1
|
|
pNode := pt.Root.Children["P"]
|
|
if pt.ResolveName(pNode, "B", nil) != nil {
|
|
t.Error("Project file f1 should not see isolated B")
|
|
}
|
|
} |