connectioncontrollertest.java
来自「This is a resource based on j2me embedde」· Java 代码 · 共 1,253 行 · 第 1/4 页
JAVA
1,253 行
final String midlet1 = "com.sun.Foo"; final String connection1 = "foo://bar"; final String filter1 = "*.123"; final String connection2 = "foo2://bar"; final String filter2 = "*.123"; final String midlet3 = "com.sun.Bar"; final String connection3 = "qux://bar"; final String filter3 = "*.*"; final int midletSuiteId2 = midletSuiteId1 + 17; final String connection4 = "foo4://bar"; final String filter4 = "4.*.123"; final Store store = createStore(); final ConnectionController cc = createConnectionController(store); cc.registerConnection(midletSuiteId1, midlet1, new MockReservationDescriptor(connection1, filter1)); cc.registerConnection(midletSuiteId1, midlet1, new MockReservationDescriptor(connection2, filter2)); cc.registerConnection(midletSuiteId1, midlet3, new MockReservationDescriptor(connection3, filter3)); cc.registerConnection(midletSuiteId2, midlet1, new MockReservationDescriptor(connection4, filter4)); assertSetsEqual( new String [] { connection1, connection2, connection3 }, cc.listConnections(midletSuiteId1, false)); final String [] suite2cns = cc.listConnections(midletSuiteId2, false); assertEquals(1, suite2cns.length); assertEquals(connection4, suite2cns[0]); } public void testListConnectionsWithData() throws IOException { final int midletSuiteId = 123; final String midlet1 = "com.sun.Foo"; final String connection1 = "foo://bar"; final String filter1 = "*.123"; final MockReservationDescriptor descriptor1 = new MockReservationDescriptor(connection1, filter1); final String connection2 = "foo2://bar"; final String filter2 = "*.123"; final MockReservationDescriptor descriptor2 = new MockReservationDescriptor(connection2, filter2); final String midlet3 = "com.sun.Bar"; final String connection3 = "qux://bar"; final String filter3 = "*.*"; final MockReservationDescriptor descriptor3 = new MockReservationDescriptor(connection3, filter3); final Store store = createStore(); final ConnectionController cc = createConnectionController(store); cc.registerConnection(midletSuiteId, midlet1, descriptor1); cc.registerConnection(midletSuiteId, midlet1, descriptor2); cc.registerConnection(midletSuiteId, midlet3, descriptor3); descriptor1.connectionReservation.hasAvailableData_ = true; descriptor2.connectionReservation.hasAvailableData_ = false; descriptor3.connectionReservation.hasAvailableData_ = true; assertSetsEqual( new String [] { connection1, connection3 }, cc.listConnections(midletSuiteId, true)); } public void testUnregisterConnectionInEmptyController() throws IOException { final int midletSuiteId = 123; final String connection = "foo://bar"; final Store store = createStore(); final ConnectionController cc = createConnectionController(store); assertFalse(cc.unregisterConnection(midletSuiteId, connection)); checkStoreEmpty(store); assertEquals(0, cc.listConnections(midletSuiteId, false).length); assertNull(cc.getMIDlet(midletSuiteId, connection)); assertNull(cc.getFilter(midletSuiteId, connection)); } public void testUnregisterRegisteredConnection() throws IOException { final int midletSuiteId = 123; final String midlet = "com.sun.Foo"; final String connection = "foo://bar"; final String filter = "*.123"; final Store store = createStore(); final MockReservationDescriptor descriptor = new MockReservationDescriptor(connection, filter); final ConnectionController cc = createConnectionController(store); cc.registerConnection(midletSuiteId, midlet, descriptor); assertTrue(cc.unregisterConnection(midletSuiteId, connection)); assertTrue(descriptor.connectionReservation.isCancelled); checkStoreEmpty(store); assertEquals(0, cc.listConnections(midletSuiteId, false).length); assertNull(cc.getMIDlet(midletSuiteId, connection)); assertNull(cc.getFilter(midletSuiteId, connection)); } public void testUnregisterNotRegisteredConnection() throws IOException { final int midletSuiteId = 123; final String midlet = "com.sun.Foo"; final String connection = "foo://bar"; final String filter = "*.123"; final String connection2 = "com.sun.Bar"; final Store store = createStore(); final MockReservationDescriptor descriptor = new MockReservationDescriptor(connection, filter); final ConnectionController cc = createConnectionController(store); cc.registerConnection(midletSuiteId, midlet, descriptor); assertFalse(cc.unregisterConnection(midletSuiteId, connection2)); checkStoreHasSingleRecord(store, midletSuiteId, midlet, connection, filter); checkSingletonConnectionList(cc, midletSuiteId, connection); assertEquals(midlet, cc.getMIDlet(midletSuiteId, connection)); assertEquals(filter, cc.getFilter(midletSuiteId, connection)); } public void testUnregisterOtherSuiteConnection() throws IOException { final int midletSuiteId = 123; final String midlet = "com.sun.Foo"; final String connection = "foo://bar"; final String filter = "*.123"; final int midletSuiteId2 = midletSuiteId + 17; final Store store = createStore(); final MockReservationDescriptor descriptor = new MockReservationDescriptor(connection, filter); final ConnectionController cc = createConnectionController(store); cc.registerConnection(midletSuiteId, midlet, descriptor); boolean securityExceptionThrown = false; try { cc.unregisterConnection(midletSuiteId2, connection); } catch (SecurityException sex) { securityExceptionThrown = true; } assertTrue(securityExceptionThrown); checkStoreHasSingleRecord(store, midletSuiteId, midlet, connection, filter); checkSingletonConnectionList(cc, midletSuiteId, connection); assertEquals(midlet, cc.getMIDlet(midletSuiteId, connection)); assertEquals(filter, cc.getFilter(midletSuiteId, connection)); } public void testDataAvailableListener() throws IOException { final int midletSuiteId = 123; final String midlet = "com.sun.Foo"; final String connection = "foo://bar"; final String filter = "*.123"; final Store store = createStore(); final MockReservationDescriptor descriptor = new MockReservationDescriptor(connection, filter); final ListingLifecycleAdapter lifecycleAdapter = new ListingLifecycleAdapter(); final ConnectionController cc = createConnectionController(store, lifecycleAdapter); cc.registerConnection(midletSuiteId, midlet, descriptor); final Thread t = descriptor.connectionReservation.pingThread(); t.start(); try { t.join(); } catch (InterruptedException ie) { fail("Unexpected InterruptedException: " + ie); } assertTrue(lifecycleAdapter.hasBeenInvokedOnceFor(midletSuiteId, midlet)); } public void testConcurrentCancellation() throws IOException { final int midletSuiteId = 123; final String midlet = "com.sun.Foo"; final String connection = "foo://bar"; final String filter = "*.123"; final Store store = createStore(); final MockReservationDescriptor descriptor = new MockReservationDescriptor(connection, filter); final ListingLifecycleAdapter lifecycleAdapter = new ListingLifecycleAdapter(); final ConnectionController cc = createConnectionController(store, lifecycleAdapter); cc.registerConnection(midletSuiteId, midlet, descriptor); final DelayableThread t = descriptor.connectionReservation.pingThread(); synchronized (t.lock) { // start the thread first... t.start(); // ...but before listener starts, unregister connection... assertTrue(cc.unregisterConnection(midletSuiteId, connection)); // ...now let listener proceed } try { t.join(); } catch (InterruptedException ie) { fail("Unexpected InterruptedException: " + ie); } assertTrue(lifecycleAdapter.hasNotBeenInvoked()); } public void testUninstallSuiteWithNoConnections() throws IOException { final Store store = createStore(); final ConnectionController cc = createConnectionController(store); cc.removeSuiteConnections(239); checkStoreEmpty(store); } public void testUninstallWithTwoConnections() throws IOException { final int midletSuiteId = 123; final String midlet1 = "com.sun.Foo"; final String midlet2 = "com.sun.Bar"; final String connection1 = "foo://bar"; final String filter1 = "*.123"; final MockReservationDescriptor descriptor1 = new MockReservationDescriptor(connection1, filter1); final String connection2 = "foo://qux"; final String filter2 = "*.*"; final MockReservationDescriptor descriptor2 = new MockReservationDescriptor(connection2, filter2); final Store store = createStore(); final ListingLifecycleAdapter lifecycleAdapter = new ListingLifecycleAdapter(); final ConnectionController cc = createConnectionController(store, lifecycleAdapter); cc.registerConnection(midletSuiteId, midlet1, descriptor1); cc.registerConnection(midletSuiteId, midlet2, descriptor2); cc.removeSuiteConnections(midletSuiteId); assertTrue(descriptor1.connectionReservation.isCancelled); assertTrue(descriptor2.connectionReservation.isCancelled); assertFalse(cc.unregisterConnection(midletSuiteId, connection1)); assertFalse(cc.unregisterConnection(midletSuiteId, connection2)); assertEquals(0, cc.listConnections(midletSuiteId, false).length); assertNull(cc.getMIDlet(midletSuiteId, connection1)); assertNull(cc.getFilter(midletSuiteId, connection1)); assertNull(cc.getMIDlet(midletSuiteId, connection2)); assertNull(cc.getFilter(midletSuiteId, connection2)); checkStoreEmpty(store); } public void testConcurrentCancellationAndUninstall() throws IOException { final int midletSuiteId = 123; final String midlet1 = "com.sun.Foo"; final String midlet2 = "com.sun.Bar"; final String connection1 = "foo://bar"; final String filter1 = "*.123"; final MockReservationDescriptor descriptor1 = new MockReservationDescriptor(connection1, filter1); final String connection2 = "foo://qux"; final String filter2 = "*.*"; final MockReservationDescriptor descriptor2 = new MockReservationDescriptor(connection2, filter2); final Store store = createStore(); final ListingLifecycleAdapter lifecycleAdapter = new ListingLifecycleAdapter(); final ConnectionController cc =
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?