Re-encrypt drools-pdp properties
[policy/drools-pdp.git] / feature-pooling-dmaap / src / test / java / org / onap / policy / drools / pooling / extractor / MethodExtractorTest.java
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP
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 package org.onap.policy.drools.pooling.extractor;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNull;
25
26 import java.lang.reflect.Method;
27 import org.junit.Before;
28 import org.junit.Test;
29
30 public class MethodExtractorTest {
31
32     private static final String VALUE = "the value";
33     private static final Integer INT_VALUE = 10;
34
35     private Method meth;
36     private MethodExtractor ext;
37
38     @Before
39     public void setUp() throws Exception {
40         meth = MyClass.class.getMethod("getValue");
41         ext = new MethodExtractor(meth);
42     }
43
44     @Test
45     public void testExtract() throws Exception {
46         assertEquals(VALUE, ext.extract(new MyClass()));
47
48         // repeat
49         assertEquals(VALUE, ext.extract(new MyClass()));
50
51         // null value
52         MyClass obj = new MyClass();
53         meth = MyClass.class.getMethod("getNullValue");
54         ext = new MethodExtractor(meth);
55         assertEquals(null, ext.extract(obj));
56
57         // different value type
58         meth = MyClass.class.getMethod("getIntValue");
59         ext = new MethodExtractor(meth);
60         assertEquals(INT_VALUE, ext.extract(new MyClass()));
61     }
62
63     @Test
64     public void testExtract_ArgEx() {
65         // pass it the wrong class type
66         assertNull(ext.extract(this));
67     }
68
69     @Test
70     public void testExtract_InvokeEx() throws Exception {
71         // invoke method that throws an exception
72         meth = MyClass.class.getMethod("throwException");
73         ext = new MethodExtractor(meth);
74         assertEquals(null, ext.extract(new MyClass()));
75     }
76
77     private static class MyClass {
78
79         @SuppressWarnings("unused")
80         public String getValue() {
81             return VALUE;
82         }
83
84         @SuppressWarnings("unused")
85         public int getIntValue() {
86             return INT_VALUE;
87         }
88
89         @SuppressWarnings("unused")
90         public String getNullValue() {
91             return null;
92         }
93
94         @SuppressWarnings("unused")
95         public String throwException() {
96             throw new IllegalStateException("expected");
97         }
98     }
99
100 }