/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.plugin.manager;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import com.enonic.cms.api.plugin.ext.Extension;
import static org.junit.Assert.*;
public class ExtensionTrackerTest
{
private ExtensionTracker tracker;
private ExtensionHolder holder;
private BundleContext context;
@Before
public void setUp()
{
this.context = Mockito.mock( BundleContext.class );
this.holder = new ExtensionHolder();
this.tracker = new ExtensionTracker( this.context, this.holder );
}
@Test
public void testAddRemove()
{
final Extension ext = Mockito.mock( Extension.class );
final ServiceReference ref = Mockito.mock( ServiceReference.class );
Mockito.when( this.context.getService( ref ) ).thenReturn( ext );
this.tracker.addingService( ref );
final List<Extension> list1 = this.holder.getAll();
assertNotNull( list1 );
assertEquals( 1, list1.size() );
this.tracker.removedService( ref, ext );
final List<Extension> list2 = this.holder.getAll();
assertNotNull( list2 );
assertEquals( 0, list2.size() );
}
}