/*
* Copyright (C) 2015 Jörg Prante
*
* 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 org.xbib.elasticsearch.common.util;
import org.testng.Assert;
import org.testng.annotations.Test;
/**
* Unit-test checking basic functionality of {@link Values}.
*
* @author pdegeus
*/
public class ValuesTests extends Assert {
@Test
public void testSingleValue() {
Values<String> vs = new Values<String>(null, "TEST", false);
Object[] values = vs.getValues();
assertEquals(1, values.length);
assertEquals("TEST", values[0]);
}
@Test
public void testSingleNull() {
Values<String> vs = new Values<String>(null, null, false);
Object[] values = vs.getValues();
assertEquals(values.length, 1);
assertEquals(values[0], null);
}
@Test
public void testMultipleValues() {
Values<String> vs = null;
vs = new Values<String>(vs, "TEST", false);
vs = new Values<String>(vs, "TEST2", false);
Object[] values = vs.getValues();
assertEquals(values.length, 2);
assertEquals(values[0], "TEST");
assertEquals(values[1], "TEST2");
}
@Test
public void testMultipleValuesNullFirst() {
Values<String> vs = null;
vs = new Values<String>(vs, null, false);
vs = new Values<String>(vs, "TEST", false);
Object[] values = vs.getValues();
assertEquals(values.length, 1);
assertEquals(values[0], "TEST");
}
@Test
public void testMultipleValuesNullLast() {
Values<String> vs = null;
vs = new Values<String>(vs, "TEST", false);
vs = new Values<String>(vs, null, false);
Object[] values = vs.getValues();
assertEquals(values.length, 1);
assertEquals(values[0], "TEST");
}
@Test
public void testMultipleValuesWithDuplicates() {
Values<String> vs = null;
vs = new Values<String>(vs, "TEST", false);
vs = new Values<String>(vs, "TEST2", false);
vs = new Values<String>(vs, "TEST", false);
Object[] values = vs.getValues();
assertEquals(values.length, 2);
assertEquals(values[0], "TEST");
assertEquals(values[1], "TEST2");
}
@Test
public void testMultipleValuesWithDuplicatesAndNull() {
Values<String> vs = null;
vs = new Values<String>(vs, "TEST", false);
vs = new Values<String>(vs, null, false);
vs = new Values<String>(vs, "TEST", false);
Object[] values = vs.getValues();
assertEquals(values.length, 1);
assertEquals(values[0], "TEST");
}
@Test
public void testExpandValue() {
Values<String> vs = null;
vs = new Values<String>(vs, "TEST,TEST2", true);
vs = new Values<String>(vs, null, true);
vs = new Values<String>(vs, "TEST3,TEST2", true);
Object[] values = vs.getValues();
assertEquals(values.length, 3);
assertEquals(values[0], "TEST");
assertEquals(values[1], "TEST2");
assertEquals(values[2], "TEST3");
}
}