/*
* 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 com.addthis.basis.kv;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class KVPairTest {
@Test
public void parseHttpHeader() {
testPair(KVPair.parseHttpHeader("abc:def"), "abc", "def");
testPair(KVPair.parseHttpHeader("abc: def"), "abc", "def");
testPair(KVPair.parseHttpHeader("abc: def"), "abc", "def");
testPair(KVPair.parseHttpHeader("abc: def"), "abc", "def");
testPair(KVPair.parseHttpHeader("abc: "), "abc", " ");
testPair(KVPair.parseHttpHeader("abc: "), "abc", " ");
testPair(KVPair.parseHttpHeader("abc:"), "abc", "");
testPair(KVPair.parseHttpHeader("abc"), "abc", "");
assertEquals(KVPair.parseHttpHeader(":"), null);
}
@Test
public void parsePair() {
testPair(KVPair.parsePair("abc=def"), "abc", "def");
testPair(KVPair.parsePair("abc==x"), "abc", "=x");
testPair(KVPair.parsePair("abc=="), "abc", "=");
testPair(KVPair.parsePair("abc= "), "abc", " ");
testPair(KVPair.parsePair("abc="), "abc", "");
testPair(KVPair.parsePair("abc"), "abc", "");
assertEquals(KVPair.parsePair("=123"), null);
assertEquals(KVPair.parsePair("="), null);
assertEquals(KVPair.parsePair(""), null);
}
@Test
public void encoding() {
assertTrue(new KVPair("abc", "def").toString().equals("abc=def"));
assertTrue(new KVPair("abc", "def").keyMatch("abc"));
}
private void testPair(KVPair kp, String key, String value) {
assertTrue(key != null);
assertTrue(value != null);
assertEquals(kp.getKey().toUpperCase(), key.toUpperCase());
assertEquals(kp.getValue(), value);
}
}