blob: 496686a603b24a8268545cd9dc502d0aef380cd4 [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.solr.common.params;
import org.apache.solr.SolrTestCase;
import java.util.HashMap;
import java.util.Map;
/**
* Unit Test Case for {@link org.apache.solr.common.params.ModifiableSolrParams
* ModifiableSolrParams}
*/
public class ModifiableSolrParamsTest extends SolrTestCase {
@Override
public void setUp() throws Exception
{
super.setUp();
modifiable = new ModifiableSolrParams();
}
@Override
public void tearDown() throws Exception
{
modifiable.clear();
super.tearDown();
}
public void testOf() throws Exception
{
String key = "key";
String value = "value";
// input is not of type ModifiableSolrParams
Map<String, String> values = new HashMap<>();
values.put(key, value);
SolrParams mapParams = new MapSolrParams(values);
ModifiableSolrParams result = ModifiableSolrParams.of(mapParams);
assertNotSame(mapParams, result);
assertEquals(value, result.get(key));
// input is of type ModifiableSolrParams
modifiable.add(key, value);
result = ModifiableSolrParams.of(modifiable);
assertSame(result, modifiable);
// input is null
result = ModifiableSolrParams.of(null);
assertNotNull(result);
assertEquals(0, result.size());
}
public void testAdd()
{
String key = "key";
String[] values = new String[1];
values[0] = null;
modifiable.add(key, values);
String[] result = modifiable.getParams(key);
assertArrayEquals("params", values, result);
}
public void testAddNormal()
{
String key = "key";
String[] helloWorld = new String[] { "Hello", "World" };
String[] universe = new String[] { "Universe" };
String[] helloWorldUniverse = new String[] { "Hello", "World", "Universe" };
modifiable.add(key, helloWorld);
assertArrayEquals("checking Hello World: ", helloWorld, modifiable.getParams(key));
modifiable.add(key, universe);
String[] result = modifiable.getParams(key);
compareArrays("checking Hello World Universe ", helloWorldUniverse, result);
}
public void testAddNull()
{
String key = "key";
String[] helloWorld = new String[] { "Hello", "World" };
String[] universe = new String[] { null };
String[] helloWorldUniverse = new String[] { "Hello", "World", null };
modifiable.add(key, helloWorld);
assertArrayEquals("checking Hello World: ", helloWorld, modifiable.getParams(key));
modifiable.add(key, universe);
String[] result = modifiable.getParams(key);
compareArrays("checking Hello World Universe ", helloWorldUniverse, result);
}
public void testOldZeroLength()
{
String key = "key";
String[] helloWorld = new String[] {};
String[] universe = new String[] { "Universe" };
String[] helloWorldUniverse = new String[] { "Universe" };
modifiable.add(key, helloWorld);
assertArrayEquals("checking Hello World: ", helloWorld, modifiable.getParams(key));
modifiable.add(key, universe);
String[] result = modifiable.getParams(key);
compareArrays("checking Hello World Universe ", helloWorldUniverse, result);
}
public void testAddPseudoNull()
{
String key = "key";
String[] helloWorld = new String[] { "Hello", "World" };
String[] universe = new String[] { "Universe", null };
String[] helloWorldUniverse = new String[] { "Hello", "World", "Universe", null };
modifiable.add(key, helloWorld);
assertArrayEquals("checking Hello World: ", helloWorld, modifiable.getParams(key));
modifiable.add(key, universe);
String[] result = modifiable.getParams(key);
compareArrays("checking Hello World Universe ", helloWorldUniverse, result);
}
private void compareArrays(String prefix,
String[] expected,
String[] actual)
{
assertEquals(prefix + "length: ", expected.length, actual.length);
for (int i = 0; i < expected.length; ++i)
{
assertEquals(prefix + " index " + i, expected[i], actual[i]);
}
}
private ModifiableSolrParams modifiable;
}