2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2017 AT&T Intellectual Property. All rights
 
   7  * ================================================================================
 
   8  * Licensed under the Apache License, Version 2.0 (the "License");
 
   9  * you may not use this file except in compliance with the License.
 
  10  * You may obtain a copy of the License at
 
  12  *      http://www.apache.org/licenses/LICENSE-2.0
 
  14  * Unless required by applicable law or agreed to in writing, software
 
  15  * distributed under the License is distributed on an "AS IS" BASIS,
 
  16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  17  * See the License for the specific language governing permissions and
 
  18  * limitations under the License.
 
  19  * ============LICENSE_END=========================================================
 
  22 package org.openecomp.appc.listener;
 
  24 import static org.junit.Assert.assertEquals;
 
  25 import static org.junit.Assert.assertFalse;
 
  26 import static org.junit.Assert.assertNotNull;
 
  27 import static org.junit.Assert.assertNull;
 
  28 import static org.junit.Assert.assertTrue;
 
  29 import static org.junit.Assert.fail;
 
  31 import java.util.Properties;
 
  33 import org.junit.Before;
 
  34 import org.junit.Test;
 
  35 import org.openecomp.appc.listener.AbstractListener;
 
  36 import org.openecomp.appc.listener.ListenerProperties;
 
  37 import org.openecomp.appc.listener.ListenerProperties.KEYS;
 
  39 public class TestListenerProperties {
 
  41     private Properties good, bad, both;
 
  42     private String prefix;
 
  44     private ListenerProperties props;
 
  49         good = new Properties();
 
  50         bad = new Properties();
 
  51         both = new Properties();
 
  53         good.setProperty(String.format("%s.%s", prefix, "a"), "1");
 
  54         good.setProperty(String.format("%s.%s", prefix, "a.b"), "2");
 
  55         good.setProperty(String.format("%s.%s", prefix, "a.b.c"), "3");
 
  57         bad.setProperty(prefix, "NA");
 
  58         bad.setProperty(prefix + ".", "NA");
 
  59         bad.setProperty(String.format("%s.%s", prefix + "x", "bad"), "NA");
 
  60         bad.setProperty(String.format("%s.%s", "x" + prefix, "bad"), "NA");
 
  62         for (String key : good.stringPropertyNames()) {
 
  63             both.put(key, good.getProperty(key));
 
  65         for (String key : bad.stringPropertyNames()) {
 
  66             both.put(key, bad.getProperty(key));
 
  69         props = new ListenerProperties(prefix, both);
 
  73     public void testConstructor() {
 
  74         props = new ListenerProperties(prefix, good);
 
  75         assertEquals(prefix, props.getPrefix());
 
  76         assertEquals(good.size(), props.getProperties().size());
 
  78         props = new ListenerProperties(prefix, bad);
 
  79         assertEquals(prefix, props.getPrefix());
 
  80         assertTrue(props.getProperties().isEmpty());
 
  82         props = new ListenerProperties(prefix, both);
 
  83         assertEquals(prefix, props.getPrefix());
 
  84         assertEquals(good.size(), props.getProperties().size());
 
  86         for (Object val : props.getProperties().values()) {
 
  87             assertFalse("NA".equals(val.toString()));
 
  90         assertTrue(props.toString().contains(prefix));
 
  94     public void testGetClass() {
 
  95         assertNull(props.getListenerClass());
 
  96         props.setListenerClass(AbstractListener.class);
 
  97         assertNotNull(props.getListenerClass());
 
  98         assertEquals(AbstractListener.class, props.getListenerClass());
 
 102     public void testMessageServices() {
 
 103         // Hardcode count so tests must be updated when values are added
 
 104         assertEquals(1, ListenerProperties.MessageService.values().length);
 
 107         ListenerProperties.MessageService def = ListenerProperties.MessageService.DMaaP;
 
 108         assertEquals(def, ListenerProperties.MessageService.parse(null));
 
 109         assertEquals(def, ListenerProperties.MessageService.parse(""));
 
 110         assertEquals(def, ListenerProperties.MessageService.parse("NotDmaapOrDMaaP"));
 
 113         // DMaaP case sensitivity
 
 114         assertEquals(ListenerProperties.MessageService.DMaaP, ListenerProperties.MessageService.parse("dmaap"));
 
 115         assertEquals(ListenerProperties.MessageService.DMaaP, ListenerProperties.MessageService.parse("DMAAP"));
 
 116         assertEquals(ListenerProperties.MessageService.DMaaP, ListenerProperties.MessageService.parse("DMaaP"));
 
 120     public void testKeys() {
 
 121         // Hardcode count so tests must be updated when values are added
 
 122         assertEquals(15, ListenerProperties.KEYS.values().length);
 
 124         Properties tmp = new Properties();
 
 126             tmp.load(getClass().getResourceAsStream("/org/openecomp/appc/default.properties"));
 
 127         } catch (Exception e) {
 
 128             fail("Could not load properties to test");
 
 130         String realPrefix = tmp.getProperty("test.prefix");
 
 131         assertNotNull(realPrefix);
 
 132         props = new ListenerProperties(realPrefix, tmp);
 
 134         for (KEYS key : ListenerProperties.KEYS.values()) {
 
 135             assertNotNull(key.getFullProp(realPrefix));
 
 136             assertNotNull(props.getProperty(key));
 
 137             assertNotNull(props.getProperty(key.getPropertySuffix()));
 
 142     public void testDisabled() throws Exception {
 
 143         assertFalse(props.isDisabled());
 
 144         props.getProperties().put(KEYS.DISABLED.getPropertySuffix(), "TRUE");
 
 145         assertTrue(props.isDisabled());
 
 146         props.getProperties().put(KEYS.DISABLED.getPropertySuffix(), "N/A");
 
 147         assertFalse(props.isDisabled());
 
 148         props.getProperties().put(KEYS.DISABLED.getPropertySuffix(), "fAlse");
 
 149         assertFalse(props.isDisabled());
 
 150         props.getProperties().remove(KEYS.DISABLED.getPropertySuffix());
 
 151         assertFalse(props.isDisabled());