• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.fasterxml.jackson.databind.module;
2 
3 import com.fasterxml.jackson.core.Version;
4 import com.fasterxml.jackson.databind.*;
5 
6 public class TestDuplicateRegistration extends BaseMapTest
7 {
8     static class MyModule extends com.fasterxml.jackson.databind.Module {
9         public int regCount;
10 
MyModule()11         public MyModule() {
12             super();
13         }
14 
15         @Override
getModuleName()16         public String getModuleName() {
17             return "TestModule";
18         }
19 
20         @Override
version()21         public Version version() {
22             return Version.unknownVersion();
23         }
24 
25         @Override
setupModule(SetupContext context)26         public void setupModule(SetupContext context) {
27             ++regCount;
28         }
29     }
30 
testDuplicateRegistration()31     public void testDuplicateRegistration() throws Exception
32     {
33         // by default, duplicate registration should be prevented
34         ObjectMapper mapper = new ObjectMapper();
35         assertTrue(mapper.isEnabled(MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS));
36         MyModule module = new MyModule();
37         mapper.registerModule(module);
38         mapper.registerModule(module);
39         mapper.registerModule(module);
40         assertEquals(1, module.regCount);
41 
42         // but may be allowed by changing setting
43         mapper.disable(MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS);
44         mapper.registerModule(module);
45         assertEquals(2, module.regCount);
46 
47         final MyModule module2 = new MyModule();
48         // and ditto for a new instance
49         @SuppressWarnings("unused")
50         ObjectMapper mapper2 = jsonMapperBuilder()
51                 .disable(MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS)
52                 .addModule(module2)
53                 .addModule(module2)
54                 .addModule(module2)
55                 .build();
56         assertEquals(3, module2.regCount);
57     }
58 }
59