package org.jboss.resteasy.test.util;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jboss.resteasy.util.GroupParameterParser;
import org.jboss.resteasy.util.ParameterParser;
import org.junit.Assert;
import org.junit.Test;
import java.util.List;
import java.util.Map;
/**
* @tpSubChapter Util tests
* @tpChapter Unit tests
* @tpTestCaseDetails Test for GroupParameterParser and ParameterParser class.
* @tpSince RESTEasy 3.0.16
*/
public class GroupParameterParserTest {
protected final Logger logger = LogManager.getLogger(GroupParameterParserTest.class.getName());
/**
* @tpTestDetails Test for GroupParameterParser class.
* @tpSince RESTEasy 3.0.16
*/
@Test
public void testGroups() throws Exception {
String params = "a=b; c=d; e=\"f,;\" , one=two; three=\"four\"";
GroupParameterParser parser = new GroupParameterParser();
List<Map<String, String>> groups = parser.parse(params, ';', ',');
logger.debug(String.format("Groups: %s", groups));
Assert.assertEquals("Wrong number of groups", 2, groups.size());
}
/**
* @tpTestDetails Test for ParameterParser class, base parameters are used.
* @tpSince RESTEasy 3.0.16
*/
@Test
public void testSetAttribute() throws Exception {
String header = "v=1 ;z=33333 ;b=xxxxxxx";
ParameterParser parser = new ParameterParser();
String output = parser.setAttribute(header.toCharArray(), 0, header.length(), ';', "b", "");
logger.debug(String.format("Parsed output: <%s>", output));
Assert.assertEquals("Parsed output is wrong", "v=1 ;z=33333 ;b=", output);
}
/**
* @tpTestDetails Test for ParameterParser class, complex parameters are used.
* @tpSince RESTEasy 3.0.16
*/
@Test
public void testSetAttributeComplex() throws Exception {
String header = "v=1 ;z=33333 ;b=xxxxxxx ; foo=bar ";
ParameterParser parser = new ParameterParser();
String output = parser.setAttribute(header.toCharArray(), 0, header.length(), ';', "b", "");
logger.debug(String.format("Parsed output: <%s>", output));
Assert.assertEquals("Parsed output is wrong", "v=1 ;z=33333 ;b=; foo=bar ", output);
}
}