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 + -
显示快捷键?