@Test
 public void testMapStoreInitialModeEager() {
   String xml =
       "<hazelcast>\n"
           + "<map name=\"mymap\">"
           + "<map-store enabled=\"true\" initial-mode=\"EAGER\"></map-store>"
           + "</map>"
           + "</hazelcast>";
   final Config config = buildConfig(xml);
   System.out.println("config = " + config);
   final MapStoreConfig mapStoreConfig = config.getMapConfig("mymap").getMapStoreConfig();
   assertTrue(mapStoreConfig.isEnabled());
   assertEquals(MapStoreConfig.InitialLoadMode.EAGER, mapStoreConfig.getInitialLoadMode());
 }
 @Test
 public void testMapConfig() {
   assertNotNull(config);
   assertEquals(6, config.getMapConfigs().size());
   MapConfig testMapConfig = config.getMapConfig("testMap");
   assertNotNull(testMapConfig);
   assertEquals("testMap", testMapConfig.getName());
   assertEquals(2, testMapConfig.getBackupCount());
   assertEquals(MapConfig.EvictionPolicy.NONE, testMapConfig.getEvictionPolicy());
   assertEquals(Integer.MAX_VALUE, testMapConfig.getMaxSizeConfig().getSize());
   assertEquals(30, testMapConfig.getEvictionPercentage());
   assertEquals(0, testMapConfig.getTimeToLiveSeconds());
   assertEquals("PUT_IF_ABSENT", testMapConfig.getMergePolicy());
   assertTrue(testMapConfig.isReadBackupData());
   assertEquals(2, testMapConfig.getMapIndexConfigs().size());
   for (MapIndexConfig index : testMapConfig.getMapIndexConfigs()) {
     if ("name".equals(index.getAttribute())) {
       assertFalse(index.isOrdered());
     } else if ("age".equals(index.getAttribute())) {
       assertTrue(index.isOrdered());
     } else {
       fail("unknown index!");
     }
   }
   // Test that the testMapConfig has a mapStoreConfig and it is correct
   MapStoreConfig testMapStoreConfig = testMapConfig.getMapStoreConfig();
   assertNotNull(testMapStoreConfig);
   assertEquals("com.hazelcast.spring.DummyStore", testMapStoreConfig.getClassName());
   assertTrue(testMapStoreConfig.isEnabled());
   assertEquals(0, testMapStoreConfig.getWriteDelaySeconds());
   assertEquals(MapStoreConfig.InitialLoadMode.EAGER, testMapStoreConfig.getInitialLoadMode());
   // Test that the testMapConfig has a nearCacheConfig and it is correct
   NearCacheConfig testNearCacheConfig = testMapConfig.getNearCacheConfig();
   assertNotNull(testNearCacheConfig);
   assertEquals(0, testNearCacheConfig.getTimeToLiveSeconds());
   assertEquals(60, testNearCacheConfig.getMaxIdleSeconds());
   assertEquals("LRU", testNearCacheConfig.getEvictionPolicy());
   assertEquals(5000, testNearCacheConfig.getMaxSize());
   assertTrue(testNearCacheConfig.isInvalidateOnChange());
   // Test that the testMapConfig2's mapStoreConfig implementation
   MapConfig testMapConfig2 = config.getMapConfig("testMap2");
   assertNotNull(testMapConfig2.getMapStoreConfig().getImplementation());
   assertEquals(dummyMapStore, testMapConfig2.getMapStoreConfig().getImplementation());
   assertEquals(
       MapStoreConfig.InitialLoadMode.LAZY,
       testMapConfig2.getMapStoreConfig().getInitialLoadMode());
   assertEquals("testWan", testMapConfig2.getWanReplicationRef().getName());
   //        assertEquals("hz.ADD_NEW_ENTRY",
   // testMapConfig2.getWanReplicationRef().getMergePolicy());
   assertEquals(1000, testMapConfig2.getMaxSizeConfig().getSize());
   assertEquals(
       MaxSizeConfig.MaxSizePolicy.PER_NODE, testMapConfig2.getMaxSizeConfig().getMaxSizePolicy());
   assertEquals(2, testMapConfig2.getEntryListenerConfigs().size());
   for (EntryListenerConfig listener : testMapConfig2.getEntryListenerConfigs()) {
     if (listener.getClassName() != null) {
       assertNull(listener.getImplementation());
       assertTrue(listener.isIncludeValue());
       assertFalse(listener.isLocal());
     } else {
       assertNotNull(listener.getImplementation());
       assertEquals(entryListener, listener.getImplementation());
       assertTrue(listener.isLocal());
       assertTrue(listener.isIncludeValue());
     }
   }
   MapConfig simpleMapConfig = config.getMapConfig("simpleMap");
   assertNotNull(simpleMapConfig);
   assertEquals("simpleMap", simpleMapConfig.getName());
   assertEquals(3, simpleMapConfig.getBackupCount());
   assertEquals(1, simpleMapConfig.getAsyncBackupCount());
   assertEquals(MapConfig.EvictionPolicy.LRU, simpleMapConfig.getEvictionPolicy());
   assertEquals(10, simpleMapConfig.getMaxSizeConfig().getSize());
   assertEquals(50, simpleMapConfig.getEvictionPercentage());
   assertEquals(1, simpleMapConfig.getTimeToLiveSeconds());
   assertEquals("LATEST_UPDATE", simpleMapConfig.getMergePolicy());
   // Test that the simpleMapConfig does NOT have a mapStoreConfig
   assertNull(simpleMapConfig.getMapStoreConfig());
   // Test that the simpleMapConfig does NOT have a nearCacheConfig
   assertNull(simpleMapConfig.getNearCacheConfig());
   MapConfig testMapConfig3 = config.getMapConfig("testMap3");
   assertEquals(
       "com.hazelcast.spring.DummyStoreFactory",
       testMapConfig3.getMapStoreConfig().getFactoryClassName());
   assertFalse(testMapConfig3.getMapStoreConfig().getProperties().isEmpty());
   assertEquals(testMapConfig3.getMapStoreConfig().getProperty("dummy.property"), "value");
   MapConfig testMapConfig4 = config.getMapConfig("testMap4");
   assertEquals(
       dummyMapStoreFactory, testMapConfig4.getMapStoreConfig().getFactoryImplementation());
 }