// Copyright (c) 2003-present, Jodd Team (http://jodd.org)
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
package jodd.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import jodd.util.collection.ArrayEnumeration;
import org.junit.Test;
public class UtilTest {
@Test
public void testEquals() {
Object a = new Integer(173);
Object b = new Integer(1);
Object c = new Integer(173);
assertTrue(Util.equals(a, a));
assertTrue(Util.equals(a, c));
assertTrue(Util.equals(c, a));
assertFalse(Util.equals(a, b));
assertFalse(Util.equals(b, a));
assertFalse(Util.equals(a, null));
assertFalse(Util.equals(null, a));
assertTrue(Util.equals(null, null));
}
@Test
public void testToString() {
assertNull(Util.toString(null));
assertEquals("abcd", Util.toString("abcd"));
assertEquals("1234", Util.toString(1234));
assertEquals("1234.0", Util.toString(1234d));
}
@Test
public void testLength() {
assertEquals(0, Util.length(null));
assertEquals(-1, Util.length(1234));
assertEquals(0, Util.length(StringPool.EMPTY));
assertEquals(4, Util.length("abcd"));
Collection<String> coll = new ArrayList<>();
assertEquals(0, Util.length(coll));
coll.add("abcd");
coll.add("1234");
assertEquals(2, Util.length(coll));
Iterator<String> iterator = coll.iterator();
assertEquals(2, Util.length(iterator));
Map<Long, String> map = new HashMap<>();
assertEquals(0, Util.length(map));
map.put(1l, "abcd");
map.put(2l, "1234");
assertEquals(2, Util.length(map));
Integer[] array = new Integer[] { 1, 2, 3, 4, 5 };
assertEquals(5, Util.length(array));
ArrayEnumeration<Integer> ae = new ArrayEnumeration<>(array);
assertEquals(5, Util.length(ae));
}
@Test
public void testContainsElement() {
assertFalse(Util.containsElement(null, "abcd"));
assertFalse(Util.containsElement(1234, "abcd"));
assertFalse(Util.containsElement("abcd", null));
assertTrue(Util.containsElement("abcd", "bc"));
assertFalse(Util.containsElement("abcd", "xx"));
Collection<String> coll = new ArrayList<>();
coll.add("abcd");
coll.add("1234");
assertTrue(Util.containsElement(coll, "abcd"));
assertFalse(Util.containsElement(coll, "xx"));
Iterator<String> iterator = coll.iterator();
assertTrue(Util.containsElement(iterator, "abcd"));
assertFalse(Util.containsElement(iterator, "xx"));
Map<Long, String> map = new HashMap<>();
map.put(1l, "abcd");
map.put(2l, "1234");
assertTrue(Util.containsElement(map, "abcd"));
assertFalse(Util.containsElement(map, "xx"));
Integer[] array = new Integer[] { 1, 2, 3, 4, 5 };
assertTrue(Util.containsElement(array, 1));
assertFalse(Util.containsElement(array, 10));
ArrayEnumeration<Integer> ae = new ArrayEnumeration<>(array);
assertTrue(Util.containsElement(ae, 1));
assertFalse(Util.containsElement(ae, 10));
}
}