blob: 963747d5a542b53c2592628d8a5710febf125e32 [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.karaf.shell.support;
import static org.junit.Assert.assertEquals;
import java.util.AbstractList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import org.junit.Test;
public class ShellUtilTest {
@Test
public void testGetValueStringWithCustomCollection() {
List<Integer> data = new AbstractList<Integer>() {
int[] values = new int[15];
int size = 0;
@Override
public boolean add(Integer e) {
values[size] = e;
size++;
return true;
}
@Override
public Integer get(int index) {
if ( index >= size ) throw new IndexOutOfBoundsException();
return values[index];
}
@Override
public int size() {
return size;
}
@Override
public String toString() {
return "Custom" + super.toString();
}
};
data.add(5);
assertEquals("[5]", ShellUtil.getValueString(data));
}
@Test
public void testGetValueString() {
Object data;
data = "Hello World";
assertEquals("Hello World", ShellUtil.getValueString(data));
data = new int[] { 1, 2, 3, 5, 7, 9 };
assertEquals("[1, 2, 3, 5, 7, 9]", ShellUtil.getValueString(data));
data = new short[] { 1, 2, 3, 5, 7, 9 };
assertEquals("[1, 2, 3, 5, 7, 9]", ShellUtil.getValueString(data));
data = new long[] { 1, 2, 3, 5, 7, 9 };
assertEquals("[1, 2, 3, 5, 7, 9]", ShellUtil.getValueString(data));
data = new byte[] { 1, 2, 3, 5, 7, 9 };
assertEquals("[1, 2, 3, 5, 7, 9]", ShellUtil.getValueString(data));
data = new float[] { 1, 2, 3, 5, 7, 9 };
assertEquals("[1.0, 2.0, 3.0, 5.0, 7.0, 9.0]",
ShellUtil.getValueString(data));
data = new double[] { 1, 2, 3, 5, 7, 9 };
assertEquals("[1.0, 2.0, 3.0, 5.0, 7.0, 9.0]",
ShellUtil.getValueString(data));
data = new boolean[] { true, true, false };
assertEquals("[true, true, false]", ShellUtil.getValueString(data));
data = new char[] { 'a', 'c', 'e' };
assertEquals("[a, c, e]", ShellUtil.getValueString(data));
data = new Object[] { new int[] { 1, 2, 3, 5, 8 },
new char[] { 'h', 'e', 'l', 'l', 'o' }, "World" };
assertEquals("[[1, 2, 3, 5, 8], [h, e, l, l, o], World]",
ShellUtil.getValueString(data));
data = Arrays.asList(5, 10, 15, 25);
assertEquals("[5, 10, 15, 25]", ShellUtil.getValueString(data));
data = new LinkedHashSet<>(Arrays.asList(5, 10, 15, 25));
assertEquals("[5, 10, 15, 25]", ShellUtil.getValueString(data));
data = new int[][] { { 1, 2, 3 }, { 5, 7, 9 } };
assertEquals("[[1, 2, 3], [5, 7, 9]]", ShellUtil.getValueString(data));
}
}