9f2d1a05cbc28b924f56ab1ed6693bf73fb0b3b4
[appc.git] / appc-core / appc-common-bundle / src / test / java / org / onap / appc / cache / impl / MetadataCacheFactoryTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP : APPC
4  * ================================================================================
5  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Copyright (C) 2017 Amdocs
8  * =============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  * 
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  * 
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * 
21  * ============LICENSE_END=========================================================
22  */
23
24 package org.onap.appc.cache.impl;
25
26 import static org.mockito.Mockito.mock;
27 import org.junit.Assert;
28 import org.junit.Test;
29 import org.junit.runner.RunWith;
30 import org.onap.appc.cache.CacheStrategies;
31 import org.powermock.api.mockito.PowerMockito;
32 import org.powermock.core.classloader.annotations.PrepareForTest;
33 import org.powermock.modules.junit4.PowerMockRunner;
34 import org.powermock.reflect.Whitebox;
35
36 @RunWith(PowerMockRunner.class)
37 @PrepareForTest({MetadataCacheFactory.class, MetadataCacheImpl.class})
38 public class MetadataCacheFactoryTest {
39     @Test
40     public void testConstructor() throws Exception {
41         Whitebox.invokeConstructor(MetadataCacheFactory.class);
42     }
43
44     @Test
45     public void testGetInstance() throws Exception {
46         Assert.assertTrue("Should not return null", MetadataCacheFactory.getInstance() != null);
47         Assert.assertEquals("Should always return the same object",
48                 MetadataCacheFactory.getInstance(), MetadataCacheFactory.getInstance());
49     }
50
51     @Test
52     public void testGetMetadataCacheWithNoArgument() throws Exception {
53         MetadataCacheImpl mockImpl = mock(MetadataCacheImpl.class);
54         PowerMockito.whenNew(MetadataCacheImpl.class).withNoArguments().thenReturn(mockImpl);
55         Assert.assertEquals(mockImpl, MetadataCacheFactory.getInstance().getMetadataCache());
56     }
57
58     @Test
59     public void testGetMetadataCacheWithArgument() throws Exception {
60         CacheStrategies cacheStrategies = CacheStrategies.LRU;
61         MetadataCacheImpl mockImpl = mock(MetadataCacheImpl.class);
62         PowerMockito.whenNew(MetadataCacheImpl.class).withArguments(cacheStrategies)
63                 .thenReturn(mockImpl);
64         Assert.assertEquals(mockImpl,
65                 MetadataCacheFactory.getInstance().getMetadataCache(cacheStrategies));
66     }
67
68 }