+++ /dev/null
-package de.juplo.facebook.errors;
-
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import org.junit.After;
-import org.junit.Test;
-import org.springframework.context.annotation.Configuration;
-import static org.junit.Assert.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.autoconfigure.logging.AutoConfigurationReportLoggingInitializer;
-import org.springframework.boot.autoconfigure.social.FacebookAutoConfiguration;
-import org.springframework.boot.autoconfigure.social.SocialWebAutoConfiguration;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Scope;
-import org.springframework.context.annotation.ScopedProxyMode;
-import org.springframework.mock.env.MockEnvironment;
-import org.springframework.mock.web.MockHttpServletRequest;
-import org.springframework.social.connect.ConnectionRepository;
-import org.springframework.social.facebook.api.Facebook;
-import org.springframework.social.facebook.api.impl.FacebookTemplate;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
-
-
-
-public class FacebookErrorsSpringSocialAutoConfigurationTest
-{
- private final Logger LOG =
- LoggerFactory.getLogger(FacebookErrorsSpringSocialAutoConfigurationTest.class);
-
-
- private ConfigurableApplicationContext context;
-
-
- @After
- public void tearDown()
- {
- if (this.context != null)
- this.context.close();
- }
-
-
- @Test
- public void defaultConfiguration()
- {
- LOG.info("<-- Start Of New Test-Case!");
- Map<String, String> properties = new HashMap<>();
- properties.put("spring.social.facebook.app-id", "APP_ID");
- properties.put("spring.social.facebook.app-secret", "APP_SECRET");
- context = loadWebApplicationContext(EmptyConfiguration.class, properties);
- Facebook facebook = context.getBean("facebook", Facebook.class);
- RestTemplate template = (RestTemplate) facebook.restOperations();
- assertEquals(GraphApiErrorHandler.class, template.getErrorHandler().getClass());
- }
-
-
- @Configuration
- static class EmptyConfiguration
- {
- /**
- * We have to provide this scoped bean for all our tests.
- * Otherwise, the tests will fail, if we do not set up a complete
- * environment with a connection-repository and a properly mocked request,
- * that holds appropriate information to fetch a connection from that
- * repository.
- * @param repository
- * @return
- */
- @Bean
- @Scope(value = "request", proxyMode = ScopedProxyMode.INTERFACES)
- public Facebook facebook(ConnectionRepository repository)
- {
- return new FacebookTemplate("ACCESS_TOKEN");
- }
- }
-
-
- private ConfigurableApplicationContext loadWebApplicationContext(
- Class<?> config,
- Map<String, String> properties
- )
- {
- AnnotationConfigWebApplicationContext ctx =
- new AnnotationConfigWebApplicationContext();
- if (properties != null)
- {
- MockEnvironment env = new MockEnvironment();
- for (Entry<String, String> entry : properties.entrySet())
- env.withProperty(entry.getKey(), entry.getValue());
- ctx.setEnvironment(env);
- }
- ctx.register(FacebookErrorsSpringSocialAutoConfiguration.class);
- ctx.register(FacebookAutoConfiguration.class);
- ctx.register(SocialWebAutoConfiguration.class);
- ctx.register(config);
- AutoConfigurationReportLoggingInitializer report =
- new AutoConfigurationReportLoggingInitializer();
- report.initialize(ctx);
- MockHttpServletRequest request = new MockHttpServletRequest();
- ServletRequestAttributes attributes = new ServletRequestAttributes(request);
- RequestContextHolder.setRequestAttributes(attributes);
- ctx.refresh();
- return ctx;
- }
-}