package com.aol.micro.server.module; import static com.aol.micro.server.module.RestResourceTagBuilder.restResourceTags; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import java.util.Arrays; import java.util.Map; import javax.servlet.Filter; import javax.servlet.http.HttpServlet; import cyclops.collections.immutable.PStackX; import org.junit.Before; import org.junit.Test; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import com.aol.micro.server.servers.model.ServerData; import com.aol.micro.server.utility.HashMapBuilder; public class ModuleDataExtractorTest { ModuleDataExtractor extractor; Module module; AnnotationConfigWebApplicationContext rootContext; ServerData data; Map<String, Filter> filters; @Before public void setup(){ module = ConfigurableModule.builder() .restResourceClasses(restResourceTags(ModuleDataExtractorTest.class)) .context("test") .servlets(HashMapBuilder.of("/*1",new BasicServlet())) .filters(HashMapBuilder.of("/*",new BasicFilter())) .build(); extractor = new ModuleDataExtractor(module); rootContext = mock(AnnotationConfigWebApplicationContext.class); data = ServerData.builder().resources(PStackX.of()).module(module).build(); } @Test public void testGetRestResources() { extractor.getRestResources(rootContext); verify(rootContext,times(1)).getBeansOfType(ModuleDataExtractorTest.class); } @Test public void testCreateFilteredDataList() { assertThat(extractor.createFilteredDataList(data).get(0).getMapping(),is("/*")); } @Test public void testCreateServletDataList() { assertThat(extractor.createServletDataList(data).get(0).getMapping(),is("/*1")); } public static class BasicServlet extends HttpServlet{ } }