blob: 23902a5c3d31f4d769e2ee4c17147fef7d9222b1 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.cxf.dosgi.dsw.service;
import org.easymock.EasyMock;
import org.easymock.IMocksControl;
import org.junit.Test;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.remoteserviceadmin.EndpointDescription;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
public class ImportRegistrationImplTest {
@Test
public void testException() {
IMocksControl c = EasyMock.createNiceControl();
Exception e = c.createMock(Exception.class);
c.replay();
ImportRegistrationImpl i = new ImportRegistrationImpl(e);
assertEquals(e, i.getException());
assertNull(i.getImportedEndpointDescription());
assertNull(i.getImportedService());
assertEquals(i, i.getParent());
}
@Test
public void testDefaultCtor() {
IMocksControl c = EasyMock.createNiceControl();
EndpointDescription endpoint = c.createMock(EndpointDescription.class);
RemoteServiceAdminCore rsac = c.createMock(RemoteServiceAdminCore.class);
c.replay();
ImportRegistrationImpl i = new ImportRegistrationImpl(endpoint, rsac);
assertNull(i.getException());
assertEquals(i, i.getParent());
assertEquals(endpoint, i.getImportedEndpointDescription());
}
@SuppressWarnings("rawtypes")
@Test
public void testCloneAndClose() {
IMocksControl c = EasyMock.createControl();
EndpointDescription endpoint = c.createMock(EndpointDescription.class);
RemoteServiceAdminCore rsac = c.createMock(RemoteServiceAdminCore.class);
ServiceRegistration sr = c.createMock(ServiceRegistration.class);
ServiceReference sref = c.createMock(ServiceReference.class);
EasyMock.expect(sr.getReference()).andReturn(sref).anyTimes();
c.replay();
ImportRegistrationImpl i1 = new ImportRegistrationImpl(endpoint, rsac);
ImportRegistrationImpl i2 = new ImportRegistrationImpl(i1);
ImportRegistrationImpl i3 = new ImportRegistrationImpl(i2);
try {
i2.setImportedServiceRegistration(sr);
assertTrue("An exception should be thrown here !", false);
} catch (IllegalStateException e) {
// must be thrown here
}
i1.setImportedServiceRegistration(sr);
assertEquals(i1, i1.getParent());
assertEquals(i1, i2.getParent());
assertEquals(i1, i3.getParent());
assertEquals(endpoint, i1.getImportedEndpointDescription());
assertEquals(endpoint, i2.getImportedEndpointDescription());
assertEquals(endpoint, i3.getImportedEndpointDescription());
c.verify();
c.reset();
rsac.removeImportRegistration(EasyMock.eq(i3));
EasyMock.expectLastCall().once();
c.replay();
i3.close();
i3.close(); // shouldn't change anything
assertNull(i3.getImportedEndpointDescription());
c.verify();
c.reset();
rsac.removeImportRegistration(EasyMock.eq(i1));
EasyMock.expectLastCall().once();
c.replay();
i1.close();
c.verify();
c.reset();
rsac.removeImportRegistration(EasyMock.eq(i2));
EasyMock.expectLastCall().once();
sr.unregister();
EasyMock.expectLastCall().once();
c.replay();
i2.close();
c.verify();
}
@Test
public void testCloseAll() {
IMocksControl c = EasyMock.createControl();
EndpointDescription endpoint = c.createMock(EndpointDescription.class);
RemoteServiceAdminCore rsac = c.createMock(RemoteServiceAdminCore.class);
c.replay();
ImportRegistrationImpl i1 = new ImportRegistrationImpl(endpoint, rsac);
ImportRegistrationImpl i2 = new ImportRegistrationImpl(i1);
ImportRegistrationImpl i3 = new ImportRegistrationImpl(i2);
assertEquals(i1, i1.getParent());
assertEquals(i1, i2.getParent());
assertEquals(i1, i3.getParent());
c.verify();
c.reset();
rsac.removeImportRegistration(EasyMock.eq(i2));
EasyMock.expectLastCall().once();
c.replay();
i2.close();
c.verify();
c.reset();
rsac.removeImportRegistration(EasyMock.eq(i1));
EasyMock.expectLastCall().once();
rsac.removeImportRegistration(EasyMock.eq(i3));
EasyMock.expectLastCall().once();
c.replay();
i3.closeAll();
c.verify();
}
}