### Question:
ThrottleManager { public ThrottleManager(ThrottleProfile inDefaultProfile) { this.mDefaultProfile = inDefaultProfile; this.mDestructionPeriod = this.mDefaultProfile.getPeriod(); this.mTimer.scheduleAtFixedRate(this.theTask, this.mDestructionPeriod, this.mDestructionPeriod); } ThrottleManager(ThrottleProfile inDefaultProfile); boolean isOperationAllowed(T inClient); boolean isOperationAllowed(T inClient, ThrottleProfile inProfile); static ThrottleManager<R> getRessourcesThrottle(ThrottleProfile inProfile);  }### Answer:
@Test public void testThrottleManager() { final ThrottleProfile theProfile = new ThrottleProfile(5, 10000); final String theClient1 = "client1"; final ThrottleManager<String> throttleManager = ThrottleManager.getRessourcesThrottle(theProfile); for (int i = 0; i < 20; i++) { if (((i >= 0) && (i < 5)) || ((i >= 10) && (i < 15))) { Assert.assertTrue(throttleManager.isOperationAllowed(theClient1, theProfile)); } else { Assert.assertFalse(throttleManager.isOperationAllowed(theClient1, theProfile)); } try { Thread.sleep(1000L); } catch (final InterruptedException e) { ThrottleManagerTest.LOGGER.fatal(e, e); } } }