/******************************************************************************* | |
* 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.testsuite.flexcontainer; | |
import java.math.BigInteger; | |
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.ResourceType; | |
import org.eclipse.om2m.commons.constants.ResponseStatusCode; | |
import org.eclipse.om2m.commons.resource.Container; | |
import org.eclipse.om2m.commons.resource.CustomAttribute; | |
import org.eclipse.om2m.commons.resource.RequestPrimitive; | |
import org.eclipse.om2m.commons.resource.ResponsePrimitive; | |
import org.eclipse.om2m.commons.resource.flexcontainerspec.BinarySwitchFlexContainer; | |
import org.eclipse.om2m.core.service.CseService; | |
import org.eclipse.om2m.testsuite.flexcontainer.TestReport.Status; | |
public class LocationFlexContainerTest extends FlexContainerTestSuite { | |
@Override | |
protected String getTestSuiteName() { | |
return "LocationFlexContainerTest"; | |
} | |
public LocationFlexContainerTest(final CseService pCseService) { | |
super(pCseService); | |
} | |
public void testUnderCseBase() { | |
genericTest("/" + Constants.CSE_ID + "/" + Constants.CSE_NAME, "testUnderCseBase"); | |
} | |
public void testUnderRemoteCSE() { | |
genericTest("/" + Constants.REMOTE_CSE_ID + "/" + Constants.REMOTE_CSE_NAME, "testUnderRemoteCSE"); | |
} | |
public void testUnderFlexContainer() { | |
// create a FlexContainer | |
BinarySwitchFlexContainer parentFlexContainer = new BinarySwitchFlexContainer(); | |
String parentFlexContainerName = "parentFlexContainer_" + System.currentTimeMillis(); | |
parentFlexContainer.setName(parentFlexContainerName); | |
CustomAttribute ca = new CustomAttribute(); | |
ca.setShortName("powSe"); | |
ca.setValue("true"); | |
parentFlexContainer.getCustomAttributes().add(ca); | |
sendCreateFlexContainerRequest(parentFlexContainer, "/" + Constants.CSE_ID + "/" + Constants.CSE_NAME, Constants.ADMIN_REQUESTING_ENTITY); | |
genericTest("/" + Constants.CSE_ID + "/" + Constants.CSE_NAME + "/" + parentFlexContainerName, "testUnderFlexContainer"); | |
} | |
public void testUnderContainer() { | |
String parentContainerName = "parentContainerName_" + System.currentTimeMillis(); | |
// Container | |
Container container = new Container(); | |
container.setOntologyRef("OrangeOntology"); | |
container.setName(parentContainerName); | |
String baseParentContainerLocation = "/" + Constants.CSE_ID + "/" + Constants.CSE_NAME; | |
RequestPrimitive request = new RequestPrimitive(); | |
request.setContent(container); | |
request.setFrom(Constants.ADMIN_REQUESTING_ENTITY); | |
request.setTo(baseParentContainerLocation); | |
request.setResourceType(BigInteger.valueOf(ResourceType.CONTAINER)); | |
request.setRequestContentType(MimeMediaType.OBJ); | |
request.setReturnContentType(MimeMediaType.OBJ); | |
request.setOperation(Operation.CREATE); | |
ResponsePrimitive response = getCseService().doRequest(request); | |
// we suppose here the container is created | |
genericTest(baseParentContainerLocation + "/" + parentContainerName, "testUnderContainer"); | |
} | |
private void genericTest(String location, String methodName) { | |
// set a new flexContainer | |
BinarySwitchFlexContainer flexContainer = new BinarySwitchFlexContainer(); | |
CustomAttribute ca = new CustomAttribute(); | |
ca.setShortName("powSe"); | |
ca.setValue("true"); | |
flexContainer.getCustomAttributes().add(ca); | |
String flexContainerName = "FLEXCONTAINER_" + System.currentTimeMillis(); | |
flexContainer.setName(flexContainerName); | |
String baseLocation = location; | |
String flexContainerLocation = baseLocation + "/" + flexContainerName; | |
BinarySwitchFlexContainer createdFlexContainer = null; | |
// send create request | |
ResponsePrimitive response = sendCreateFlexContainerRequest(flexContainer, baseLocation, | |
Constants.ADMIN_REQUESTING_ENTITY); | |
if (response.getResponseStatusCode().equals(ResponseStatusCode.CREATED)) { | |
// OK | |
createdFlexContainer = (BinarySwitchFlexContainer) response.getContent(); | |
try { | |
checkFlexContainerOntologyRef(flexContainer, createdFlexContainer); | |
checkFlexContainerCustomAttribute(flexContainer, createdFlexContainer); | |
} catch (Exception e) { | |
createTestReport(methodName, Status.KO, e.getMessage(), e); | |
return; | |
} | |
if (!createdFlexContainer.getName().equals(flexContainerName)) { | |
// KO | |
createTestReport(methodName, Status.KO, | |
"invalid flexContainer name, expecting:" + flexContainerName, null); | |
return; | |
} | |
} else { | |
// KO | |
createTestReport(methodName, Status.KO, "unexpected response code:" | |
+ response.getResponseStatusCode() + ", expected:" + ResponseStatusCode.CREATED, null); | |
return; | |
} | |
// retrieve | |
response = sendRetrieveRequest(flexContainerLocation); | |
if (response.getResponseStatusCode().equals(ResponseStatusCode.OK)) { | |
// OK | |
BinarySwitchFlexContainer retrievedFlexContainer = (BinarySwitchFlexContainer) response.getContent(); | |
try { | |
checkFlexContainer(createdFlexContainer, retrievedFlexContainer); | |
} catch (Exception e) { | |
createTestReport(methodName, Status.KO, e.getMessage(), e); | |
return; | |
} | |
} else { | |
// KO | |
createTestReport(methodName, Status.KO, "unexpected response code:" | |
+ response.getResponseStatusCode() + ", expected:" + ResponseStatusCode.OK, null); | |
return; | |
} | |
// OK | |
createTestReport(methodName, Status.OK, null, null); | |
} | |
} |