JsmppServerTestConfiguration.java

  1. package fr.sii.ogham.testing.extension.spring;

  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
  5. import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  6. import org.springframework.boot.test.context.TestConfiguration;
  7. import org.springframework.context.annotation.Bean;

  8. import fr.sii.ogham.testing.extension.junit.sms.JsmppServerExtension;
  9. import fr.sii.ogham.testing.extension.junit.sms.JsmppServerRule;
  10. import fr.sii.ogham.testing.extension.junit.sms.config.ServerConfig;

  11. /**
  12.  * Test configuration that registers:
  13.  * <ul>
  14.  * <li>{@link JsmppServerRule} bean for JUnit 4</li>
  15.  * <li>{@link JsmppServerExtension} bean for JUnit 5</li>
  16.  * <li>Configure port defined by {@code jsmpp.server.port} property.</li>
  17.  * </ul>
  18.  *
  19.  * @author AurĂ©lien Baudet
  20.  *
  21.  */
  22. @TestConfiguration
  23. public class JsmppServerTestConfiguration {
  24.     @Bean
  25.     @ConditionalOnMissingBean(JsmppServerRule.class)
  26.     @ConditionalOnProperty("jsmpp.server.port")
  27.     public JsmppServerRule randomJsmppPortRule(@Value("${jsmpp.server.port}") int port, @Autowired(required = false) ServerConfig config) {
  28.         return new JsmppServerRule(initConfig(port, config));
  29.     }
  30.    
  31.     @Bean
  32.     @ConditionalOnMissingBean(JsmppServerExtension.class)
  33.     @ConditionalOnProperty("jsmpp.server.port")
  34.     public JsmppServerExtension randomJsmppPortExtension(@Value("${jsmpp.server.port}") int port, @Autowired(required = false) ServerConfig config) {
  35.         return new JsmppServerExtension(initConfig(port, config));
  36.     }

  37.     private static ServerConfig initConfig(int port, ServerConfig config) {
  38.         if (config == null) {
  39.             config = new ServerConfig();
  40.         }
  41.         config.port(port);
  42.         return config;
  43.     }
  44. }