/******************************************************************************* | |
* 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; | |
} | |
} |