/** * */ package org.minnal.api; import static org.mockito.Matchers.any; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import org.minnal.api.filter.CorsFilter; import org.minnal.core.Application; import org.minnal.core.config.ApplicationConfiguration; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import com.wordnik.swagger.jaxrs.listing.ApiDeclarationProvider; import com.wordnik.swagger.jaxrs.listing.ApiListingResourceJSON; import com.wordnik.swagger.jaxrs.listing.ResourceListingProvider; /** * @author ganeshs * */ public class ApiPluginTest { private ApiPlugin apiPlugin; private Application<ApplicationConfiguration> application; @BeforeMethod public void setup() { application = mock(Application.class); } @Test public void shouldAddCorsFilterIfEnabled() { apiPlugin = new ApiPlugin(true); apiPlugin.init(application); verify(application).addFilter(CorsFilter.class); } @Test public void shouldNotAddCorsFilterIfNotEnabled() { apiPlugin = new ApiPlugin(false); apiPlugin.init(application); verify(application, never()).addFilter(CorsFilter.class); } @Test public void shouldAddProvidersOnInit() { apiPlugin = new ApiPlugin(false); apiPlugin.init(application); verify(application, atLeastOnce()).addProvider(any(ApiDeclarationProvider.class)); verify(application, atLeastOnce()).addProvider(any(ResourceListingProvider.class)); } @Test public void shouldAddResource() { apiPlugin = new ApiPlugin(false); apiPlugin.init(application); verify(application).addResource(ApiListingResourceJSON.class); } }