@@ -106,7 +106,7 @@ func TestParse(t *testing.T) {
106106 pretty := fmt .Sprintf ("\" bar\" @[%s]" , date )
107107 got , err := Parse (pretty )
108108 if err != nil {
109- t .Errorf ("predicate.Parse could not create a predicate for %s with error %v" , pretty , err )
109+ t .Fatalf ("predicate.Parse could not create a predicate for %s with error %v" , pretty , err )
110110 }
111111 if got .Type () != Temporal {
112112 t .Errorf ("predicate.Parse should have returned a temporal predicate, instead returned %s" , got )
@@ -121,9 +121,29 @@ func TestParse(t *testing.T) {
121121
122122 imm , err := Parse ("\" foo\" @[]" )
123123 if err != nil {
124- t .Errorf ("predicate.Parse failed to immutable predicate \" foo\" @[] with error %v" , err )
124+ t .Errorf ("predicate.Parse failed to parse immutable predicate \" foo\" @[] with error %v" , err )
125125 }
126126 if imm .Type () != Immutable || imm .ID () != "foo" {
127- t .Errorf ("predicate.Parse failed to immutable predicate \" foo\" @[]; got %v instead" , imm )
127+ t .Errorf ("predicate.Parse failed to parse immutable predicate \" foo\" @[]; got %v instead" , imm )
128+ }
129+ }
130+
131+ func TestQuotedID (t * testing.T ) {
132+ const id = "ba\" r"
133+ const pretty = "\" ba\\ \" r\" @[]"
134+ immut , err := NewImmutable (id )
135+ if err != nil {
136+ t .Fatal (err )
137+ }
138+ if got , want := immut .String (), pretty ; got != want {
139+ t .Fatalf ("predicate.String() = %v; want %v" , got , want )
140+ }
141+
142+ immut , err = Parse (pretty )
143+ if err != nil {
144+ t .Fatalf ("predicate.Parse failed to parse immutable predicate \" foo\" @[] with error %v" , err )
145+ }
146+ if immut .Type () != Immutable || immut .ID () != id {
147+ t .Errorf ("predicate.Parse failed to parse immutable predicate %v; got %v instead" , pretty , immut )
128148 }
129149}
0 commit comments