1 /***
2 * Copyright 2003-2010 Terracotta, Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 package net.sf.ehcache.constructs;
18
19 import java.util.Arrays;
20 import java.util.List;
21
22 import junit.framework.TestCase;
23 import net.sf.ehcache.CacheManager;
24 import net.sf.ehcache.constructs.MockDecoratorFactory.MockDecoratorFactoryCache;
25
26 import org.junit.Test;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
29
30 /***
31 * @author Abhishek Sanoujam
32 */
33 public class DefaultCacheDecoratorFactoryTest extends TestCase {
34
35 private static final Logger LOG = LoggerFactory.getLogger(DefaultCacheDecoratorFactoryTest.class);
36
37 private static final String EHCACHE_DEFAULT_DECORATOR_TEST_XML = "/ehcache-default-decorator-test.xml";
38
39 @Test
40 public void testCacheDecoratorFactory() {
41 CacheManager cacheManager = new CacheManager(getClass().getResourceAsStream(EHCACHE_DEFAULT_DECORATOR_TEST_XML));
42 List<String> cacheNames = Arrays.asList(cacheManager.getCacheNames());
43 LOG.info("" + cacheNames);
44
45 assertEquals(7, cacheNames.size());
46
47 assertTrue(cacheNames.contains("noDecoratorCache"));
48 assertTrue(cacheNames.contains("noDecoratorCache-defaultDecoratorOne"));
49 assertTrue(cacheNames.contains("noDecoratorCache-defaultDecoratorTwo"));
50 assertTrue(cacheNames.contains("oneDecoratorCache"));
51 assertTrue(cacheNames.contains("oneDecoratorCacheFirst"));
52 assertTrue(cacheNames.contains("oneDecoratorCache-defaultDecoratorOne"));
53 assertTrue(cacheNames.contains("oneDecoratorCache-defaultDecoratorTwo"));
54
55 }
56
57 @Test
58 public void testCacheDecoratorFactoryProperties() {
59 CacheManager cacheManager = new CacheManager(getClass().getResourceAsStream(EHCACHE_DEFAULT_DECORATOR_TEST_XML));
60 List<String> cacheNames = Arrays.asList(cacheManager.getCacheNames());
61 assertEquals(7, cacheNames.size());
62
63 MockDecoratorFactoryCache cache = (MockDecoratorFactoryCache) cacheManager.getEhcache("noDecoratorCache-defaultDecoratorOne");
64 assertEquals("defaultDecoratorOne", cache.getProperties().getProperty("someKey"));
65
66 cache = (MockDecoratorFactoryCache) cacheManager.getEhcache("noDecoratorCache-defaultDecoratorTwo");
67 assertEquals("defaultDecoratorTwo", cache.getProperties().getProperty("someKey"));
68
69 cache = (MockDecoratorFactoryCache) cacheManager.getEhcache("oneDecoratorCache-defaultDecoratorOne");
70 assertEquals("defaultDecoratorOne", cache.getProperties().getProperty("someKey"));
71
72 cache = (MockDecoratorFactoryCache) cacheManager.getEhcache("oneDecoratorCache-defaultDecoratorTwo");
73 assertEquals("defaultDecoratorTwo", cache.getProperties().getProperty("someKey"));
74
75 cache = (MockDecoratorFactoryCache) cacheManager.getEhcache("oneDecoratorCacheFirst");
76 assertEquals("oneFirst", cache.getProperties().getProperty("someKey"));
77
78 }
79 }