blob: 249f8d31d4c673a47723341fcfee5bc33308af41 [file] [log] [blame]
// ***************************************************************************************************************************
// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file *
// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file *
// * to you 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 org.apache.juneau.utils;
import static org.apache.juneau.TestUtils.*;
import static org.apache.juneau.internal.ArrayUtils.*;
import static org.junit.Assert.*;
import java.util.*;
import org.junit.*;
@SuppressWarnings("javadoc")
public class ArrayUtilsTest {
//====================================================================================================
// iterator(T[])
//====================================================================================================
@Test
public void testArrayIterator() throws Exception {
assertObjectEquals("[1,2,3]", iterator(new Object[]{1,2,3}));
assertObjectEquals("[1,2,3]", iterator(new int[]{1,2,3}));
assertObjectEquals("[]", iterator(null));
}
//====================================================================================================
// append(T[], T...)
//====================================================================================================
@Test
public void testAppendArrayToArray() throws Exception {
String[] s = new String[0];
s = append(s, "a", "b");
assertObjectEquals("['a','b']", s);
s = append(s, "c");
assertObjectEquals("['a','b','c']", s);
s = append(s);
assertObjectEquals("['a','b','c']", s);
Object[] o = append((Object[])null);
assertObjectEquals("[]", o);
s = append((String[])null, "a", "b");
assertObjectEquals("['a','b']", s);
}
//====================================================================================================
// append(T[], Collection)
//====================================================================================================
@Test
public void testAppendCollectionToArray() throws Exception {
String[] s = new String[0];
s = append(s, Arrays.asList(new String[]{"a","b"}));
assertObjectEquals("['a','b']", s);
s = append(s, Arrays.asList(new String[]{"c"}));
assertObjectEquals("['a','b','c']", s);
s = append(s, Arrays.asList(new String[0]));
assertObjectEquals("['a','b','c']", s);
try {
append((Object[])null, Collections.emptyList());
fail();
} catch (IllegalArgumentException e) {}
}
//====================================================================================================
// reverse(T[] array)
//====================================================================================================
@Test
public void testReverse() throws Exception {
String[] s = new String[0];
s = new String[]{"a","b"};
assertObjectEquals("['b','a']", reverse(s));
try {
reverse((Object[])null);
fail();
} catch (IllegalArgumentException e) {}
}
//====================================================================================================
// asSet(T[])
//====================================================================================================
@Test
public void testAsSet() throws Exception {
String[] s = null;
try {
asSet(s);
fail();
} catch (IllegalArgumentException e) {}
s = new String[]{"a"};
Iterator<String> i = asSet(s).iterator();
assertEquals("a", i.next());
try {
i.remove();
fail();
} catch (UnsupportedOperationException e) {}
try {
i.next();
fail();
} catch (NoSuchElementException e) {}
}
//====================================================================================================
// iterator(T[])
//====================================================================================================
@Test
public void testIterator() throws Exception {
String[] s = null;
s = new String[]{"a"};
Iterator<Object> i = iterator(s);
assertEquals("a", i.next());
try {
i.remove();
fail();
} catch (UnsupportedOperationException e) {}
try {
i.next();
fail();
} catch (NoSuchElementException e) {}
}
//====================================================================================================
// combine(T[]...)
//====================================================================================================
@Test
public void testCombine() throws Exception {
String[] s1 = new String[]{"a"}, s2 = new String[]{"b"};
assertObjectEquals("['a','b']", combine(s1, s2));
assertObjectEquals("['a']", combine(s1));
assertObjectEquals("['b']", combine(s2));
assertObjectEquals("['a']", combine(s1,null));
assertObjectEquals("['b']", combine(null,s2));
assertNull(combine(null,null));
assertNull(combine());
}
}