11package graphql.incremental
22
3- import graphql.GraphqlErrorBuilder
43import graphql.execution.ResultPath
54import spock.lang.Specification
65
6+ import static graphql.GraphqlErrorBuilder.newError
7+
78class StreamPayloadTest extends Specification {
89 def " null data is included" () {
910 def payload = StreamPayload . newStreamedItem()
@@ -25,11 +26,11 @@ class StreamPayloadTest extends Specification {
2526 .items([" twow is that a bee" ])
2627 .path([" hello" ])
2728 .errors([])
28- .addError(GraphqlErrorBuilder . newError()
29+ .addError(newError()
2930 .message(" wow" )
3031 .build())
3132 .addErrors([
32- GraphqlErrorBuilder . newError()
33+ newError()
3334 .message(" yep" )
3435 .build(),
3536 ])
@@ -65,12 +66,12 @@ class StreamPayloadTest extends Specification {
6566 def payload = StreamPayload . newStreamedItem()
6667 .items([" twow is that a bee" ])
6768 .path(ResultPath . fromList([" test" , " echo" ]))
68- .addError(GraphqlErrorBuilder . newError()
69+ .addError(newError()
6970 .message(" wow" )
7071 .build())
7172 .addErrors([])
7273 .errors([
73- GraphqlErrorBuilder . newError()
74+ newError()
7475 .message(" yep" )
7576 .build(),
7677 ])
@@ -96,4 +97,57 @@ class StreamPayloadTest extends Specification {
9697 path : [" test" , " echo" ],
9798 ]
9899 }
100+
101+ def " test equals and hashCode methods work" () {
102+ given :
103+ def items1 = [" test1" ]
104+ def items2 = [" test2" , " test3" ]
105+ def path1 = [" test" , " echo" ]
106+ def path2 = [" test" , " echo" , " foo" ]
107+ def errors1 = [newError(). message(" error1" ). build()]
108+ def errors2 = [newError(). message(" error2" ). build()]
109+ def extensions1 = [echo : " 1" ]
110+ def extensions2 = [echo : " 2" ]
111+
112+ def payload = new StreamPayload.Builder ()
113+ .items(items1)
114+ .path(path1)
115+ .label(" label1" )
116+ .errors(errors1)
117+ .extensions(extensions1)
118+ .build()
119+
120+ def equivalentPayload = new StreamPayload.Builder ()
121+ .items(items1)
122+ .path(path1)
123+ .label(" label1" )
124+ .errors(errors1)
125+ .extensions(extensions1)
126+ .build()
127+
128+ def totallyDifferentPayload = new StreamPayload.Builder ()
129+ .items(items2)
130+ .path(path2)
131+ .label(" label2" )
132+ .errors(errors2)
133+ .extensions(extensions2)
134+ .build()
135+
136+ def slightlyDifferentPayload = new StreamPayload.Builder ()
137+ .items(items2)
138+ .path(path2)
139+ .label(" label1" )
140+ .errors(errors1)
141+ .extensions(extensions2)
142+ .build()
143+
144+ expect :
145+ payload == equivalentPayload
146+ payload != totallyDifferentPayload
147+ payload != slightlyDifferentPayload
148+
149+ payload. hashCode() == equivalentPayload. hashCode()
150+ payload. hashCode() != totallyDifferentPayload. hashCode()
151+ payload. hashCode() != slightlyDifferentPayload. hashCode()
152+ }
99153}
0 commit comments