Skip to content

Instantly share code, notes, and snippets.

@njbartlett
Created December 12, 2012 15:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save njbartlett/4268406 to your computer and use it in GitHub Desktop.
Save njbartlett/4268406 to your computer and use it in GitHub Desktop.
OSGi bundle unit testing
package org.example.tests;
import junit.framework.TestCase;
import org.example.exchange.api.Exchange;
import org.example.exchange.api.ExchangeListener;
import org.example.model.orders.Order;
import org.example.model.orders.OrderHelper;
import org.example.model.orders.Side;
import org.mockito.Mockito;
import org.osgi.framework.BundleContext;
import org.osgi.framework.FrameworkUtil;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
import static org.mockito.Mockito.*;
public class ExampleTest extends TestCase {
private final BundleContext context = FrameworkUtil.getBundle(this.getClass()).getBundleContext();
public void testExample() throws Exception {
ServiceReference[] refs = context.getAllServiceReferences("org.example.exchange.api.Exchange", null);
assertEquals(1, refs.length);
ExchangeListener mockListener = mock(ExchangeListener.class);
ServiceRegistration mockReg = context.registerService(ExchangeListener.class.getName(), mockListener, null);
Exchange exchange = (Exchange) context.getService(refs[0]);
Order order = OrderHelper.createOrder();
order.setSide(Side.OFFER);
order.setSymbol("MSFT");
exchange.submitOrder(order);
context.ungetService(refs[0]);
mockReg.unregister();
verify(mockListener).orderSubmitted(eq(exchange), anyString(), eq(order));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment