alarmcontrollertest.java
来自「This is a resource based on j2me embedde」· Java 代码 · 共 508 行 · 第 1/2 页
JAVA
508 行
InterruptedException { final FiredChecker firedChecker = new FiredChecker(17, "com.sun.Foo"); registerAndWait(firedChecker); final long previous = firedChecker.registerCheckedAlarm(10001L); firedChecker.alarmController.dispose(); assertEquals(0L, previous); } private static boolean checkNoAlarms(final Store store) { final boolean noAlarms [] = { true }; store.listAlarms(new Store.AlarmsConsumer() { public void consume(final int suiteId, final Map alarms) { /* * NOTE: store shouldn't report suites without alarms * (empty map) */ noAlarms[0] = false; } }); return noAlarms[0]; } public void testNoRecordAfterFiring() throws IOException, InterruptedException { final Store store = createStore(); final FiredChecker firedChecker = new FiredChecker(store, 17, "com.sun.Foo"); registerAndWait(firedChecker); firedChecker.alarmController.dispose(); assertTrue(checkNoAlarms(store)); } public void testNotFiredStored() throws IOException, InterruptedException { final int MIDLET_SUITE_ID = 17; final String MIDLET = "com.sun.Foo"; final Store store = createStore(); final FiredChecker firedChecker = new FiredChecker(store, MIDLET_SUITE_ID, MIDLET); final long time = System.currentTimeMillis() + 1001L; firedChecker.alarmController.registerAlarm(MIDLET_SUITE_ID, MIDLET, time); firedChecker.alarmController.dispose(); if (firedChecker.hasBeenFired()) { fail("Test is not reliable: the alarm has been fired"); } final boolean alarmPresent [] = { false }; final boolean otherAlarmsPresent [] = { false }; store.listAlarms(new Store.AlarmsConsumer() { public void consume(final int suiteId, final Map alarms) { if (suiteId != MIDLET_SUITE_ID) { otherAlarmsPresent[0] = true; return; } if (alarms.size() > 1) { otherAlarmsPresent[0] = true; return; } final Long t = (Long) alarms.get(MIDLET); if ((t == null) || (t.longValue() != time)) { otherAlarmsPresent[0] = true; return; } alarmPresent[0] = true; } }); assertTrue(alarmPresent[0]); assertFalse(otherAlarmsPresent[0]); } public void testAlarmRecordRead() throws IOException, InterruptedException { final int MIDLET_SUITE_ID = 17; final String MIDLET = "com.sun.Foo"; final Store store = createStore(); final long time = System.currentTimeMillis() + 501L; store.addAlarm(MIDLET_SUITE_ID, MIDLET, time); final FiredChecker firedChecker = new FiredChecker(store, MIDLET_SUITE_ID, MIDLET); Thread.sleep(3*(time - System.currentTimeMillis())); firedChecker.alarmController.dispose(); assertTrue(firedChecker.hasBeenFired()); } public void testPassedAlarmImmediatelyScheduled() throws IOException, InterruptedException { final int MIDLET_SUITE_ID = 17; final String MIDLET = "com.sun.Foo"; final Store store = createStore(); final long time = System.currentTimeMillis() - 501L; store.addAlarm(MIDLET_SUITE_ID, MIDLET, time); final FiredChecker firedChecker = new FiredChecker(store, MIDLET_SUITE_ID, MIDLET); Thread.sleep(101L); // just a small delta firedChecker.alarmController.dispose(); assertTrue(firedChecker.hasBeenFired()); } public void testSuiteUninstallPersistentStore() throws IOException { final int MIDLET_SUITE_ID = 17; final String MIDLET_1 = "com.sun.Foo"; final String MIDLET_2 = "com.sun.Bar"; final Store store = createStore(); final AlarmController alarmController = createAlarmController(store); registerAlarmWithDelta(alarmController, MIDLET_SUITE_ID, MIDLET_1, 1001L); registerAlarmWithDelta(alarmController, MIDLET_SUITE_ID, MIDLET_2, 2001L); alarmController.removeSuiteAlarms(MIDLET_SUITE_ID); alarmController.dispose(); assertTrue(checkNoAlarms(store)); } public void testSuiteUninstallPersistentStore2() throws IOException, InterruptedException { final int MIDLET_SUITE_ID_1 = 17; final String MIDLET_11 = "com.sun.Foo"; final long DELTA = 47L; final String MIDLET_12 = "com.sun.Bar"; final int MIDLET_SUITE_ID_2 = 13; final String MIDLET_21 = "com.sun.Qux"; final Store store = createStore(); final FiredChecker firedChecker = new FiredChecker(store, MIDLET_SUITE_ID_1, MIDLET_11); registerAlarmWithDelta(firedChecker.alarmController, MIDLET_SUITE_ID_1, MIDLET_11, DELTA); registerAlarmWithDelta(firedChecker.alarmController, MIDLET_SUITE_ID_2, MIDLET_21, 3001L); registerAlarmWithDelta(firedChecker.alarmController, MIDLET_SUITE_ID_1, MIDLET_12, 2001L); Thread.sleep(3*DELTA); firedChecker.alarmController.dispose(); if (!firedChecker.hasBeenFired()) { fail("Test is not reliable: the alarm hasn't been fired"); } final boolean [] suite1ok = { false }; final boolean [] suite2ok = { false }; final boolean [] noOthers = { true }; store.listAlarms(new Store.AlarmsConsumer() { public void consume(final int suiteId, final Map alarms) { switch (suiteId) { case MIDLET_SUITE_ID_1: if (alarms.size() > 1) { noOthers[0] = false; } else if (alarms.containsKey(MIDLET_12)) { suite1ok[0] = true; } break; case MIDLET_SUITE_ID_2: if (alarms.size() > 1) { noOthers[0] = false; } else if (alarms.containsKey(MIDLET_21)) { suite2ok[0] = true; } break; default: noOthers[0] = false; } } }); assertTrue("Suite 1 is incorrect", suite1ok[0]); assertTrue("Suite 2 is incorrect", suite2ok[0]); assertTrue("Unexpected registrations", noOthers[0]); } public void testCoupleMidletFirstRegistration() throws IOException { final long ALARM_DELTA = 1001L; // in ms final int MIDLET_SUITE_ID = 17; final String MIDLET_1 = "com.sun.Foo"; final String MIDLET_2 = "com.sun.Bar"; final FiredChecker firedChecker = new FiredChecker(MIDLET_SUITE_ID, MIDLET_1); final AlarmController alarmController = firedChecker.alarmController; registerAlarmWithDelta(alarmController, MIDLET_SUITE_ID, MIDLET_1, ALARM_DELTA); final long previous = registerAlarmWithDelta(alarmController, MIDLET_SUITE_ID, MIDLET_2, 2*ALARM_DELTA); if (firedChecker.hasBeenFired()) { fail("Test is not reliable: the alarm has been fired." + " Please, increase ALARM_DELTA"); } alarmController.dispose(); assertEquals(0L, previous); } public void testThrowingLifecycleAdapter() throws IOException, InterruptedException { final long ALARM_DELTA = 101L; // in ms final long WAIT_DELAY = 3*ALARM_DELTA; final int MIDLET_SUITE_ID = 17; final String MIDLET = "com.sun.Foo"; final ListingLifecycleAdapter listingLifecycleAdapter = new ListingLifecycleAdapter(); final LifecycleAdapter throwingLifecycleAdapter = new ThrowingLifecycleAdapter(); final ProxyLifecycleAdapter lifecycleAdapter = new ProxyLifecycleAdapter(); final AlarmController alarmController = createAlarmController(lifecycleAdapter); lifecycleAdapter.setProxy(throwingLifecycleAdapter); registerAlarmWithDelta(alarmController, MIDLET_SUITE_ID, MIDLET, ALARM_DELTA); Thread.sleep(WAIT_DELAY); // And now check that everything is ok despite of previously // thrown adapter lifecycleAdapter.setProxy(listingLifecycleAdapter); registerAlarmWithDelta(alarmController, MIDLET_SUITE_ID, MIDLET, ALARM_DELTA); Thread.sleep(WAIT_DELAY); alarmController.dispose(); assertTrue(listingLifecycleAdapter .hasBeenInvokedOnceFor(MIDLET_SUITE_ID, MIDLET)); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?