2222 */
2323public class TeamUsageStatsIntegrationTest {
2424
25+ /** Month containing seeded test data (sdk-test-team-1/2/3). */
26+ private static final String TEST_DATA_MONTH = "2026-02" ;
27+
2528 private static DefaultClient originalClient ;
2629
2730 @ BeforeAll
@@ -58,9 +61,10 @@ static void teardown() {
5861 class BasicQueries {
5962
6063 @ Test
61- @ DisplayName ("No parameters returns teams" )
62- void noParametersReturnsTeams () throws StreamException {
63- QueryTeamUsageStatsResponse response = TeamUsageStats .queryTeamUsageStats ().request ();
64+ @ DisplayName ("Month query returns teams" )
65+ void monthQueryReturnsTeams () throws StreamException {
66+ QueryTeamUsageStatsResponse response =
67+ TeamUsageStats .queryTeamUsageStats ().month (TEST_DATA_MONTH ).request ();
6468
6569 assertNotNull (response );
6670 assertNotNull (response .getTeams ());
@@ -176,7 +180,7 @@ class Pagination {
176180 @ DisplayName ("limit=3 returns exactly 3 teams" )
177181 void limitReturnsCorrectCount () throws StreamException {
178182 QueryTeamUsageStatsResponse response =
179- TeamUsageStats .queryTeamUsageStats ().limit (3 ).request ();
183+ TeamUsageStats .queryTeamUsageStats ().month ( TEST_DATA_MONTH ). limit (3 ).request ();
180184
181185 assertEquals (3 , response .getTeams ().size ());
182186 }
@@ -185,7 +189,7 @@ void limitReturnsCorrectCount() throws StreamException {
185189 @ DisplayName ("limit returns next cursor when more data exists" )
186190 void limitReturnsNextCursor () throws StreamException {
187191 QueryTeamUsageStatsResponse response =
188- TeamUsageStats .queryTeamUsageStats ().limit (3 ).request ();
192+ TeamUsageStats .queryTeamUsageStats ().month ( TEST_DATA_MONTH ). limit (3 ).request ();
189193
190194 assertNotNull (response .getNext ());
191195 assertFalse (response .getNext ().isEmpty ());
@@ -194,9 +198,14 @@ void limitReturnsNextCursor() throws StreamException {
194198 @ Test
195199 @ DisplayName ("Pagination with next cursor returns different teams" )
196200 void paginationReturnsDifferentTeams () throws StreamException {
197- QueryTeamUsageStatsResponse page1 = TeamUsageStats .queryTeamUsageStats ().limit (3 ).request ();
201+ QueryTeamUsageStatsResponse page1 =
202+ TeamUsageStats .queryTeamUsageStats ().month (TEST_DATA_MONTH ).limit (3 ).request ();
198203 QueryTeamUsageStatsResponse page2 =
199- TeamUsageStats .queryTeamUsageStats ().limit (3 ).next (page1 .getNext ()).request ();
204+ TeamUsageStats .queryTeamUsageStats ()
205+ .month (TEST_DATA_MONTH )
206+ .limit (3 )
207+ .next (page1 .getNext ())
208+ .request ();
200209
201210 // Verify no overlap between pages
202211 for (var t1 : page1 .getTeams ()) {
@@ -260,7 +269,8 @@ void responseHasDuration() throws StreamException {
260269 @ Test
261270 @ DisplayName ("Teams have team field" )
262271 void teamsHaveTeamField () throws StreamException {
263- QueryTeamUsageStatsResponse response = TeamUsageStats .queryTeamUsageStats ().request ();
272+ QueryTeamUsageStatsResponse response =
273+ TeamUsageStats .queryTeamUsageStats ().month (TEST_DATA_MONTH ).request ();
264274
265275 // team field exists (may be empty string for default team)
266276 assertDoesNotThrow (() -> response .getTeams ().get (0 ).getTeam ());
@@ -269,7 +279,8 @@ void teamsHaveTeamField() throws StreamException {
269279 @ Test
270280 @ DisplayName ("All 16 metrics are present and parseable" )
271281 void allMetricsPresent () throws StreamException {
272- QueryTeamUsageStatsResponse response = TeamUsageStats .queryTeamUsageStats ().request ();
282+ QueryTeamUsageStatsResponse response =
283+ TeamUsageStats .queryTeamUsageStats ().month (TEST_DATA_MONTH ).request ();
273284 var team = response .getTeams ().get (0 );
274285
275286 // Daily activity metrics
@@ -300,7 +311,8 @@ void allMetricsPresent() throws StreamException {
300311 @ Test
301312 @ DisplayName ("Metrics have total field with valid value" )
302313 void metricsHaveTotal () throws StreamException {
303- QueryTeamUsageStatsResponse response = TeamUsageStats .queryTeamUsageStats ().request ();
314+ QueryTeamUsageStatsResponse response =
315+ TeamUsageStats .queryTeamUsageStats ().month (TEST_DATA_MONTH ).request ();
304316 var team = response .getTeams ().get (0 );
305317
306318 // Verify total field is present and non-null
@@ -402,23 +414,6 @@ void monthQueryTestTeamsExist() throws StreamException {
402414 }
403415 }
404416
405- @ Nested
406- @ DisplayName ("Data Correctness - No Parameters Query" )
407- class DataCorrectnessNoParams {
408-
409- @ Test
410- @ DisplayName ("No params: test teams exist with valid metrics" )
411- void noParamsTestTeamsExist () throws StreamException {
412- QueryTeamUsageStatsResponse response = TeamUsageStats .queryTeamUsageStats ().request ();
413-
414- for (String teamName : List .of ("sdk-test-team-1" , "sdk-test-team-2" , "sdk-test-team-3" )) {
415- TeamUsageStats team = findTeamByName (response , teamName );
416- assertNotNull (team , teamName + " should exist" );
417- assertMetricsNonNegative (team , teamName );
418- }
419- }
420- }
421-
422417 @ Nested
423418 @ DisplayName ("Data Correctness - Pagination Query" )
424419 class DataCorrectnessPagination {
@@ -438,7 +433,7 @@ private TeamUsageStats findTeamAcrossPages(String teamName) throws StreamExcepti
438433 int maxPages = 10 ; // Safety limit
439434
440435 for (int page = 0 ; page < maxPages ; page ++) {
441- var requestBuilder = TeamUsageStats .queryTeamUsageStats ().limit (5 );
436+ var requestBuilder = TeamUsageStats .queryTeamUsageStats ().month ( TEST_DATA_MONTH ). limit (5 );
442437 if (nextCursor != null ) {
443438 requestBuilder = requestBuilder .next (nextCursor );
444439 }
0 commit comments