52
52
* .containsExactly(state1, state2);
53
53
* </pre>
54
54
*
55
+ * <p>If the actual queried messages are required, the subject can return them as follows:
56
+ * <pre>
57
+ * context.assertQueryResult(query)
58
+ * .actual();
59
+ * </pre>
60
+ *
55
61
* <p>There are also convenience methods for checking response {@link Status} and received entity
56
62
* {@linkplain Version versions}, as well as some others.
57
63
*
@@ -80,22 +86,12 @@ public final class QueryResultSubject
80
86
*/
81
87
private IterableEntityVersionSubject versionsSubject ;
82
88
83
- private final Iterable <EntityState > actual ;
89
+ private final ImmutableList <EntityState > actual ;
84
90
85
91
private QueryResultSubject (FailureMetadata failureMetadata ,
86
92
Iterable <EntityState > entityStates ) {
87
93
super (failureMetadata , entityStates );
88
- this .actual = entityStates ;
89
- }
90
-
91
- private void initChildSubjects (QueryResponse queryResponse ) {
92
- Status status = extractStatus (queryResponse );
93
- statusSubject = check ("getResponse().getStatus()" ).about (responseStatus ())
94
- .that (status );
95
-
96
- Iterable <Version > versions = extractEntityVersions (queryResponse );
97
- versionsSubject = check ("getEntityVersions()" ).about (entityVersions ())
98
- .that (versions );
94
+ this .actual = ImmutableList .copyOf (entityStates );
99
95
}
100
96
101
97
/**
@@ -104,8 +100,7 @@ private void initChildSubjects(QueryResponse queryResponse) {
104
100
* <p>Unlike other {@code Subject}s, the {@code QueryResultSubject} does not accept
105
101
* {@code null} arguments, as {@code null} {@code QueryResponse} always indicates an error.
106
102
*/
107
- public static
108
- QueryResultSubject assertQueryResult (QueryResponse queryResponse ) {
103
+ public static QueryResultSubject assertQueryResult (QueryResponse queryResponse ) {
109
104
checkNotNull (queryResponse , "`QueryResponse` must never be `null`." );
110
105
111
106
Iterable <EntityState > entityStates = extractEntityStates (queryResponse );
@@ -114,6 +109,23 @@ QueryResultSubject assertQueryResult(QueryResponse queryResponse) {
114
109
return subject ;
115
110
}
116
111
112
+ private void initChildSubjects (QueryResponse queryResponse ) {
113
+ Status status = extractStatus (queryResponse );
114
+ statusSubject = check ("getResponse().getStatus()" ).about (responseStatus ())
115
+ .that (status );
116
+
117
+ Iterable <Version > versions = extractEntityVersions (queryResponse );
118
+ versionsSubject = check ("getEntityVersions()" ).about (entityVersions ())
119
+ .that (versions );
120
+ }
121
+
122
+ /**
123
+ * Obtains the actually queried entity states.
124
+ */
125
+ public ImmutableList <EntityState > actual (){
126
+ return actual ;
127
+ }
128
+
117
129
/**
118
130
* Verifies the status of the received {@link QueryResponse}.
119
131
*/
@@ -135,8 +147,10 @@ public ResponseStatusSubject hasStatusThat() {
135
147
*/
136
148
public ProtoSubject containsSingleEntityStateThat () {
137
149
assertContainsSingleItem ();
138
- EntityState state = actual .iterator ().next ();
139
- ProtoSubject subject = check ("singleEntityState()" ).about (protos ()).that (state );
150
+ EntityState state = actual .iterator ()
151
+ .next ();
152
+ ProtoSubject subject = check ("singleEntityState()" ).about (protos ())
153
+ .that (state );
140
154
return subject ;
141
155
}
142
156
@@ -160,7 +174,7 @@ private void assertContainsSingleItem() {
160
174
hasSize (1 );
161
175
}
162
176
163
- private static Iterable <EntityState > extractEntityStates (QueryResponse queryResponse ) {
177
+ private static ImmutableList <EntityState > extractEntityStates (QueryResponse queryResponse ) {
164
178
ImmutableList <EntityState > result = ImmutableList .copyOf (queryResponse .states ());
165
179
return result ;
166
180
}
@@ -170,8 +184,9 @@ private static Collection<Version> extractEntityVersions(QueryResponse queryResp
170
184
}
171
185
172
186
private static Status extractStatus (QueryResponse queryResponse ) {
173
- return queryResponse .getResponse ()
174
- .getStatus ();
187
+ return queryResponse
188
+ .getResponse ()
189
+ .getStatus ();
175
190
}
176
191
177
192
static Subject .Factory <QueryResultSubject , Iterable <EntityState >> queryResult () {
0 commit comments