11package jsonlog
22
33import (
4+ "strings"
45 "testing"
56
67 "github.com/NextronSystems/jsonlog/jsonpointer"
@@ -27,7 +28,7 @@ type testObject struct {
2728
2829 Subfield5 string `json:"subfield5" textlog:"subfield5"`
2930
30- Valuer TestEventValuer `json:"valuer " textlog:"valuer "`
31+ Resolver TestResolver `json:"resolver " textlog:"resolver "`
3132
3233 SubObject * SubObject `json:"subobject" textlog:"subobject,expand"`
3334}
@@ -50,13 +51,19 @@ func (u UnexpandedSubstruct) String() string {
5051 return u .SubField4
5152}
5253
53- type TestEventValuer struct {
54+ type TestResolver struct {
5455 Subfield6 string `json:"subfield6"`
5556 Subfield7 string `json:"subfield7"`
5657 Ignore string
5758}
5859
59- func (t * TestEventValuer ) RelativeTextPointer (pointee any ) (string , bool , bool ) {
60+ func (t TestResolver ) String () string {
61+ return strings .Join ([]string {t .Subfield6 , t .Subfield7 }, ", " )
62+ }
63+
64+ var _ TextReferenceResolver = (* TestResolver )(nil )
65+
66+ func (t * TestResolver ) RelativeTextPointer (pointee any ) (string , bool , bool ) {
6067 virtual := true // We do not implement TextlogMarshaler
6168 if pointee == & t .Subfield6 {
6269 return "subfield6" , virtual , true
@@ -67,7 +74,9 @@ func (t *TestEventValuer) RelativeTextPointer(pointee any) (string, bool, bool)
6774 return "" , false , false
6875}
6976
70- func (t * TestEventValuer ) RelativeJsonPointer (pointee any ) jsonpointer.Pointer {
77+ var _ JsonReferenceResolver = (* TestResolver )(nil )
78+
79+ func (t * TestResolver ) RelativeJsonPointer (pointee any ) jsonpointer.Pointer {
7180 if pointee == & t .Subfield6 {
7281 return jsonpointer .New ("subfield6" )
7382 }
@@ -89,8 +98,8 @@ func TestReference_ToJsonPointer(t *testing.T) {
8998 test .Nested .Substruct .SubField3 = "subfield3"
9099 test .Unexpanded .SubField4 = "subfield4"
91100 test .Subfield5 = "subfield5"
92- test .Valuer .Subfield6 = "subfield6"
93- test .Valuer .Subfield7 = "subfield7"
101+ test .Resolver .Subfield6 = "subfield6"
102+ test .Resolver .Subfield7 = "subfield7"
94103 test .SubObject = & SubObject {Subfield8 : "subfield8" }
95104 test .Recursive = NewReference (& test , & test .Substruct )
96105
@@ -107,9 +116,9 @@ func TestReference_ToJsonPointer(t *testing.T) {
107116 {& test .Unexpanded , "/unexpanded" },
108117 {& test .Unexpanded .SubField4 , "/unexpanded/subfield4" },
109118 {& test .Subfield5 , "/subfield5" },
110- {& test .Valuer , "/valuer " },
111- {& test .Valuer .Subfield6 , "/valuer /subfield6" },
112- {& test .Valuer .Subfield7 , "/valuer /subfield7" },
119+ {& test .Resolver , "/resolver " },
120+ {& test .Resolver .Subfield6 , "/resolver /subfield6" },
121+ {& test .Resolver .Subfield7 , "/resolver /subfield7" },
113122 {& test .SubObject , "/subobject" },
114123 {& test .SubObject .Subfield8 , "/subobject/subfield8" },
115124 // test.Recursive not required here: if there is a flaw in the pointer
@@ -130,9 +139,10 @@ func TestReference_ToTextPointer(t *testing.T) {
130139 test .Nested .Substruct .SubField3 = "subfield3"
131140 test .Unexpanded .SubField4 = "subfield4"
132141 test .Subfield5 = "subfield5"
133- test .Valuer .Subfield6 = "subfield6"
134- test .Valuer .Subfield7 = "subfield7"
142+ test .Resolver .Subfield6 = "subfield6"
143+ test .Resolver .Subfield7 = "subfield7"
135144 test .SubObject = & SubObject {Subfield8 : "subfield8" }
145+ test .Recursive = NewReference (& test , & test .Substruct )
136146
137147 var tests = []struct {
138148 PointedField any
@@ -147,9 +157,9 @@ func TestReference_ToTextPointer(t *testing.T) {
147157 {& test .Unexpanded , "UNEXPANDED" },
148158 {& test .Unexpanded .SubField4 , "" },
149159 {& test .Subfield5 , "SUBFIELD5" },
150- {& test .Valuer , "VALUER " },
151- {& test .Valuer .Subfield6 , "subfield6" },
152- {& test .Valuer .Subfield7 , "subfield7" },
160+ {& test .Resolver , "RESOLVER " },
161+ {& test .Resolver .Subfield6 , "subfield6" },
162+ {& test .Resolver .Subfield7 , "subfield7" },
153163 {& test .SubObject , "SUBOBJECT" },
154164 {& test .SubObject .Subfield8 , "SUBOBJECT_SUBFIELD8" },
155165 }
0 commit comments