package saganx;
import sagan.support.github.StubGithubRestClient;
import javax.servlet.Filter;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.boot.test.autoconfigure.web.servlet.MockMvcBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.web.client.RestTemplate;
import static org.mockito.Mockito.mock;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static sagan.support.SecurityRequestPostProcessors.*;
@Configuration
class IntegrationTestsConfig {
@Primary
@Bean
public RestTemplate mockRestTemplate() {
return mock(RestTemplate.class);
}
@Primary
@Bean
public StubGithubRestClient stubGithubRestClient() {
return new StubGithubRestClient();
}
@Bean
public MockMvcBuilderCustomizer mockMvcBuilderCustomizer(ListableBeanFactory beanFactory) {
Filter springSecurityFilterChain = beanFactory.getBean("springSecurityFilterChain", Filter.class);
return builder -> builder.addFilters(springSecurityFilterChain)
.defaultRequest(get("/").with(csrf()).with(user(123L).roles("ADMIN")))
.build();
}
}