/*
* Copyright (c) 2010-2013 Evolveum
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.evolveum.midpoint.util;
import static org.testng.AssertJUnit.assertTrue;
import static org.testng.AssertJUnit.assertEquals;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Vector;
import org.testng.annotations.Test;
/**
* @author semancik
*
*/
public class TestMiscUtil {
@Test
public void testUnion() {
System.out.println("===[ testUnion ]===");
Collection<String> a = new HashSet<String>();
a.add("A1");
a.add("X");
a.add("Y");
Collection<String> b = new ArrayList<String>();
b.add("B1");
b.add("B2");
b.add("X");
Collection<String> c = new Vector<String>();
c.add("C1");
c.add("X");
c.add("Y");
Collection<String> union = MiscUtil.union(a,b,c);
System.out.println("Union: "+union);
assertEquals(6,union.size());
assertTrue(union.contains("A1"));
assertTrue(union.contains("X"));
assertTrue(union.contains("Y"));
assertTrue(union.contains("B1"));
assertTrue(union.contains("B2"));
assertTrue(union.contains("C1"));
}
@Test
public void testUglyXsiHack1() {
System.out.println("===[ testUglyXsiHack1 ]===");
String in = "<?xml> <!-- sjsdj --> <foobar></foobar>";
String out = UglyHacks.forceXsiNsDeclaration(in);
assertEquals("<?xml> <!-- sjsdj --> <foobar xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'></foobar>", out);
}
@Test
public void testUglyXsiHack2() {
System.out.println("===[ testUglyXsiHack2 ]===");
String in = "<foo:bar xmlns:foo='http://foo.com/'></foo:bar>";
String out = UglyHacks.forceXsiNsDeclaration(in);
assertEquals("<foo:bar xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:foo='http://foo.com/'></foo:bar>", out);
}
@Test
public void testUglyXsiHack3() {
System.out.println("===[ testUglyXsiHack3 ]===");
String in = "<foo:bar xmlns:foo='http://foo.com/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'></foo:bar>";
String out = UglyHacks.forceXsiNsDeclaration(in);
assertEquals(in, out);
}
@Test
public void testCarthesian() {
System.out.println("===[ testCarthesian ]===");
// GIVEN
Collection<Collection<String>> dimensions = new ArrayList<Collection<String>>();
Collection<String> dim1 = new ArrayList<String>();
dim1.add("a");
dim1.add("b");
dimensions.add(dim1);
Collection<String> dim2 = new ArrayList<String>();
dim2.add("1");
dim2.add("2");
dim2.add("3");
dim2.add("4");
dimensions.add(dim2);
Collection<String> dim3 = new ArrayList<String>();
dim3.add("x");
dim3.add("y");
dim3.add("z");
dimensions.add(dim3);
final List<String> combinations = new ArrayList<String>();
Processor<Collection<String>> processor = new Processor<Collection<String>>() {
@Override
public void process(Collection<String> s) {
System.out.println(s);
combinations.add(MiscUtil.concat(s));
}
};
// WHEN
MiscUtil.carthesian(dimensions, processor);
// THEN
System.out.println(combinations);
assertEquals("Wrong number of results", 24, combinations.size());
}
}