/**
*
*/
package org.minnal.instrument;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertEquals;
import org.glassfish.jersey.server.ResourceConfig;
import org.minnal.core.Application;
import org.minnal.core.config.ApplicationConfiguration;
import org.minnal.core.config.DatabaseConfiguration;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.google.common.collect.Lists;
/**
* @author ganeshs
*
*/
public class MinnalApplicationEnhancerTest {
private Application<ApplicationConfiguration> application;
private ResourceConfig resourceConfig;
@BeforeMethod
public void setup() {
resourceConfig = mock(ResourceConfig.class);
application = mock(Application.class);
when(application.getResourceConfig()).thenReturn(resourceConfig);
ApplicationConfiguration configuration = mock(ApplicationConfiguration.class);
DatabaseConfiguration databaseConfiguration = mock(DatabaseConfiguration.class);
when(databaseConfiguration.getPackagesToScan()).thenReturn(Lists.newArrayList("com.test", "com.test.app"));
when(configuration.getDatabaseConfiguration()).thenReturn(databaseConfiguration);
when(application.getConfiguration()).thenReturn(configuration);
}
@Test
public void shouldGetPackagesToScan() {
Application<ApplicationConfiguration> application = mock(Application.class);
ApplicationConfiguration configuration = mock(ApplicationConfiguration.class);
DatabaseConfiguration databaseConfiguration = mock(DatabaseConfiguration.class);
when(databaseConfiguration.getPackagesToScan()).thenReturn(Lists.newArrayList("com.test", "com.test.app"));
when(configuration.getDatabaseConfiguration()).thenReturn(databaseConfiguration);
when(application.getConfiguration()).thenReturn(configuration);
assertEquals(MinnalApplicationEnhancer.getPackagesToScan(application), new String[]{"com.test", "com.test.app"});
}
@Test
public void shouldAddResource() {
NamingStrategy strategy = mock(NamingStrategy.class);
MinnalApplicationEnhancer enhancer = new MinnalApplicationEnhancer(application, strategy);
enhancer.addResource(DummyResource.class);
verify(resourceConfig).register(DummyResource.class);
}
private static class DummyResource {
}
}