View Javadoc
1   package net.rakugakibox.spring.boot.orika;
2   
3   import ma.glasnost.orika.impl.DefaultMapperFactory.MapperFactoryBuilder;
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 MapperFactoryBuilder}.
17   */
18  @RunWith(SpringRunner.class)
19  @SpringBootTest
20  public class OrikaMapperFactoryBuilderConfiguringTest {
21  
22      /**
23       * The {@link MapperFactoryBuilder}.
24       */
25      @Autowired
26      protected MapperFactoryBuilder<?, ?> orikaMapperFactoryBuilder;
27  
28      /**
29       * The configuration 1 of {@link MapperFactoryBuilder}.
30       */
31      @Autowired
32      @Qualifier("orikaMapperFactoryBuilderConfiguration1")
33      protected OrikaMapperFactoryBuilderConfiguration orikaMapperFactoryBuilderConfiguration1;
34  
35      /**
36       * The configuration 2 of {@link MapperFactoryBuilder}.
37       */
38      @Autowired
39      @Qualifier("orikaMapperFactoryBuilderConfiguration2")
40      protected OrikaMapperFactoryBuilderConfiguration orikaMapperFactoryBuilderConfiguration2;
41  
42      /**
43       * Tests the {@link OrikaMapperFactoryBuilderConfigurer}s.
44       */
45      @Test
46      public void orikaMapperFactoryBuilderConfigurers() {
47          assertThat(orikaMapperFactoryBuilderConfiguration1.orikaMapperFactoryBuilder)
48                  .isSameAs(orikaMapperFactoryBuilder);
49          assertThat(orikaMapperFactoryBuilderConfiguration2.orikaMapperFactoryBuilder)
50                  .isSameAs(orikaMapperFactoryBuilder);
51      }
52  
53      /**
54       * The context configuration.
55       */
56      @EnableAutoConfiguration
57      @Configuration
58      public static class ContextConfiguration {
59  
60          /**
61           * Creates a configuration 1 of {@link MapperFactoryBuilder}.
62           *
63           * @return a configuration 1 of {@link MapperFactoryBuilder}.
64           */
65          @Bean
66          public OrikaMapperFactoryBuilderConfiguration orikaMapperFactoryBuilderConfiguration1() {
67              return new OrikaMapperFactoryBuilderConfiguration();
68          }
69  
70          /**
71           * Creates a configuration 2 of {@link MapperFactoryBuilder}.
72           *
73           * @return a configuration 2 of {@link MapperFactoryBuilder}.
74           */
75          @Bean
76          public OrikaMapperFactoryBuilderConfiguration orikaMapperFactoryBuilderConfiguration2() {
77              return new OrikaMapperFactoryBuilderConfiguration();
78          }
79  
80      }
81  
82      /**
83       * The configuration of {@link MapperFactoryBuilder}.
84       */
85      public static class OrikaMapperFactoryBuilderConfiguration implements OrikaMapperFactoryBuilderConfigurer {
86  
87          /**
88           * The passed {@link MapperFactoryBuilder}.
89           */
90          private MapperFactoryBuilder<?, ?> orikaMapperFactoryBuilder;
91  
92          /** {@inheritDoc} */
93          @Override
94          public void configure(MapperFactoryBuilder<?, ?> orikaMapperFactoryBuilder) {
95              this.orikaMapperFactoryBuilder = orikaMapperFactoryBuilder;
96          }
97  
98      }
99  
100 }