/*- | |
* ============LICENSE_START======================================================= | |
* OSAM | |
* ================================================================================ | |
* Copyright (C) 2018 AT&T | |
* ================================================================================ | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
* ============LICENSE_END========================================================= | |
*/ | |
package org.onap.fusion.core; | |
import java.io.IOException; | |
import org.junit.Before; | |
import org.junit.runner.RunWith; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.context.annotation.Bean; | |
import org.springframework.context.annotation.ComponentScan; | |
import org.springframework.context.annotation.Configuration; | |
import org.springframework.context.annotation.Profile; | |
import org.springframework.test.context.ActiveProfiles; | |
import org.springframework.test.context.ContextConfiguration; | |
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; | |
import org.springframework.test.context.web.AnnotationConfigWebContextLoader; | |
import org.springframework.test.context.web.WebAppConfiguration; | |
import org.springframework.test.web.servlet.MockMvc; | |
import org.springframework.test.web.servlet.setup.MockMvcBuilders; | |
import org.springframework.web.context.WebApplicationContext; | |
import org.springframework.web.servlet.config.annotation.InterceptorRegistry; | |
import org.testng.annotations.Test; | |
import org.onap.portalsdk.core.conf.AppConfig; | |
import org.onap.portalsdk.core.objectcache.AbstractCacheManager; | |
import org.onap.portalsdk.core.util.SystemProperties; | |
import org.onap.portalsdk.core.util.CacheManager; | |
@RunWith(SpringJUnit4ClassRunner.class) | |
@WebAppConfiguration | |
@ContextConfiguration(loader = AnnotationConfigWebContextLoader.class, classes = {MockAppConfig.class}) | |
@ActiveProfiles(value="test") | |
@Test(enabled=false) | |
public class MockApplicationContextTestSuite { | |
@Autowired | |
public WebApplicationContext wac; | |
/** The mock mvc. */ | |
private MockMvc mockMvc; | |
/** | |
* Setup. | |
*/ | |
@Before | |
public void setup() { | |
if(mockMvc == null) { | |
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); | |
} | |
} | |
/** | |
* Gets the bean. | |
* | |
* @param name the name | |
* @return the bean | |
*/ | |
public Object getBean(String name) { | |
return this.wac.getBean(name); | |
} | |
/** | |
* Gets the mock mvc. | |
* | |
* @return the mock mvc | |
*/ | |
public MockMvc getMockMvc() { | |
return mockMvc; | |
} | |
/** | |
* Sets the mock mvc. | |
* | |
* @param mockMvc the new mock mvc | |
*/ | |
public void setMockMvc(MockMvc mockMvc) { | |
this.mockMvc = mockMvc; | |
} | |
/** | |
* Gets the web application context. | |
* | |
* @return the web application context | |
*/ | |
public WebApplicationContext getWebApplicationContext() { | |
return wac; | |
} | |
} | |
@Configuration | |
@ComponentScan(basePackages = "org.onap", | |
excludeFilters = { | |
// the following source configurations should not be scanned; instead of using Exclusion filter, we can use the @Profile annotation to exclude them | |
// see AppConfig class | |
//@ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.onap.portalsdk.core.*AppConfig*")//, | |
//@ComponentScan.Filter(type = FilterType.REGEX, pattern = org.onap.*.*AppConfig*") | |
} | |
) | |
@Profile("test") | |
class MockAppConfig extends AppConfig { | |
@Bean | |
public SystemProperties systemProperties(){ | |
return new MockSystemProperties(); | |
} | |
@Bean | |
public AbstractCacheManager cacheManager() { | |
return new CacheManager() { | |
public void configure() throws IOException { | |
} | |
}; | |
} | |
protected String[] tileDefinitions() { | |
return new String[] {"classpath:/WEB-INF/fusion/defs/definitions.xml", "classpath:/WEB-INF/defs/definitions.xml"}; | |
} | |
@Override | |
public void addInterceptors(InterceptorRegistry registry) { | |
//registry.addInterceptor(new SessionTimeoutInterceptor()).excludePathPatterns(getExcludeUrlPathsForSessionTimeout()); | |
//registry.addInterceptor(resourceInterceptor()); | |
} | |
public static class MockSystemProperties extends SystemProperties { | |
public MockSystemProperties() { | |
} | |
} | |
} | |