@@ -112,15 +112,25 @@ public void sequentialApiAccess() {
112112 public void canDoReasonableNumberOfApiAccessPerSecond () throws Exception {
113113 int allowedRequests = 200 ;
114114 s_limitService .setMaxAllowed (allowedRequests );
115- s_limitService .setTimeToLive (1 );
115+ s_limitService .setTimeToLive (5 );
116+ long startTime = System .nanoTime ();
116117
117118 User key = createFakeUser ();
118119
119120 for (int i = 0 ; i < allowedRequests ; i ++) {
120- assertTrue ("We should allow " + allowedRequests + " requests per second, but failed at request " + i , isUnderLimit (key ));
121+ assertTrue (String . format ( "We should allow %d requests per second, but failed at request %d." , allowedRequests , i ) , isUnderLimit (key ));
121122 }
122-
123- assertFalse ("We should block >" + allowedRequests + " requests per second" , isUnderLimit (key ));
123+ // we cannot really say more about this test
124+ boolean underLimit = isUnderLimit (key );
125+ long endTime = System .nanoTime ();
126+ System .out .println ("time elapsed " + (endTime - startTime )/1000 /1000 + " ms" );
127+ int issued = s_limitService .getIssued (key .getAccountId ());
128+ int timeToLive = s_limitService .getTimeToLive ();
129+
130+ // this assertion is really invalid as we don´t know if we exceeded the time to live for the amount of api calls (for sure)
131+ // so only fail if timeToLive is not exeeded and we didn´t get the requested number of calls
132+ assertFalse (String .format ("We should block >%d requests per %d seconds (managed %d, time elapsed %d ns)" ,
133+ s_limitService .getMaxAllowed (), timeToLive , issued , endTime - startTime ), ((endTime - startTime )/1000000000 < timeToLive ) && underLimit );
124134 }
125135
126136 @ Test
0 commit comments