in portlet-tck_3.0/V3PortletParametersTests/src/main/java/javax/portlet/tck/portlets/PortletParametersTests_SPEC11_4.java [86:282]
public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws PortletException, IOException {
ModuleTestCaseDetails tcd = new ModuleTestCaseDetails();
/* TestCase: V3PortletParametersTests_SPEC11_4_getNames */
/* Details: "Returns a set of strings representing the resource parameter names */
{
TestResult result = tcd.getTestResultFailed(V3PORTLETPARAMETERSTESTS_SPEC11_4_GETNAMES);
ResourceParameters resourceParameters = resourceRequest.getResourceParameters();
if (!resourceParameters.isEmpty()) {
boolean valid = true;
if (!resourceParameters.getNames().contains("names_private1")) {
result.appendTcDetail("resource parameter names_private1 not found");
valid = false;
}
if (!resourceParameters.getNames().contains("names_private2")) {
result.appendTcDetail("resource parameter names_private2 not found");
valid = false;
}
if (!resourceParameters.getNames().contains("names_public1")) {
result.appendTcDetail("resource parameter names_public1 not found");
valid = false;
}
if (!resourceParameters.getNames().contains("names_multi")) {
result.appendTcDetail("resource parameter names_multi not found");
valid = false;
}
if (resourceParameters.getNames().contains("null")) {
result.appendTcDetail("resource parameter null should not be set");
valid = false;
}
if (valid) {
result.appendTcDetail("successfully set and read RESOURCE parameter names");
result.setTcSuccess(true);
}
PortletSession session = resourceRequest.getPortletSession();
session.setAttribute(SPEC_11_4_GETNAMES_STATUS, result.isTcSuccess());
session.setAttribute(SPEC_11_4_GETNAMES_MESSAGE, result.getTcDetail());
}
}
/* TestCase: V3PortletParametersTests_SPEC11_4_getValue */
/* Details: "Returns a resource parameter value as a string for a given name */
{
TestResult result = tcd.getTestResultFailed(V3PORTLETPARAMETERSTESTS_SPEC11_4_GETVALUE);
ResourceParameters resourceParameters = resourceRequest.getResourceParameters();
if (!resourceParameters.isEmpty()) {
boolean valid = true;
String trPrivate = resourceParameters.getValue("names_private1");
if (trPrivate == null || !trPrivate.equals("one")) {
result.appendTcDetail("failed to get resource parameter value for names_private1");
valid = false;
}
trPrivate = resourceParameters.getValue("names_private2");
if (trPrivate == null || !trPrivate.equals("two")) {
result.appendTcDetail("failed to get resource parameter value for names_private2");
valid = false;
}
trPrivate = resourceParameters.getValue("names_multi");
if (trPrivate == null || !trPrivate.equals("a")) {
result.appendTcDetail("failed to get first resource parameter value for names_multi");
valid = false;
}
String trPublic = resourceParameters.getValue("names_public1");
if (trPublic == null || !trPublic.equals("three")) {
result.appendTcDetail("failed to get resource parameter value for names_public1");
valid = false;
}
String nullsOk = resourceParameters.getValue("names_nullok1");
if (nullsOk != null) {
result.appendTcDetail("expected null value for names_nullok1 resource parameter");
valid = false;
}
String decoded = resourceParameters.getValue("names_encode1");
if (decoded == null || !decoded.equals("url&enco ded")) {
result.appendTcDetail("failed to get decoded resource parameter for names_encode1");
valid = false;
}
if (valid) {
result.appendTcDetail("successfully getValue on resource parameters");
result.setTcSuccess(true);
}
PortletSession session = resourceRequest.getPortletSession();
session.setAttribute(SPEC_11_4_GETVALUE_STATUS, result.isTcSuccess());
session.setAttribute(SPEC_11_4_GETVALUE_MESSAGE, result.getTcDetail());
}
}
/* TestCase: V3PortletParametersTests_SPEC11_4_getValues */
/* Details: "Returns all resource parameter values as a string array for a name */
{
TestResult result = tcd.getTestResultFailed(V3PORTLETPARAMETERSTESTS_SPEC11_4_GETVALUES);
ResourceParameters resourceParams = resourceRequest.getResourceParameters();
if (!resourceParams.isEmpty()) {
boolean valid = true;
String[] values = resourceParams.getValues("names_private1");
if (values == null || !values[0].equals("one")) {
result.appendTcDetail("failed to get resource parameter values for names_private1");
valid = false;
}
values = resourceParams.getValues("names_private2");
if (values == null || !values[0].equals("two")) {
result.appendTcDetail("failed to get resource parameter values for names_private2");
valid = false;
}
values = resourceParams.getValues("names_multi");
if (values == null || !Arrays.asList(values).contains("a") || !Arrays.asList(values).contains("b") ||
!Arrays.asList(values).contains("c")) {
result.appendTcDetail("failed to get all resource parameter values for names_multi");
valid = false;
}
values = resourceParams.getValues("names_public1");
if (values == null || !values[0].equals("three")) {
result.appendTcDetail("failed to get resource parameters values for names_public1");
valid = false;
}
values = resourceParams.getValues("names_nullsok2");
if (values == null || values[0] != null || !values[1].equals("notnull") || values[2] != null) {
result.appendTcDetail("failed to get resource parameters values for names_nullsok2");
valid = false;
}
if (valid) {
result.appendTcDetail("successfully getValues on resource parameters");
result.setTcSuccess(true);
}
PortletSession session = resourceRequest.getPortletSession();
session.setAttribute(SPEC_11_4_GETVALUES_STATUS, result.isTcSuccess());
session.setAttribute(SPEC_11_4_GETVALUES_MESSAGE, result.getTcDetail());
}
}
/* TestCase: V3PortletParametersTests_SPEC11_4_size */
/* Details: "Returns the number of resource parameters available" */
{
TestResult result = tcd.getTestResultSucceeded(V3PORTLETPARAMETERSTESTS_SPEC11_4_SIZE);
ResourceParameters resourceParams = resourceRequest.getResourceParameters();
int expectedCount = (resourceParams.isEmpty()) ? 0 : 7;
if (expectedCount != resourceParams.size()) {
result.appendTcDetail("Failed to get correct Resource Parameters count, expected: " + expectedCount + ", found: " + resourceParams.size());
result.setTcSuccess(false);
}
else {
result.appendTcDetail("Found correct count of Render parameters.");
}
PortletSession session = resourceRequest.getPortletSession();
session.setAttribute(SPEC_11_4_SIZE_STATUS, result.isTcSuccess());
session.setAttribute(SPEC_11_4_SIZE_MESSAGE, result.getTcDetail());
}
/* TestCase: V3PortletParametersTests_SPEC11_4_clone */
/* Details: "Clones the given resource parameters returning a mutable copy of */
/* the parameters" */
{
ResourceParameters resourceParams = resourceRequest.getResourceParameters();
MutableResourceParameters mrp = resourceParams.clone();
TestResult result = tcd.getTestResultSucceeded(V3PORTLETPARAMETERSTESTS_SPEC11_4_CLONE);
// check that original and clone have same parameters
if (resourceParams.size() == mrp.size()) {
// same # params, but if param name differs, its a bug
for (String name : mrp.getNames()) {
if (!resourceParams.getNames().contains(name)) {
result.setTcSuccess(false);
result.appendTcDetail("Original does not contain parameter: " + name);
break;
}
}
} else {
// there is a differing number of parameters, so fail test
result.setTcSuccess(false);
result.appendTcDetail("differing number parameters.");
}
// test if the objects are independent:
if (result.isTcSuccess() == true) {
mrp.setValue("SomeParamName", "SomeParamValue");
if (mrp.size() == resourceParams.size()) {
// if they are the same size, something went wrong
result.setTcSuccess(false);
result.appendTcDetail("after adding parameter, both objects same size: " + mrp.size());
} else {
// If the original object contains the new parameter,
// the clone must somehow be linked with the original, so
// this is an error.
if (resourceParams.getNames().contains("SomeParamName")) {
result.setTcSuccess(false);
result.appendTcDetail("Original contains parameter added to clone.");
}
}
}
if (result.isTcSuccess()) {
result.setTcDetail("Clone on Resource parameters successful");
}
PortletSession session = resourceRequest.getPortletSession();
session.setAttribute(SPEC_11_4_CLONE_STATUS, result.isTcSuccess());
session.setAttribute(SPEC_11_4_CLONE_MESSAGE, result.getTcDetail());
}
}