Public and Private Locate entries
[aaf/authz.git] / auth / auth-certman / src / test / java / org / onap / aaf / auth / cm / JU_AAF_CM.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
4  * ===========================================================================
5  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6  * ===========================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END====================================================
19  *
20  */
21
22 package org.onap.aaf.auth.cm;
23
24 import static org.junit.Assert.assertTrue;
25 import static org.mockito.MockitoAnnotations.initMocks;
26
27 import java.lang.reflect.Field;
28 import java.lang.reflect.Modifier;
29 import java.security.NoSuchAlgorithmException;
30 import java.util.Properties;
31
32 import javax.servlet.Filter;
33
34 import org.junit.Before;
35 import org.junit.Test;
36 import org.junit.runner.RunWith;
37 import org.mockito.Mock;
38 import org.mockito.Mockito;
39 import org.onap.aaf.auth.cm.ca.CA;
40 import org.onap.aaf.auth.cm.facade.Facade1_0;
41 import org.onap.aaf.auth.cm.facade.FacadeFactory;
42 import org.onap.aaf.auth.cm.mapper.Mapper.API;
43 import org.onap.aaf.auth.cm.service.CMService;
44 import org.onap.aaf.auth.cm.service.Code;
45 import org.onap.aaf.auth.env.AuthzEnv;
46 import org.onap.aaf.auth.env.AuthzTransImpl;
47 import org.onap.aaf.auth.rserv.HttpMethods;
48 import org.onap.aaf.cadi.CadiException;
49 import org.onap.aaf.cadi.LocatorException;
50 import org.onap.aaf.cadi.PropAccess;
51 import org.onap.aaf.cadi.aaf.v2_0.AAFConHttp;
52 import org.onap.aaf.cadi.config.Config;
53 import org.onap.aaf.misc.env.Data;
54 import org.onap.aaf.misc.env.Env;
55 import org.onap.aaf.misc.env.LogTarget;
56 import org.onap.aaf.misc.env.TimeTaken;
57 import org.onap.aaf.misc.env.impl.BasicEnv;
58 import org.onap.aaf.misc.rosetta.env.RosettaDF;
59 import org.powermock.api.mockito.PowerMockito;
60 import org.powermock.core.classloader.annotations.PrepareForTest;
61 import org.powermock.modules.junit4.PowerMockRunner;
62
63 @RunWith(PowerMockRunner.class)
64 @PrepareForTest(FacadeFactory.class)
65 public class JU_AAF_CM {
66
67         @Mock
68         AuthzEnv env;
69         
70         BasicEnv baseEnv;
71         
72         @Mock
73         PropAccess access;
74         
75         AuthzTransImpl1 trans;
76         
77         AAF_CMImpl rosettaObj = null;
78         
79         @Before
80         public void setUp() {
81                 initMocks(this);
82                 
83                 try {
84                         Mockito.doReturn(access).when(env).access();
85                         Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
86                         Properties props=new Properties();
87                         Mockito.doReturn(props).when(access).getProperties();
88                         props.setProperty("cm_ca.props", "test");
89                         Mockito.doReturn("test:2.1").when(access).getProperty(Config.AAF_LOCATOR_NAMES, null);
90                         Mockito.doReturn("test").when(access).getProperty("https.protocols","TLSv1.1,TLSv1.2");
91                         Mockito.doReturn("test").when(env).getProperty("cm_ca.props.perm_type",null);
92                         Mockito.doReturn("test").when(env).getProperty("cm_ca.props.baseSubject",null);
93                         Mockito.doReturn("10").when(env).getProperty("CACHE_CLEAN_INTERVAL","60000");
94                         Mockito.doReturn("10").when(env).getProperty("CACHE_HIGH_COUNT","5000");
95                         trans = new AuthzTransImpl1(env);
96                         Mockito.doReturn(trans).when(env).newTrans();
97 //                      Mockito.doReturn("test").when(trans).getProperty("cm_ca.props.baseSubject",null);
98 //                      Mockito.doReturn(Mockito.mock(TimeTaken.class)).when(trans).start("Clear Reset Deque",8);
99                         
100                         Mockito.doReturn("TLSv1.1").when(access).getProperty("cadi_protocols","test");
101                         Mockito.doReturn("https://www.google.com").when(access).getProperty(Config.AAF_URL,null);
102                         Mockito.doReturn("test").when(env).getProperty(Config.AAF_ENV);
103                         Mockito.doReturn("10").when(env).getProperty(Config.CADI_LATITUDE);
104                         Mockito.doReturn("10").when(env).getProperty(Config.CADI_LONGITUDE);
105                         Mockito.doReturn("org.onap.aaf.auth.cm.LocalCAImpl,test;test").when(env).getProperty("cm_ca.props");
106                         Mockito.doReturn("google.com").when(env).getProperty("cassandra.clusters",null);
107 //                      Mockito.doReturn(Mockito.mock(AuthzTransImpl.class)).when(env).newTrans();
108                         Mockito.doReturn(Mockito.mock(LogTarget.class)).when(env).init();
109                         AAF_CM tempObj = Mockito.mock(AAF_CM.class);
110                         Field envField = tempObj.getClass().getField("env");
111                         Field modifiersField = Field.class.getDeclaredField("modifiers");
112                 modifiersField.setAccessible(true);
113                 modifiersField.setInt(envField, envField.getModifiers() & ~Modifier.FINAL);
114                         envField.setAccessible(true);
115                 envField.set(tempObj, env);
116                 RosettaDF rosettaObjTemp = Mockito.mock(RosettaDF.class);
117                 Mockito.doReturn(rosettaObjTemp).when(rosettaObjTemp).in(Data.TYPE.JSON);
118                 Mockito.doReturn(rosettaObjTemp).when(env).newDataFactory(aaf.v2_0.Error.class);
119                 Mockito.doReturn(rosettaObjTemp).when(env).newDataFactory(certman.v1_0.CertificateRequest.class);
120                 Mockito.doReturn(rosettaObjTemp).when(env).newDataFactory(certman.v1_0.CertificateRenew.class);
121                 Mockito.doReturn(rosettaObjTemp).when(env).newDataFactory(certman.v1_0.CertificateDrop.class);
122                 Mockito.doReturn(rosettaObjTemp).when(env).newDataFactory(certman.v1_0.CertInfo.class);
123                 Mockito.doReturn(rosettaObjTemp).when(env).newDataFactory(certman.v1_0.Artifacts.class);
124                 Mockito.doReturn(Data.TYPE.XML).when(rosettaObjTemp).getOutType();
125
126                 Facade1_0 facadeObj = Mockito.mock(Facade1_0.class);
127                         PowerMockito.mockStatic(FacadeFactory.class);
128                         FacadeFactory factObj = PowerMockito.mock(FacadeFactory.class);
129                         PowerMockito.when(factObj.v1_0(tempObj,trans, null,Data.TYPE.JSON)).thenReturn(facadeObj);
130                         
131 //                      Mockito.doReturn(Mockito.mock(Mapper.class)).when(facadeObj).mapper();
132
133                         
134                         rosettaObj = new AAF_CMImpl(env);
135                 } catch (Exception e) {
136                         // TODO Auto-generated catch block
137                         e.printStackTrace();
138                         assertTrue(e instanceof NullPointerException);
139                 }
140         }
141         
142         @Test
143         public void testTestCA() {
144                 CA obj = rosettaObj.getCA("props");
145                 assertTrue(obj instanceof CA);
146         }
147         
148 //      @Test
149 //      public void testRoute() {
150 //              try {
151 //                      rosettaObj.route(null, "", null, null);
152 //              } catch (Exception e) {
153 //                      // TODO Auto-generated catch block
154 //                      e.printStackTrace();
155 //              }
156 ////            System.out.println(obj);
157 ////            assertTrue(obj instanceof CA);
158 //      }
159         
160         @Test
161         public void testFilters() {
162                 try {
163                         Filter[] obj = rosettaObj._filters(new Object[] {"props"});
164                         System.out.println(obj);
165                 } catch (CadiException | LocatorException e) {
166                         // TODO Auto-generated catch block
167                         e.printStackTrace();
168                         assertTrue(e.getMessage().contains("NoSuchAlgorithmException"));
169                 }
170 //              assertTrue(obj instanceof CA);
171         }
172         
173         class AAF_CMImpl extends AAF_CM{
174
175                 public AAF_CMImpl(AuthzEnv env) throws Exception {
176                         super(env);
177                         // TODO Auto-generated constructor stub
178                 }
179                 
180                 @Override
181                 public synchronized AAFConHttp aafCon() throws CadiException, LocatorException {
182                         return Mockito.mock(AAFConHttp.class);
183                 }
184                 
185                 public CMService getService() {
186                 return Mockito.mock(CMService.class);
187             }
188                 
189                 @Override
190                 public void route(HttpMethods meth, String path, API api, Code code) throws Exception {
191                         
192                 }
193         }
194         
195         
196         
197         class AuthzTransImpl1 extends AuthzTransImpl{
198
199                 public AuthzTransImpl1(AuthzEnv env) {
200                         super(env);
201                         // TODO Auto-generated constructor stub
202                 }
203
204                 @Override
205                 protected TimeTaken newTimeTaken(String name, int flag) {
206                         // TODO Auto-generated method stub
207                         TimeTaken tt= new TimeTaken("nameTest", Env.XML) {
208                                 
209                                 @Override
210                                 public void output(StringBuilder sb) {
211                                         // TODO Auto-generated method stub
212                                         
213                                 }
214                         };
215                         return tt;
216                 }
217                 
218                 @Override
219                 public Metric auditTrail(int indent, StringBuilder sb, int ... flag) {
220                         return null;
221                 }
222                 
223         }
224         
225
226 }