Skip to content

Commit a8c69c2

Browse files
committed
Added tests for spo hooks.
1 parent 1a3352e commit a8c69c2

2 files changed

Lines changed: 364 additions & 5 deletions

File tree

bql/semantic/hooks.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -921,7 +921,7 @@ func constructSubjectClause() ElementHook {
921921
return f, nil
922922
}
923923
tkn := ce.Token()
924-
c := st.workingConstructClause
924+
c := st.WorkingConstructClause()
925925
if c.S != nil {
926926
return nil, fmt.Errorf("invalid subject %v in construct clause, subject already set to %v", tkn.Type, c.S)
927927
}
@@ -952,10 +952,13 @@ func constructPredicateClause() ElementHook {
952952
return f, nil
953953
}
954954
tkn := ce.Token()
955-
c := st.workingConstructClause
955+
c := st.WorkingConstructClause()
956956
if c.P != nil {
957957
return nil, fmt.Errorf("invalid predicate %v in construct clause, predicate already set to %v", tkn.Type, c.P)
958958
}
959+
if c.PID != "" {
960+
return nil, fmt.Errorf("invalid predicate %v in construct clause, predicate already set to %v", tkn.Type, c.PID)
961+
}
959962
if c.PBinding != "" {
960963
return nil, fmt.Errorf("invalid predicate %v in construct clause, predicate already set to %v", tkn.Type, c.PBinding)
961964
}
@@ -983,10 +986,13 @@ func constructObjectClause() ElementHook {
983986
return f, nil
984987
}
985988
tkn := ce.Token()
986-
c := st.WorkingClause()
989+
c := st.WorkingConstructClause()
987990
if c.O != nil {
988991
return nil, fmt.Errorf("invalid object %v in construct clause, object already set to %v", tkn.Text, c.O)
989992
}
993+
if c.OID != "" {
994+
return nil, fmt.Errorf("invalid object %v in construct clause, objct already set to %v", tkn.Type, c.OID)
995+
}
990996
if c.OBinding != "" {
991997
return nil, fmt.Errorf("invalid object %v in construct clause, object already set to %v", tkn.Type, c.OBinding)
992998
}

0 commit comments

Comments
 (0)