/******************************************************************************* * (c) Copyright 2016 Hewlett-Packard Development Company, L.P. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Apache License v2.0 which accompany this distribution. * * The Apache License is available at * http://www.apache.org/licenses/LICENSE-2.0 * *******************************************************************************/ package io.cloudslang.lang.entities.utils; import com.google.common.collect.Sets; import io.cloudslang.lang.entities.SystemProperty; import io.cloudslang.lang.entities.bindings.InOutParam; import io.cloudslang.lang.entities.bindings.Input; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Set; import junit.framework.Assert; import org.junit.BeforeClass; import org.junit.Test; /** * @author Bonczidai Levente * @since 7/14/2016 */ public class SetUtilsTest { private static Set<String> EMPTY_SET; private static Set<String> SET_1; private static Set<SystemProperty> EMPTY_SET_SP; private static Set<SystemProperty> SET_SP_1; private static SystemProperty SP_1; private static Set<String> SET_1_2; private static Collection<Set<String>> COL_SET_1_2; private static Collection<Set<String>> COL_SET_1_2_EMPTY; private static Collection<InOutParam> EMPTY_IN_OUT_PARAMS; private static Collection<InOutParam> IN_OUT_PARAMS_1; private static InOutParam inOutParam1; @BeforeClass public static void setUpClass() { EMPTY_SET = Collections.emptySet(); SET_1 = Sets.newHashSet( "1", "ElemeNT", "last" ); EMPTY_SET_SP = Collections.emptySet(); SystemProperty sp2 = new SystemProperty("a.b", "host", "value"); SystemProperty sp3 = new SystemProperty("a.b", "KEY.subKey", "value"); SystemProperty sp4 = new SystemProperty("a.b", "port", "value"); SET_SP_1 = Sets.newHashSet(sp2, sp3, sp4); SP_1 = new SystemProperty("a.b", "key.subkey", "value"); Set<String> set2 = Sets.newHashSet( "2", "ElemeNT", "last one" ); SET_1_2 = new HashSet<>(SET_1.size() + set2.size()); SET_1_2.addAll(SET_1); SET_1_2.addAll(set2); COL_SET_1_2 = new ArrayList<>(2); COL_SET_1_2.add(SET_1); COL_SET_1_2.add(set2); COL_SET_1_2_EMPTY = new ArrayList<>(COL_SET_1_2.size() + 1); COL_SET_1_2_EMPTY.addAll(COL_SET_1_2); COL_SET_1_2_EMPTY.add(EMPTY_SET); EMPTY_IN_OUT_PARAMS = Collections.emptyList(); IN_OUT_PARAMS_1 = new ArrayList<>(); IN_OUT_PARAMS_1.add(new Input.InputBuilder("name1", "value").build()); IN_OUT_PARAMS_1.add(new Input.InputBuilder("name2", "value").build()); IN_OUT_PARAMS_1.add(new Input.InputBuilder("name3", "value").build()); inOutParam1 = new Input.InputBuilder("NAMe2", "value").build(); } @Test public void testContainsIgnoreCaseEmpty() throws Exception { Assert.assertFalse(SetUtils.containsIgnoreCase(EMPTY_SET, "element")); } @Test public void testContainsIgnoreCase() throws Exception { Assert.assertTrue(SetUtils.containsIgnoreCase(SET_1, "element")); } @Test public void testContainsIgnoreCaseBasedOnFqnEmpty() throws Exception { Assert.assertFalse(SetUtils.containsIgnoreCaseBasedOnFqn(EMPTY_SET_SP, SP_1)); } @Test public void testContainsIgnoreCaseBasedOnFqn() throws Exception { Assert.assertTrue(SetUtils.containsIgnoreCaseBasedOnFqn(SET_SP_1, SP_1)); } @Test public void testMergeSetsEmpty() throws Exception { Assert.assertEquals(SET_1_2, SetUtils.mergeSets(COL_SET_1_2_EMPTY)); } @Test public void testMergeSets() throws Exception { Assert.assertEquals(SET_1_2, SetUtils.mergeSets(COL_SET_1_2)); } @Test public void testContainsIgnoreCaseBasedOnNameEmpty() throws Exception { Assert.assertFalse(SetUtils.containsIgnoreCaseBasedOnName(EMPTY_IN_OUT_PARAMS, inOutParam1)); } @Test public void testContainsIgnoreCaseBasedOnName() throws Exception { Assert.assertTrue(SetUtils.containsIgnoreCaseBasedOnName(IN_OUT_PARAMS_1, inOutParam1)); } }