View Javadoc
1   package net.rakugakibox.spring.boot.orika;
2   
3   import ma.glasnost.orika.MapperFactory;
4   import org.junit.Test;
5   import org.junit.runner.RunWith;
6   import org.springframework.beans.factory.annotation.Autowired;
7   import org.springframework.beans.factory.annotation.Qualifier;
8   import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
9   import org.springframework.boot.test.context.SpringBootTest;
10  import org.springframework.context.annotation.Bean;
11  import org.springframework.context.annotation.Configuration;
12  import org.springframework.test.context.junit4.SpringRunner;
13  import static org.assertj.core.api.Assertions.assertThat;
14  
15  /**
16   * The test to configure {@link MapperFactory}.
17   */
18  @RunWith(SpringRunner.class)
19  @SpringBootTest
20  public class OrikaMapperFactoryConfiguringTest {
21  
22      /**
23       * The {@link MapperFactory}.
24       */
25      @Autowired
26      protected MapperFactory orikaMapperFactory;
27  
28      /**
29       * The configuration 1 of {@link MapperFactory}.
30       */
31      @Autowired
32      @Qualifier("orikaMapperFactoryConfiguration1")
33      protected OrikaMapperFactoryConfiguration orikaMapperFactoryConfiguration1;
34  
35      /**
36       * The configuration 2 of {@link MapperFactory}.
37       */
38      @Autowired
39      @Qualifier("orikaMapperFactoryConfiguration2")
40      protected OrikaMapperFactoryConfiguration orikaMapperFactoryConfiguration2;
41  
42      /**
43       * Tests the {@link OrikaMapperFactoryConfigurer}s.
44       */
45      @Test
46      public void orikaMapperFactoryConfigurers() {
47          assertThat(orikaMapperFactoryConfiguration1.orikaMapperFactory).isSameAs(orikaMapperFactory);
48          assertThat(orikaMapperFactoryConfiguration2.orikaMapperFactory).isSameAs(orikaMapperFactory);
49      }
50  
51      /**
52       * The context configuration.
53       */
54      @EnableAutoConfiguration
55      @Configuration
56      public static class ContextConfiguration {
57  
58          /**
59           * Creates a configuration 1 of {@link MapperFactory}.
60           *
61           * @return a configuration 1 of {@link MapperFactory}.
62           */
63          @Bean
64          public OrikaMapperFactoryConfiguration orikaMapperFactoryConfiguration1() {
65              return new OrikaMapperFactoryConfiguration();
66          }
67  
68          /**
69           * Creates a configuration 2 of {@link MapperFactory}.
70           *
71           * @return a configuration 2 of {@link MapperFactory}.
72           */
73          @Bean
74          public OrikaMapperFactoryConfiguration orikaMapperFactoryConfiguration2() {
75              return new OrikaMapperFactoryConfiguration();
76          }
77  
78      }
79  
80      /**
81       * The configuration of {@link MapperFactory}.
82       */
83      public static class OrikaMapperFactoryConfiguration implements OrikaMapperFactoryConfigurer {
84  
85          /**
86           * The passed {@link MapperFactory}.
87           */
88          private MapperFactory orikaMapperFactory;
89  
90          /** {@inheritDoc} */
91          @Override
92          public void configure(MapperFactory orikaMapperFactory) {
93              this.orikaMapperFactory = orikaMapperFactory;
94          }
95  
96      }
97  
98  }