blob: 711936ffbfdc53f3a18b63a086126828f5936807 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014, 2016 Orange.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*******************************************************************************/
package org.eclipse.om2m.das.testsuite.crud;
import org.eclipse.om2m.commons.constants.Constants;
import org.eclipse.om2m.commons.constants.MimeMediaType;
import org.eclipse.om2m.commons.constants.Operation;
import org.eclipse.om2m.commons.constants.ResponseStatusCode;
import org.eclipse.om2m.commons.resource.DynamicAuthorizationConsultation;
import org.eclipse.om2m.commons.resource.RequestPrimitive;
import org.eclipse.om2m.commons.resource.ResponsePrimitive;
import org.eclipse.om2m.core.service.CseService;
import org.eclipse.om2m.das.testsuite.Test;
public class RetrieveDASTest extends Test {
public RetrieveDASTest(CseService pCseService) {
super("Retrieve DAS", pCseService);
}
@Override
public void performTest() {
// create DAS
DynamicAuthorizationConsultation createdDas = createDAS();
if (createdDas == null) {
// KO
setState(State.KO);
setMessage("unable to create a DAS");
return;
}
// retrieve - non hierarchical
if (!retrieveDas(createdDas.getResourceID(), createdDas)) {
// KO
return;
}
// retrieve - hierarchical
if (!retrieveDas("/" + Constants.CSE_ID + "/" + Constants.CSE_NAME + "/" + createdDas.getName(), createdDas)) {
// KO
return;
}
// OK
setState(State.OK);
}
private boolean retrieveDas(String dasUrl, DynamicAuthorizationConsultation createdDas) {
// prepare request
RequestPrimitive requestPrimitive = new RequestPrimitive();
requestPrimitive.setOperation(Operation.RETRIEVE);
requestPrimitive.setRequestContentType(MimeMediaType.OBJ);
requestPrimitive.setReturnContentType(MimeMediaType.OBJ);
requestPrimitive.setFrom(Constants.ADMIN_REQUESTING_ENTITY);
requestPrimitive.setTo(dasUrl);
// perform request
ResponsePrimitive response = getCseService().doRequest(requestPrimitive);
if (response != null) {
if (ResponseStatusCode.OK.equals(response.getResponseStatusCode())) {
DynamicAuthorizationConsultation retrievedDas = null;
try {
retrievedDas = (DynamicAuthorizationConsultation) response.getContent();
} catch (ClassCastException e) {
setState(State.KO);
setMessage("unable to cast content as a DynamicAuthorizationConsultation");
return false;
}
// resourceName
if (!checkEquals(retrievedDas.getName(), createdDas.getName(), "name")) {
return false;
}
// resourceType
if (!checkEquals(retrievedDas.getResourceType().intValue(), createdDas.getResourceType().intValue(),
"resourceType")) {
return false;
}
// resourceID
if (!checkEquals(retrievedDas.getResourceID(), createdDas.getResourceID(), "resourceID")) {
return false;
}
// parentID
if (!checkEquals(retrievedDas.getParentID(), createdDas.getParentID(), "parentID")) {
return false;
}
// expirationTime
if (!checkEquals(retrievedDas.getExpirationTime(), createdDas.getExpirationTime(), "expirationTime")) {
return false;
}
// accessControlPolicyIDs
if (!checkEquals(retrievedDas.getAccessControlPolicyIDs(), createdDas.getAccessControlPolicyIDs(),
"accessControlPolicyIDs")) {
return false;
}
// creationTime
if (!checkEquals(retrievedDas.getCreationTime(), createdDas.getCreationTime(), "creationTime")) {
return false;
}
// lastModifiedTime
if (!checkEquals(retrievedDas.getLastModifiedTime(), createdDas.getLastModifiedTime(),
"lastModifiedTime")) {
return false;
}
// labels
if (!checkEquals(retrievedDas.getLabels(), createdDas.getLabels(), "labels")) {
return false;
}
// dynamicAuthorizationConsultationIDs
// TODO
// dynamicAuthorizationEnabled
if (!checkEquals(retrievedDas.getDynamicAuthorizationEnabled(),
createdDas.getDynamicAuthorizationEnabled(), "dynamicAuthorizationEnabled")) {
return false;
}
// dynamicAuthorizationPoA
if (!checkEquals(retrievedDas.getDynamicAuthorisationPoA(), createdDas.getDynamicAuthorisationPoA(),
"dynamicAuthorizationPoA")) {
return false;
}
// dynamicAuthorizationLifetime
if (!checkEquals(retrievedDas.getDynamicAuthorizationLifetime(),
createdDas.getDynamicAuthorizationLifetime(), "dynamicAuthorizationLifetime")) {
return false;
}
} else {
setState(State.KO);
setMessage("expecting " + ResponseStatusCode.UPDATED + " status code, found "
+ response.getResponseStatusCode());
return false;
}
} else {
setState(State.KO);
setMessage("no response");
}
return true;
}
}