// find token information corresponding to the uuid and did
HashMap<String, Object> condition = new HashMap<>();
condition.put(Constants.KEYFIELD_UUID, uuid);
+ condition.put(Constants.KEYFIELD_DID, did);
- ArrayList<HashMap<String, Object>> recordList = findRecord(
- AccountDBManager.getInstance()
- .selectRecord(Constants.TOKEN_TABLE, condition),
- Constants.KEYFIELD_DID, did);
+ ArrayList<HashMap<String, Object>> recordList = AccountDBManager
+ .getInstance().selectRecord(Constants.TOKEN_TABLE, condition);
if (recordList.isEmpty()) {
throw new UnAuthorizedException("access token doesn't exist");
}
- HashMap<String, Object> record = recordList.get(0);
-
- TokenTable tokenInfo = castMapToTokenTable(record);
+ TokenTable tokenInfo = castMapToTokenTable(recordList.get(0));
// token verification to check if the accesstoken is expired
if (verifyToken(tokenInfo, accessToken)) {
return searchType;
}
- public void deleteDevice(String uid, String di) {
+ public boolean deleteDevice(String uid, String di, String accetoken) {
HashSet<String> diSet = new HashSet<String>();
diSet.add(di);
condition.put(Constants.KEYFIELD_UUID, uid);
condition.put(Constants.KEYFIELD_DID, di);
+ ArrayList<HashMap<String, Object>> recordList = AccountDBManager
+ .getInstance().selectRecord(Constants.TOKEN_TABLE, condition);
+
+ if (recordList.isEmpty()) {
+ throw new UnAuthorizedException("access token doesn't exist");
+ }
+
+ TokenTable tokenInfo = castMapToTokenTable(recordList.get(0));
+
+ if (!verifyToken(tokenInfo, accetoken)) {
+ return false;
+ }
+
// delete Token information from the DB
AccountDBManager.getInstance().deleteRecord(Constants.TOKEN_TABLE,
condition);
// delete device ID from all groups in the DB
GroupManager.getInstance().deleteDevicesFromAllGroup(di);
- }
+ return true;
+ }
}
import java.util.List;
import org.iotivity.cloud.accountserver.Constants;
-import org.iotivity.cloud.accountserver.resources.acl.id.AclManager;
import org.iotivity.cloud.base.device.Device;
import org.iotivity.cloud.base.exception.ServerException;
import org.iotivity.cloud.base.exception.ServerException.BadRequestException;
+import org.iotivity.cloud.base.exception.ServerException.UnAuthorizedException;
import org.iotivity.cloud.base.protocols.IRequest;
import org.iotivity.cloud.base.protocols.IResponse;
import org.iotivity.cloud.base.protocols.MessageBuilder;
HashMap<String, List<String>> queryMap = request.getUriQueryMap();
- if (checkQueryException(
- Arrays.asList(Constants.REQ_UUID_ID, Constants.REQ_DEVICE_ID),
+ if (checkQueryException(Arrays.asList(Constants.REQ_UUID_ID,
+ Constants.REQ_DEVICE_ID, Constants.REQ_ACCESS_TOKEN),
queryMap)) {
String uid = queryMap.get(Constants.REQ_UUID_ID).get(0);
String did = queryMap.get(Constants.REQ_DEVICE_ID).get(0);
- mAsManager.deleteDevice(uid, did);
+ String accesstoken = queryMap.get(Constants.REQ_ACCESS_TOKEN)
+ .get(0);
+ if (!mAsManager.deleteDevice(uid, did, accesstoken))
+ throw new UnAuthorizedException("accesstoken is not valid");
}
return MessageBuilder.createResponse(request, ResponseStatus.DELETED);
HashMap<String, Object> responsePayload = null;
- if (checkPayloadException(
- Arrays.asList(Constants.REQ_UUID_ID, Constants.REQ_DEVICE_ID,
- Constants.REQ_ACCESS_TOKEN, Constants.REQ_LOGIN),
- payloadData)) {
+ checkPayloadException(Arrays.asList(Constants.REQ_DEVICE_ID,
+ Constants.REQ_ACCESS_TOKEN), payloadData);
+ String deviceId = payloadData.get(Constants.REQ_DEVICE_ID).toString();
+ String accessToken = payloadData.get(Constants.REQ_ACCESS_TOKEN)
+ .toString();
+
+ checkPayloadException(Constants.REQ_LOGIN, payloadData);
+
+ boolean signinRequest = (boolean) payloadData.get(Constants.REQ_LOGIN);
+
+ if (signinRequest) {
+ // sign-in response payload
+ checkPayloadException(Constants.REQ_UUID_ID, payloadData);
String uuid = payloadData.get(Constants.REQ_UUID_ID).toString();
- String deviceId = payloadData.get(Constants.REQ_DEVICE_ID)
- .toString();
- String accessToken = payloadData.get(Constants.REQ_ACCESS_TOKEN)
- .toString();
-
- // identify if the request is sign-in or sign-out
- boolean signinRequest = (boolean) payloadData
- .get(Constants.REQ_LOGIN);
-
- if (signinRequest) {
- // sign-in response payload
- responsePayload = mAsManager.signInOut(uuid, deviceId,
- accessToken);
- } else {
- // sign-out response
- mAsManager.signInOut(uuid, deviceId, accessToken);
- return MessageBuilder.createResponse(request,
- ResponseStatus.CHANGED);
- }
+ responsePayload = mAsManager.signInOut(uuid, deviceId, accessToken);
+ } else {
+ // sign-out response
+ checkQueryException(Constants.REQ_UUID_ID,
+ request.getUriQueryMap());
+ String uuid = request.getUriQueryMap().get(Constants.REQ_UUID_ID)
+ .get(0);
+ mAsManager.signInOut(uuid, deviceId, accessToken);
+ return MessageBuilder.createResponse(request,
+ ResponseStatus.CHANGED);
}
// sign-in response
uidList.add(getInviteTable.getInviteUser());
}
+ if (getInviteList == null || getInviteList.isEmpty()) {
+ throw new BadRequestException("mid or gid is not valid");
+ }
+
AccountDBManager.getInstance().deleteRecord(Constants.INVITE_TABLE,
condition);
String acceptStr = queryParams.get(Constants.REQ_INVITE_ACCEPT)
.get(0);
+
boolean accepted = false;
if (acceptStr.equals(Constants.INVITE_ACCEPT)) {
accepted = true;
private IRequest deleteDeviceRequest(String deviceId, String uid) {
IRequest request = MessageBuilder.createRequest(RequestMethod.DELETE,
- REGISTER_URI, "di=" + deviceId + ";uid=" + uid);
+ REGISTER_URI,
+ "accesstoken=at0001" + ";di=" + deviceId + ";uid=" + uid);
return request;
}
payloadData.put("accesstoken", accessToken);
payloadData.put("login", false);
payloadData.put("di", deviceId);
- payloadData.put("uid", USER_UUID);
+ StringBuffer query = new StringBuffer();
+ query.append("uid=" + USER_UUID);
request = MessageBuilder.createRequest(RequestMethod.POST,
- DEFAULT_AUTH_LOGOUT, null, ContentFormat.APPLICATION_CBOR,
+ DEFAULT_AUTH_LOGOUT, query.toString(),
+ ContentFormat.APPLICATION_CBOR,
mCbor.encodingPayloadToCbor(payloadData));
return request;
}
public static final String REQ_GROUP_MASTER_ID = "gmid";
public static final String REQ_MEMBER_ID = "mid";
- public static final String REQ_MEMBER_LIST = "midlist";
+ public static final String REQ_MEMBER_LIST = "members";
public static final String REQ_DEVICE_ID = "di";
- public static final String REQ_DEVICE_LIST = "dilist";
+ public static final String REQ_DEVICE_LIST = "devices";
public static final String REQ_INVITE = "invite";
public static final String REQ_PING_ARRAY = "inarray";
public static final String REQ_PING = "in";
public static final String REQ_LINKS = "links";
public static final String REQ_HREF = "href";
public static final String REQ_CRL = "crl";
-
- public static final String KEYFIELD_GROUPS = "groups";
- public static final String KEYFIELD_DEVICES = "devices";
}
public class DeviceServerSystem extends ServerSystem {
- IRequestChannel mRDServer = null;
+ private Cbor<HashMap<String, Object>> mCbor = new Cbor<HashMap<String, Object>>();
+
+ IRequestChannel mRDServer = null;
public DeviceServerSystem() {
mRDServer = ConnectorPool.getConnection("rd");
ctx.close();
}
}
-
ctx.fireChannelRead(msg);
}
@Override
+ public void write(ChannelHandlerContext ctx, Object msg,
+ ChannelPromise promise) throws Exception {
+
+ if (!(msg instanceof CoapResponse)) {
+ throw new BadRequestException(
+ "this msg type is not CoapResponse");
+ }
+ // This is CoapResponse
+ // Once the response is valid, add this to deviceList
+ CoapResponse response = (CoapResponse) msg;
+
+ switch (response.getUriPath()) {
+ case OICConstants.ACCOUNT_SESSION_FULL_URI:
+ if (response.getStatus() != ResponseStatus.CHANGED) {
+ throw new UnAuthorizedException();
+ }
+
+ if (response.getPayload() != null) {
+ break;
+ }
+
+ ctx.close();
+ break;
+ case OICConstants.ACCOUNT_FULL_URI:
+ if (response.getStatus() != ResponseStatus.DELETED) {
+ break;
+ }
+ ctx.close();
+ break;
+ }
+ ctx.writeAndFlush(msg);
+ }
+
+ @Override
public void channelActive(ChannelHandlerContext ctx) {
Device device = ctx.channel().attr(ServerSystem.keyDevice).get();
// Authenticated device connected
@Sharable
class CoapAuthHandler extends ChannelDuplexHandler {
- private Cbor<HashMap<String, Object>> mCbor = new Cbor<HashMap<String, Object>>();
@Override
public void channelActive(ChannelHandlerContext ctx) {
((CoapDevice) device).setExpiredPolicy(remainTime);
// Remove current auth handler and replace to
- // LifeCycleHandler
+ // LifeCycleHandle
ctx.channel().pipeline().replace(this,
"LifeCycleHandler", mLifeCycleHandler);
public void channelRead(ChannelHandlerContext ctx, Object msg) {
/*
- * The parameter msg has been translated from HTTP request to CoAP request
- * according to https://tools.ietf.org/html/draft-ietf-core-http-mapping-13
- * by the previous handler: HCProxyHandler.
+ * The parameter msg has been translated from HTTP request to CoAP
+ * request according to
+ * https://tools.ietf.org/html/draft-ietf-core-http-mapping-13 by
+ * the previous handler: HCProxyHandler.
*/
try {
}
((HttpDevice) device).updateDevice(
- (String) authPayload.get(Constants.DEVICE_ID),
+ (String) authPayload
+ .get(Constants.DEVICE_ID),
(String) authPayload.get(Constants.USER_ID),
(String) authPayload
.get(Constants.ACCESS_TOKEN));
if (isValidSid && httpDevice != null) {
// if the session timeout is passed,
// then remove the session
- if (httpDevice.getSessionExpiredTime()
- <= System.currentTimeMillis()) {
+ if (httpDevice
+ .getSessionExpiredTime() <= System
+ .currentTimeMillis()) {
isExpiredSid = true;
HttpServer.httpDeviceMap
? ((ServerException) t).getErrorResponse()
: ResponseStatus.UNAUTHORIZED;
/*
- * The CoAP response will be translated into HTTP response
- * by the next handler: HCProxyHandler.
+ * The CoAP response will be translated into HTTP response by
+ * the next handler: HCProxyHandler.
*/
ctx.writeAndFlush(MessageBuilder
.createResponse((CoapRequest) msg, responseStatus));
.parsePayloadFromCbor(response.getPayload(),
HashMap.class);
- if (response.getStatus()
- != ResponseStatus.CHANGED) {
+ if (response
+ .getStatus() != ResponseStatus.CHANGED) {
throw new UnAuthorizedException();
}
mASServer = ConnectorPool.getConnection("account");
}
+ class RDReceiveHandler implements IResponseEventHandler {
+
+ private Device mSrcDevice;
+ private IResponse mResponse;
+ private IRequest mRequest;
+
+ public RDReceiveHandler(IRequest request, IResponse response,
+ Device srcDevice) {
+ mSrcDevice = srcDevice;
+ mRequest = request;
+ mResponse = response;
+ }
+
+ @Override
+ public void onResponseReceived(IResponse response)
+ throws ClientException {
+ switch (response.getStatus()) {
+ case DELETED:
+ mSrcDevice.sendResponse(mResponse);
+ break;
+ default:
+ mSrcDevice.sendResponse(MessageBuilder.createResponse(
+ mRequest, ResponseStatus.BAD_REQUEST));
+ }
+ }
+ }
+
class AccountReceiveHandler implements IResponseEventHandler {
IRequestChannel mRDServer = null;
mRDServer.sendRequest(
MessageBuilder.createRequest(RequestMethod.DELETE,
uriPath.toString(), mRequest.getUriQuery()),
- mSrcDevice);
+ new RDReceiveHandler(mRequest, response,
+ mSrcDevice));
break;
case CHANGED:
case CONTENT:
StringBuffer additionalQuery = new StringBuffer();
additionalQuery
.append(Constants.USER_ID + "=" + srcDevice.getUserId());
- String uriQuery = request.getUriQuery() + ";"
- + additionalQuery.toString();
+ String uriQuery = additionalQuery.toString()
+ + (request.getUriQuery() != null
+ ? (";" + request.getUriQuery()) : "");
request = MessageBuilder.modifyRequest(request, null, uriQuery,
null, null);
}
checkPayloadException(Constants.REQ_LOGIN, payloadData);
if (payloadData.get(Constants.REQ_LOGIN).toString().equals("false")) {
- payloadData.put(Constants.USER_ID, srcDevice.getUserId());
- payloadData.put(Constants.DEVICE_ID, srcDevice.getDeviceId());
- payloadData.put(Constants.ACCESS_TOKEN, srcDevice.getAccessToken());
- request = MessageBuilder.modifyRequest(request, null, null,
+ StringBuffer additionalQuery = new StringBuffer();
+ additionalQuery
+ .append(Constants.USER_ID + "=" + srcDevice.getUserId());
+ String uriQuery = additionalQuery.toString()
+ + (request.getUriQuery() != null
+ ? (";" + request.getUriQuery()) : "");
+ request = MessageBuilder.modifyRequest(request, null, uriQuery,
ContentFormat.APPLICATION_CBOR,
mCbor.encodingPayloadToCbor(payloadData));
}
import org.iotivity.cloud.base.exception.ServerException;
import org.iotivity.cloud.base.exception.ServerException.BadRequestException;
import org.iotivity.cloud.base.protocols.IRequest;
+import org.iotivity.cloud.base.protocols.MessageBuilder;
import org.iotivity.cloud.base.resource.Resource;
import org.iotivity.cloud.ciserver.Constants;
import org.iotivity.cloud.util.Cbor;
throw new BadRequestException(
request.getMethod() + " request type is not support");
}
- mAuthServer.sendRequest(request, srcDevice);
+ StringBuffer additionalQuery = new StringBuffer();
+ additionalQuery.append(Constants.USER_ID + "=" + srcDevice.getUserId());
+ String uriQuery = additionalQuery.toString()
+ + (request.getUriQuery() != null ? (";" + request.getUriQuery())
+ : "");
+ mAuthServer.sendRequest(MessageBuilder.modifyRequest(request, null,
+ uriQuery, null, null), srcDevice);
}
}
\ No newline at end of file
import org.iotivity.cloud.base.device.Device;
import org.iotivity.cloud.base.device.IRequestChannel;
import org.iotivity.cloud.base.exception.ServerException;
+import org.iotivity.cloud.base.exception.ServerException.BadRequestException;
import org.iotivity.cloud.base.protocols.IRequest;
import org.iotivity.cloud.base.protocols.MessageBuilder;
-import org.iotivity.cloud.base.protocols.enums.ContentFormat;
import org.iotivity.cloud.base.resource.Resource;
import org.iotivity.cloud.ciserver.Constants;
import org.iotivity.cloud.util.Cbor;
request.getPayload(), HashMap.class);
checkPayloadException(Constants.REQ_INVITE, payloadData);
-
- payloadData.put(Constants.USER_ID, srcDevice.getUserId());
-
- request = MessageBuilder.modifyRequest(request, null, null,
- ContentFormat.APPLICATION_CBOR,
- cbor.encodingPayloadToCbor(payloadData));
break;
-
- default:
-
- StringBuffer additionalQuery = new StringBuffer();
- additionalQuery.append(
- Constants.USER_ID + "=" + srcDevice.getUserId());
-
- String uriQuery = additionalQuery.toString()
- + (request.getUriQuery() != null
- ? (";" + request.getUriQuery()) : "");
- request = MessageBuilder.modifyRequest(request, null, uriQuery,
- null, null);
-
+ case GET:
break;
+ case DELETE:
+ break;
+ default:
+ throw new BadRequestException(
+ request.getMethod() + " request type is not support");
}
+ StringBuffer additionalQuery = new StringBuffer();
+ additionalQuery.append(Constants.USER_ID + "=" + srcDevice.getUserId());
+
+ String uriQuery = additionalQuery.toString()
+ + (request.getUriQuery() != null ? (";" + request.getUriQuery())
+ : "");
+ request = MessageBuilder.modifyRequest(request, null, uriQuery, null,
+ null);
mAuthServer.sendRequest(request, srcDevice);
}
*/
package org.iotivity.cloud.ciserver.resources.proxy.rd;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
return;
}
+ ArrayList<String> devices = (ArrayList<String>) getResponseDeviceList(
+ payloadData);
+
if (mRequest.getUriQuery() != null
&& mRequest.getUriQueryMap()
.containsKey(Constants.REQ_DEVICE_ID)) {
- if (!getResponseDeviceList(payloadData)
- .containsAll(mRequest.getUriQueryMap()
- .get(Constants.REQ_DEVICE_ID))) {
+ if (!devices.containsAll(mRequest.getUriQueryMap()
+ .get(Constants.REQ_DEVICE_ID))) {
mSrcDevice.sendResponse(
MessageBuilder.createResponse(mRequest,
ResponseStatus.BAD_REQUEST));
ResponseStatus.BAD_REQUEST));
return;
}
+ String uriQuery = additionalQuery.toString()
+ + (mRequest.getUriQuery() != null
+ ? (";" + mRequest.getUriQuery()) : "");
mRequest = MessageBuilder.modifyRequest(mRequest, null,
- additionalQuery
- + (mRequest.getUriQuery() != null
- ? ";" + mRequest.getUriQuery()
- : ""),
- null, null);
+ uriQuery, null, null);
}
mRDServer.sendRequest(mRequest, mSrcDevice);
@Override
public void onDefaultRequestReceived(Device srcDevice, IRequest request)
throws ServerException {
- StringBuffer uriQuery = new StringBuffer();
- uriQuery.append(Constants.REQ_MEMBER_ID + "=" + srcDevice.getUserId());
+ StringBuffer additionalQuery = new StringBuffer();
+ additionalQuery.append(Constants.USER_ID + "=" + srcDevice.getUserId());
+ additionalQuery.append(";");
+ additionalQuery.append(
+ Constants.REQ_MEMBER_LIST + "=" + srcDevice.getUserId());
+ String uriQuery = additionalQuery.toString()
+ + (request.getUriQuery() != null ? (";" + request.getUriQuery())
+ : "");
StringBuffer uriPath = new StringBuffer();
uriPath.append(Constants.PREFIX_OIC + "/");
uriPath.append(srcDevice.getUserId());
IRequest requestToAS = MessageBuilder.createRequest(RequestMethod.GET,
- uriPath.toString(), uriQuery.toString());
+ uriPath.toString(), uriQuery);
mASServer.sendRequest(requestToAS,
new AccountReceiveHandler(request, srcDevice));
HashMap<String, Object> payloadData = mCbor
.parsePayloadFromCbor(request.getPayload(),
HashMap.class);
+ StringBuffer query = new StringBuffer();
+ query.append("op=add;");
+ query.append(Constants.USER_ID + "=" + srcDevice.getUserId());
StringBuffer uriPath = new StringBuffer();
uriPath.append(Constants.PREFIX_OIC + "/");
uriPath.append(srcDevice.getUserId());
String di = payloadData.get(Constants.REQ_DEVICE_ID).toString();
-
HashMap<String, Object> requestPayload = new HashMap<>();
- requestPayload.put(Constants.USER_ID, srcDevice.getUserId());
+
requestPayload.put(Constants.REQ_GROUP_DEVICES,
Arrays.asList(di));
IRequest requestToAS = MessageBuilder.createRequest(
- RequestMethod.POST, uriPath.toString(), "op=add",
- ContentFormat.APPLICATION_CBOR,
+ RequestMethod.POST, uriPath.toString(),
+ query.toString(), ContentFormat.APPLICATION_CBOR,
mCbor.encodingPayloadToCbor(requestPayload));
mASServer.sendRequest(requestToAS,
return;
}
- ArrayList<String> devices = new ArrayList<>();
-
- devices = (ArrayList<String>) payloadData
- .get(Constants.KEYFIELD_DEVICES);
-
- System.out.println("devices : " + devices);
+ ArrayList<String> devices = (ArrayList<String>) getResponseDeviceList(
+ payloadData);
if (mRequest.getUriQuery() != null
&& mRequest.getUriQueryMap()
ResponseStatus.BAD_REQUEST));
}
} else {
- String additionalQuery = makeAdditionalQuery(devices);
+ StringBuilder additionalQuery = makeAdditionalQuery(
+ devices);
+ String uriQuery = (additionalQuery != null
+ ? additionalQuery.toString() : "")
+ + (mRequest.getUriQuery() != null
+ ? (";" + mRequest.getUriQuery()) : "");
mRequest = MessageBuilder.modifyRequest(mRequest, null,
- (mRequest.getUriQuery() != null
- ? mRequest.getUriQuery() : "")
- + (additionalQuery == null ? ""
- : ";" + additionalQuery),
- null, null);
+ uriQuery, null, null);
}
-
mRDServer.sendRequest(mRequest, mSrcDevice);
break;
default:
}
}
- private String makeAdditionalQuery(ArrayList<String> deviceList) {
+ private StringBuilder makeAdditionalQuery(
+ ArrayList<String> deviceList) {
StringBuilder additionalQuery = new StringBuilder();
additionalQuery.append(";");
}
}
- return additionalQuery.toString();
+ return additionalQuery;
}
@SuppressWarnings("unchecked")
private List<String> getResponseDeviceList(
HashMap<String, Object> payloadData) {
- List<String> deviceList = (List<String>) payloadData
- .get(Constants.REQ_DEVICE_LIST);
-
+ ArrayList<String> deviceList = new ArrayList<>();
+ if (payloadData.containsKey(Constants.REQ_DEVICE_LIST)) {
+ deviceList = (ArrayList<String>) payloadData
+ .get(Constants.REQ_DEVICE_LIST);
+ }
return deviceList;
}
}
mRDServer.sendRequest(request, srcDevice);
} else {
- StringBuffer uriQuery = new StringBuffer();
- uriQuery.append(Constants.USER_ID + "=" + srcDevice.getUserId());
-
+ StringBuffer additionalQuery = new StringBuffer();
+ additionalQuery
+ .append(Constants.USER_ID + "=" + srcDevice.getUserId());
+ additionalQuery.append(";");
+ additionalQuery.append(
+ Constants.REQ_MEMBER_LIST + "=" + srcDevice.getUserId());
+
+ String uriQuery = additionalQuery.toString()
+ + (request.getUriQuery() != null
+ ? (";" + request.getUriQuery()) : "");
StringBuffer uriPath = new StringBuffer();
uriPath.append(Constants.PREFIX_OIC + "/");
uriPath.append(Constants.ACL_URI + "/");
uriPath.append(srcDevice.getUserId());
IRequest requestToAS = MessageBuilder.createRequest(
- RequestMethod.GET, uriPath.toString(), uriQuery.toString());
+ RequestMethod.GET, uriPath.toString(), uriQuery);
mASServer.sendRequest(requestToAS,
new AccountReceiveHandler(request, srcDevice));
ResponseStatus.BAD_REQUEST));
return;
}
+ String uriQuery = additionalQuery.toString()
+ + (mRequest.getUriQuery() != null
+ ? (";" + mRequest.getUriQuery()) : "");
mRequest = MessageBuilder.modifyRequest(mRequest, null,
- additionalQuery
- + (mRequest.getUriQuery() != null
- ? ";" + mRequest.getUriQuery()
- : ""),
- null, null);
+ uriQuery, null, null);
}
mRDServer.sendRequest(mRequest, mSrcDevice);
@Override
public void onDefaultRequestReceived(Device srcDevice, IRequest request)
throws ServerException {
- StringBuffer uriQuery = new StringBuffer();
- uriQuery.append(Constants.REQ_MEMBER_ID + "=" + srcDevice.getUserId());
-
+ StringBuffer additionalQuery = new StringBuffer();
+ additionalQuery.append(Constants.USER_ID + "=" + srcDevice.getUserId());
+ additionalQuery.append(";");
+ additionalQuery.append(
+ Constants.REQ_MEMBER_LIST + "=" + srcDevice.getUserId());
+
+ String uriQuery = additionalQuery.toString()
+ + (request.getUriQuery() != null ? (";" + request.getUriQuery())
+ : "");
StringBuffer uriPath = new StringBuffer();
uriPath.append(Constants.PREFIX_OIC + "/");
uriPath.append(Constants.ACL_URI + "/");
uriPath.append(srcDevice.getUserId());
IRequest requestToAS = MessageBuilder.createRequest(RequestMethod.GET,
- uriPath.toString(), uriQuery.toString());
+ uriPath.toString(), uriQuery);
mASServer.sendRequest(requestToAS,
new AccountReceiveHandler(request, srcDevice));
import java.util.concurrent.CountDownLatch;
import org.iotivity.cloud.base.device.CoapDevice;
-import org.iotivity.cloud.base.exception.ServerException.BadRequestException;
import org.iotivity.cloud.base.protocols.IRequest;
import org.iotivity.cloud.base.protocols.IResponse;
import org.iotivity.cloud.base.protocols.MessageBuilder;
assertTrue(methodCheck(mRes, ResponseStatus.VALID));
}
- @Test(expected = BadRequestException.class)
- public void testOnDefaultExceptionRequestReceived() {
- HashMap<String, Integer> payloadData = new HashMap<>();
- Cbor<HashMap<String, Object>> cbor = new Cbor<>();
- payloadData.put("in", 8);
- IRequest request = MessageBuilder.createRequest(RequestMethod.POST,
- "/oic/ping", null, ContentFormat.APPLICATION_CBOR,
- cbor.encodingPayloadToCbor(payloadData));
- keepAliveResource.onDefaultRequestReceived(mockDevice, request);
- }
-
private boolean methodCheck(IResponse response,
ResponseStatus responseStatus) {
if (responseStatus == response.getStatus())
// assertion : request msg to the AS is identical to the request msg
// from the client
assertTrue(mLatch.await(1L, SECONDS));
- assertTrue(hashmapCheck(mReq, Constants.USER_ID));
- assertTrue(hashmapCheck(mReq, Constants.DEVICE_ID));
- assertTrue(hashmapCheck(mReq, Constants.ACCESS_TOKEN));
- assertTrue(hashmapCheck(mReq, Constants.REQ_LOGIN));
+ assertTrue(queryCheck(mReq, Constants.USER_ID));
+ assertTrue(payloadCheck(mReq, Constants.DEVICE_ID));
+ assertTrue(payloadCheck(mReq, Constants.ACCESS_TOKEN));
+ assertTrue(payloadCheck(mReq, Constants.REQ_LOGIN));
}
private IRequest makeSignInRequest() {
IRequest request = null;
HashMap<String, Object> payloadData = new HashMap<>();
payloadData.put(Constants.REQ_LOGIN, false);
+ payloadData.put(Constants.DEVICE_ID, mDi);
+ payloadData.put(Constants.ACCESS_TOKEN,
+ "1689c70ffa245effc563017fee36d250");
request = MessageBuilder.createRequest(RequestMethod.POST, SESSION_URI,
null, ContentFormat.APPLICATION_CBOR,
cbor.encodingPayloadToCbor(payloadData));
return request;
}
- private boolean hashmapCheck(IRequest request, String propertyName) {
+ private boolean payloadCheck(IRequest request, String propertyName) {
Cbor<HashMap<String, Object>> mCbor = new Cbor<>();
HashMap<String, Object> payloadData = mCbor
.parsePayloadFromCbor(request.getPayload(), HashMap.class);
else
return false;
}
+
+ private boolean queryCheck(IRequest request, String propertyName) {
+ if (request.getUriQueryMap().get(propertyName) != null)
+ return true;
+ else
+ return false;
+ }
}
import org.mockito.stubbing.Answer;
public class AclGroupTest {
- private static final String TEST_RESOURCE_GROUP_URI = Constants.GROUP_FULL_URI;
+ private static final String TEST_RESOURCE_GROUP_URI = Constants.GROUP_FULL_URI;
- private CoapDevice mMockDevice = mock(
+ private CoapDevice mMockDevice = mock(
CoapDevice.class);
- private IRequest mReq = null;
- private DeviceServerSystem mDeviceServerSystem = new DeviceServerSystem();
- private final CountDownLatch mLatch = new CountDownLatch(
+ private IRequest mReq = null;
+ private DeviceServerSystem mDeviceServerSystem = new DeviceServerSystem();
+ private final CountDownLatch mLatch = new CountDownLatch(
1);
+ Cbor<HashMap<Object, Object>> mCbor = new Cbor<>();
@Mock
- private IRequestChannel mRequestChannel;
+ private IRequestChannel mRequestChannel;
@InjectMocks
- private AclGroup mAclGroupHandler = new AclGroup();
+ private AclGroup mAclGroupHandler = new AclGroup();
@Before
public void setUp() throws Exception {
"\t--------------OnRequestReceived(AS) Create Group Test------------");
HashMap<String, Object> payloadData = new HashMap<>();
- payloadData.put("gtype", "public");
- Cbor<HashMap<Object, Object>> cbor = new Cbor<>();
+ payloadData.put("owner", "u1");
+ payloadData.put("members", Arrays.asList("ui"));
+ payloadData.put("gname", Arrays.asList("home"));
+
IRequest request = MessageBuilder.createRequest(RequestMethod.POST,
TEST_RESOURCE_GROUP_URI, null, ContentFormat.APPLICATION_CBOR,
- cbor.encodingPayloadToCbor(payloadData));
+ mCbor.encodingPayloadToCbor(payloadData));
mAclGroupHandler.onRequestReceived(mMockDevice, request);
assertTrue(mLatch.await(1L, SECONDS));
- assertTrue(cbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
- .containsKey("gtype"));
- assertTrue(cbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
- .containsKey("gmid"));
+ assertTrue(mCbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
+ .containsKey("owner"));
+ assertTrue(mCbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
+ .containsKey("members"));
+ assertTrue(mCbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
+ .containsKey("gname"));
+ assertTrue(mReq.getUriQueryMap().containsKey("uid"));
assertEquals(mReq.getUriPath(), TEST_RESOURCE_GROUP_URI);
}
"\t--------------OnRequestReceived(AS) Add Member Test------------");
HashMap<String, Object> payloadData = new HashMap<>();
- Cbor<HashMap<Object, Object>> cbor = new Cbor<>();
+ payloadData.put("members", Arrays.asList("sampleMember"));
IRequest request = MessageBuilder.createRequest(RequestMethod.POST,
- TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup", null,
+ TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup", "op=add",
ContentFormat.APPLICATION_CBOR,
- cbor.encodingPayloadToCbor(payloadData));
+ mCbor.encodingPayloadToCbor(payloadData));
mAclGroupHandler.onRequestReceived(mMockDevice, request);
assertTrue(mLatch.await(1L, SECONDS));
- assertTrue(cbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
- .containsKey("midlist"));
+ assertTrue(mCbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
+ .containsKey("members"));
+ assertTrue(mReq.getUriQueryMap().containsKey("op"));
+ assertTrue(mReq.getUriQueryMap().containsKey("uid"));
assertEquals(mReq.getUriPath(),
TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup");
}
"\t--------------OnRequestReceived(AS) Add Device Test------------");
HashMap<String, Object> payloadData = new HashMap<>();
- payloadData.put("dilist", Arrays.asList("sampleDevice"));
- Cbor<HashMap<Object, Object>> cbor = new Cbor<>();
+ payloadData.put("devices", Arrays.asList("sampleDevice"));
IRequest request = MessageBuilder.createRequest(RequestMethod.POST,
- TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup", null,
+ TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup", "op=add",
ContentFormat.APPLICATION_CBOR,
- cbor.encodingPayloadToCbor(payloadData));
+ mCbor.encodingPayloadToCbor(payloadData));
mAclGroupHandler.onRequestReceived(mMockDevice, request);
assertTrue(mLatch.await(1L, SECONDS));
- assertTrue(cbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
- .containsKey("dilist"));
+ assertTrue(mCbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
+ .containsKey("devices"));
+ assertTrue(mReq.getUriQueryMap().containsKey("op"));
+ assertTrue(mReq.getUriQueryMap().containsKey("uid"));
assertEquals(mReq.getUriPath(),
TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup");
}
"\t--------------OnRequestReceived(AS) Get Group List & Get Group Info Test------------");
IRequest request = MessageBuilder.createRequest(RequestMethod.GET,
- TEST_RESOURCE_GROUP_URI, null, null, null);
+ TEST_RESOURCE_GROUP_URI, "members=u1", null, null);
mAclGroupHandler.onRequestReceived(mMockDevice, request);
assertTrue(mLatch.await(1L, SECONDS));
- assertTrue(mReq.getUriQueryMap().containsKey("mid"));
+ assertTrue(mReq.getUriQueryMap().containsKey("members"));
+ assertTrue(mReq.getUriQueryMap().containsKey("uid"));
assertEquals(mReq.getUriPath(), TEST_RESOURCE_GROUP_URI);
}
"\t--------------OnRequestReceived(AS) Delete Group Test------------");
IRequest request = MessageBuilder.createRequest(RequestMethod.DELETE,
- TEST_RESOURCE_GROUP_URI, "gid=samplegid", null, null);
+ TEST_RESOURCE_GROUP_URI + "/g1", "owner=u1", null, null);
mAclGroupHandler.onRequestReceived(mMockDevice, request);
assertTrue(mLatch.await(1L, SECONDS));
- assertTrue(mReq.getUriQueryMap().containsKey("gid"));
- assertTrue(mReq.getUriQueryMap().containsKey("gmid"));
- assertEquals(mReq.getUriPath(), TEST_RESOURCE_GROUP_URI);
+ assertTrue(mReq.getUriQueryMap().containsKey("owner"));
+ assertTrue(mReq.getUriQueryMap().containsKey("uid"));
+ assertEquals(mReq.getUriPath(), TEST_RESOURCE_GROUP_URI + "/g1");
}
@Test
public void testDeleteMemberRequestReceived() throws Exception {
System.out.println(
"\t--------------OnRequestReceived(AS) Delete Member Test------------");
-
- IRequest request = MessageBuilder.createRequest(RequestMethod.DELETE,
- TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup", null, null,
- null);
+ HashMap<String, Object> payloadData = new HashMap<>();
+ payloadData.put("members", Arrays.asList("sampleMember"));
+ IRequest request = MessageBuilder.createRequest(RequestMethod.POST,
+ TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup", "op=delete",
+ ContentFormat.APPLICATION_CBOR,
+ mCbor.encodingPayloadToCbor(payloadData));
mAclGroupHandler.onRequestReceived(mMockDevice, request);
assertTrue(mLatch.await(1L, SECONDS));
- assertTrue(mReq.getUriQueryMap().containsKey("midlist"));
+ assertTrue(mCbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
+ .containsKey("members"));
+ assertTrue(mReq.getUriQueryMap().containsKey("op"));
+ assertTrue(mReq.getUriQueryMap().containsKey("uid"));
assertEquals(mReq.getUriPath(),
TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup");
}
public void testDeleteDeviceRequestReceived() throws Exception {
System.out.println(
"\t--------------OnRequestReceived(AS) Delete Member Test------------");
-
- IRequest request = MessageBuilder.createRequest(RequestMethod.DELETE,
- TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup",
- "dilist=sampledi", null, null);
+ HashMap<String, Object> payloadData = new HashMap<>();
+ payloadData.put("devices", Arrays.asList("sampleDevice"));
+ IRequest request = MessageBuilder.createRequest(RequestMethod.POST,
+ TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup", "op=delete",
+ ContentFormat.APPLICATION_CBOR,
+ mCbor.encodingPayloadToCbor(payloadData));
mAclGroupHandler.onRequestReceived(mMockDevice, request);
assertTrue(mLatch.await(1L, SECONDS));
- assertTrue(mReq.getUriQueryMap().containsKey("dilist"));
+ assertTrue(mCbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
+ .containsKey("devices"));
+ assertTrue(mReq.getUriQueryMap().containsKey("op"));
+ assertTrue(mReq.getUriQueryMap().containsKey("uid"));
assertEquals(mReq.getUriPath(),
TEST_RESOURCE_GROUP_URI + "/" + "sampleGroup");
}
HashMap<String, Object> invite = new HashMap<>();
invite.put("gid", "g0001");
invite.put("mid", "u0001");
+ payloadData.put("uid", "u0001");
payloadData.put("invite", Arrays.asList(invite));
Cbor<HashMap<Object, Object>> cbor = new Cbor<>();
IRequest request = MessageBuilder.createRequest(RequestMethod.POST,
mAclInviteHandler.onRequestReceived(mMockDevice, request);
assertTrue(mLatch.await(1L, SECONDS));
+ assertTrue(mReq.getUriQueryMap().containsKey("uid"));
assertTrue(cbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
.containsKey("uid"));
assertTrue(cbor.parsePayloadFromCbor(mReq.getPayload(), HashMap.class)
}
@Test
- public void testGetRequestReceived() throws Exception {
+ public void testGetRequestReceivedAccept() throws Exception {
System.out.println(
"\t--------------OnRequestReceived(AS) Get Message Test------------");
IRequest request = MessageBuilder.createRequest(RequestMethod.GET,
- TEST_RESOURCE_INVITE_URI, null, null, null);
+ TEST_RESOURCE_INVITE_URI, "gid=g0001;accept=1", null, null);
mAclInviteHandler.onRequestReceived(mMockDevice, request);
assertTrue(mLatch.await(1L, SECONDS));
assertTrue(mReq.getUriQueryMap().containsKey("uid"));
+ assertTrue(mReq.getUriQueryMap().containsKey("gid"));
+ assertTrue(mReq.getUriQueryMap().containsKey("accept"));
+ assertTrue(mReq.getUriQueryMap().get("accept").get(0).equals("1"));
+ assertEquals(mReq.getUriPath(), TEST_RESOURCE_INVITE_URI);
+ }
+
+ @Test
+ public void testGetRequestReceivedDeny() throws Exception {
+ System.out.println(
+ "\t--------------OnRequestReceived(AS) Get Message Test------------");
+
+ IRequest request = MessageBuilder.createRequest(RequestMethod.GET,
+ TEST_RESOURCE_INVITE_URI, "gid=g0001;accept=0", null, null);
+ mAclInviteHandler.onRequestReceived(mMockDevice, request);
+
+ assertTrue(mLatch.await(1L, SECONDS));
+ assertTrue(mReq.getUriQueryMap().containsKey("uid"));
+ assertTrue(mReq.getUriQueryMap().containsKey("gid"));
+ assertTrue(mReq.getUriQueryMap().containsKey("accept"));
+ assertTrue(mReq.getUriQueryMap().get("accept").get(0).equals("0"));
assertEquals(mReq.getUriPath(), TEST_RESOURCE_INVITE_URI);
}
"\t--------------OnRequestReceived(AS) Delete Message Test------------");
IRequest request = MessageBuilder.createRequest(RequestMethod.DELETE,
- TEST_RESOURCE_INVITE_URI, "gid=g0001", null, null);
+ TEST_RESOURCE_INVITE_URI, "gid=g0001;mid=u0002", null, null);
mAclInviteHandler.onRequestReceived(mMockDevice, request);
assertTrue(mLatch.await(1L, SECONDS));
assertTrue(mReq.getUriQueryMap().containsKey("gid"));
+ assertTrue(mReq.getUriQueryMap().containsKey("mid"));
assertTrue(mReq.getUriQueryMap().containsKey("uid"));
assertEquals(mReq.getUriPath(), TEST_RESOURCE_INVITE_URI);
}
--- /dev/null
+package org.iotivity.cloud.ciserver.resources.proxy.account;
+
+import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+
+import java.util.concurrent.CountDownLatch;
+
+import org.iotivity.cloud.base.OICConstants;
+import org.iotivity.cloud.base.device.CoapDevice;
+import org.iotivity.cloud.base.device.IRequestChannel;
+import org.iotivity.cloud.base.protocols.IRequest;
+import org.iotivity.cloud.base.protocols.MessageBuilder;
+import org.iotivity.cloud.base.protocols.coap.CoapRequest;
+import org.iotivity.cloud.base.protocols.enums.RequestMethod;
+import org.iotivity.cloud.ciserver.Constants;
+import org.iotivity.cloud.ciserver.DeviceServerSystem;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+public class CrlTest {
+
+ private static final String TEST_RESOURCE_CRL_URI = "/"
+ + OICConstants.PREFIX_OIC + "/" + OICConstants.CREDPROV_URI + "/"
+ + Constants.REQ_CRL;
+ private CoapDevice mMockDevice = mock(CoapDevice.class);
+ private IRequest mReq = null;
+ private DeviceServerSystem mDeviceServerSystem = new DeviceServerSystem();
+ final CountDownLatch mLatch = new CountDownLatch(1);
+
+ @Mock
+ private IRequestChannel mRequestChannel;
+
+ @InjectMocks
+ private Crl mCertHandler = new Crl();
+
+ @Before
+ public void setUp() throws Exception {
+ mReq = null;
+ MockitoAnnotations.initMocks(this);
+ mDeviceServerSystem.addResource(mCertHandler);
+ // callback mock
+ Mockito.doAnswer(new Answer<Object>() {
+ @Override
+ public CoapRequest answer(InvocationOnMock invocation)
+ throws Throwable {
+ Object[] args = invocation.getArguments();
+ CoapRequest request = (CoapRequest) args[0];
+ System.out.println(
+ "\t----------payload : " + request.getPayloadString());
+ System.out.println(
+ "\t----------uripath : " + request.getUriPath());
+ System.out.println(
+ "\t---------uriquery : " + request.getUriQuery());
+ mReq = request;
+ mLatch.countDown();
+ return null;
+ }
+ }).when(mRequestChannel).sendRequest(Mockito.any(IRequest.class),
+ Mockito.any(CoapDevice.class));
+ }
+
+ @Test
+ public void testOnDefaultRequestReceived() throws Exception {
+ System.out.println(
+ "\t--------------OnRequestReceived(AS) Test------------");
+
+ IRequest request = MessageBuilder.createRequest(RequestMethod.POST,
+ TEST_RESOURCE_CRL_URI, null, null, null);
+ mCertHandler.onRequestReceived(mMockDevice, request);
+
+ assertTrue(mLatch.await(1L, SECONDS));
+ assertEquals(mReq.getUriPath(), TEST_RESOURCE_CRL_URI);
+ }
+
+}
MockitoAnnotations.initMocks(this);
mDeviceServerSystem.addResource(mPrsHandler);
Mockito.doReturn("mockDeviceId").when(mMockDevice).getDeviceId();
+ Mockito.doReturn("mockUserId").when(mMockDevice).getUserId();
Mockito.doAnswer(new Answer<Object>() {
@Override
public CoapRequest answer(InvocationOnMock invocation)
mDeviceServerSystem.onRequestReceived(mMockDevice, request);
assertTrue(mLatch.await(1L, SECONDS));
HashMap<String, List<String>> queryMap = mReq.getUriQueryMap();
- assertTrue(queryMap.containsKey("mid"));
+ assertTrue(queryMap.containsKey("uid"));
+ assertTrue(queryMap.containsKey("members"));
assertTrue(mReq.getMethod().equals(RequestMethod.GET));
- assertEquals(mReq.getUriPath(), Constants.GROUP_FULL_URI + "/null");
+ assertEquals(mReq.getUriPath(),
+ Constants.GROUP_FULL_URI + "/mockUserId");
}
// @InjectMocks for testPresenceDeregisterSpecificDeviceOnRequestReceived
assertTrue(mLatch.await(1L, SECONDS));
assertTrue(mReq.getMethod().equals(RequestMethod.GET));
HashMap<String, List<String>> queryMap = mReq.getUriQueryMap();
- assertTrue(queryMap.containsKey("mid"));
- assertEquals(mReq.getUriPath(), Constants.GROUP_FULL_URI + "/null");
+ assertTrue(queryMap.containsKey("uid"));
+ assertTrue(queryMap.containsKey("members"));
+ assertEquals(mReq.getUriPath(),
+ Constants.GROUP_FULL_URI + "/mockUserId");
}
public IRequest makePresenceEntireDevice() {
deviceList.add("device1");
deviceList.add("device2");
deviceList.add("device3");
- responsePayload.put("dilist", deviceList);
+ responsePayload.put("devices", deviceList);
responsePayload.put("gid", "g0001");
responsePayload.put("gmid", "u0001");
ArrayList<String> midList = new ArrayList<String>();
midList.add("u0001");
- responsePayload.put("midlist", midList);
+ responsePayload.put("members", midList);
IRequest requestFromCitoAs = MessageBuilder.createRequest(
RequestMethod.GET, Constants.GROUP_FULL_URI + "/g0001",
- "mid=null");
+ "uid=mockUserId;members=mockUserId");
IResponse response = MessageBuilder.createResponse(requestFromCitoAs,
ResponseStatus.CONTENT, ContentFormat.APPLICATION_CBOR,
cbor.encodingPayloadToCbor(responsePayload));
public class ResourceFindTest {
private static final String TEST_RESOURCE_FIND_URI = Constants.WELL_KNOWN_FULL_URI;
private String di = "B371C481-38E6-4D47-8320-7688D8A5B58C";
- private CoapDevice mockDevice = mock(CoapDevice.class);
+ private CoapDevice mMockDevice = mock(CoapDevice.class);
private IResponse mRes = null;
private IRequest mReq = null;
private DeviceServerSystem mDeviceServerSystem = new DeviceServerSystem();
public void setUp() throws Exception {
mRes = null;
mReq = null;
- Mockito.doReturn("mockDeviceId").when(mockDevice).getDeviceId();
+ Mockito.doReturn("mockDeviceId").when(mMockDevice).getDeviceId();
+ Mockito.doReturn("mockUserId").when(mMockDevice).getUserId();
MockitoAnnotations.initMocks(this);
mDeviceServerSystem.addResource(mResHandler);
// callback mock
mRes = resp;
return resp;
}
- }).when(mockDevice).sendResponse(Mockito.anyObject());
+ }).when(mMockDevice).sendResponse(Mockito.anyObject());
Mockito.doAnswer(new Answer<Object>() {
@Override
public CoapRequest answer(InvocationOnMock invocation)
"rt=core.light;di=" + "device1");
@InjectMocks
ResourceFind.AccountReceiveHandler specificDeviceHandler = mResHandler.new AccountReceiveHandler(
- requestSpecificDevice, mockDevice);
+ requestSpecificDevice, mMockDevice);
@Test
public void testSpecificDeviceonResponseReceived()
.createRequest(RequestMethod.GET, TEST_RESOURCE_FIND_URI,
"rt=core.light");
@InjectMocks
- ResourceFind.AccountReceiveHandler handler = mResHandler.new AccountReceiveHandler(
- requestEntireDevices, mockDevice);
+ ResourceFind.AccountReceiveHandler entireDevicehandler = mResHandler.new AccountReceiveHandler(
+ requestEntireDevices, mMockDevice);
@Test
public void testEntireDeviceonResponseReceived() throws ClientException {
System.out.println(
"\t--------------onResponseReceived(RD) Resource Find (entire deivces) Test------------");
IResponse response = responseFromAccountServer();
- handler.onResponseReceived(response);
+ entireDevicehandler.onResponseReceived(response);
HashMap<String, List<String>> queryMap = mReq.getUriQueryMap();
assertTrue(mReq.getMethod() == RequestMethod.GET);
assertTrue(queryMap.get("rt").contains("core.light"));
.createRequest(RequestMethod.GET, TEST_RESOURCE_FIND_URI, null);
@InjectMocks
ResourceFind.AccountReceiveHandler entireDevicesNoQueryHandler = mResHandler.new AccountReceiveHandler(
- requestEntireDevicesNoQuery, mockDevice);
+ requestEntireDevicesNoQuery, mMockDevice);
@Test
public void testEntireDeviceNoQueryonResponseReceived()
"\t--------------OnRequestReceived(RD) Resource Find (entire deivces) Test------------");
IRequest request = MessageBuilder.createRequest(RequestMethod.GET,
TEST_RESOURCE_FIND_URI, "rt=core.light");
- mResHandler.onRequestReceived(mockDevice, request);
+ mResHandler.onRequestReceived(mMockDevice, request);
HashMap<String, List<String>> queryMap = mReq.getUriQueryMap();
assertTrue(mLatch.await(1L, SECONDS));
- assertTrue(queryMap.containsKey("mid"));
- assertEquals(mReq.getUriPath(), Constants.GROUP_FULL_URI + "/null");
+ assertTrue(queryMap.containsKey("uid"));
+ assertTrue(queryMap.containsKey("members"));
+ assertEquals(mReq.getUriPath(),
+ Constants.GROUP_FULL_URI + "/mockUserId");
}
@Test
"\t--------------OnRequestReceived(RD) Resource Find (specific deivce) Test------------");
IRequest request = MessageBuilder.createRequest(RequestMethod.GET,
TEST_RESOURCE_FIND_URI, "rt=core.light;di=" + di);
- mResHandler.onRequestReceived(mockDevice, request);
+ mResHandler.onRequestReceived(mMockDevice, request);
HashMap<String, List<String>> queryMap = mReq.getUriQueryMap();
// assertion: if the request packet from the CI contains the query
// which includes device ID and the accesstoken
deviceList.add("device1");
deviceList.add("device2");
deviceList.add("device3");
- responsePayload.put("dilist", deviceList);
+ responsePayload.put("devices", deviceList);
responsePayload.put("gid", "g0001");
responsePayload.put("gmid", "u0001");
ArrayList<String> midList = new ArrayList<String>();
midList.add("u0001");
- responsePayload.put("midlist", midList);
+ responsePayload.put("memebers", midList);
IResponse response = MessageBuilder.createResponse(requestEntireDevices,
ResponseStatus.CONTENT, ContentFormat.APPLICATION_CBOR,
cbor.encodingPayloadToCbor(responsePayload));
mRes = null;
mReq = null;
Mockito.doReturn("mockDeviceId").when(mMockDevice).getDeviceId();
+ Mockito.doReturn("mockUserId").when(mMockDevice).getUserId();
MockitoAnnotations.initMocks(this);
deviceServerSystem.addResource(adHandler);
Mockito.doAnswer(new Answer<Object>() {
// assertion: if the request packet from the CI contains the query
// which includes the accesstoken and the di
assertTrue(latch.await(1L, SECONDS));
- assertTrue(queryMap.containsKey("mid"));
- assertEquals(mReq.getUriPath(), Constants.GROUP_FULL_URI + "/null");
+ assertTrue(queryMap.containsKey("uid"));
+ assertTrue(queryMap.containsKey("members"));
+ assertEquals(mReq.getUriPath(),
+ Constants.GROUP_FULL_URI + "/mockUserId");
}
@Test
deviceServerSystem.onRequestReceived(mMockDevice, request);
HashMap<String, List<String>> queryMap = mReq.getUriQueryMap();
assertTrue(latch.await(1L, SECONDS));
- assertTrue(queryMap.containsKey("mid"));
- assertEquals(mReq.getUriPath(), Constants.GROUP_FULL_URI + "/null");
+ assertTrue(queryMap.containsKey("uid"));
+ assertTrue(queryMap.containsKey("members"));
+ assertEquals(mReq.getUriPath(),
+ Constants.GROUP_FULL_URI + "/mockUserId");
}
IRequest requestEntireDevices = MessageBuilder
deviceList.add("device1");
deviceList.add("device2");
deviceList.add("device3");
- responsePayload.put("dilist", deviceList);
+ responsePayload.put("devices", deviceList);
responsePayload.put("gid", "g0001");
- responsePayload.put("gmid", "u0001");
ArrayList<String> midList = new ArrayList<String>();
midList.add("u0001");
- responsePayload.put("midlist", midList);
+ responsePayload.put("members", midList);
IResponse response = MessageBuilder.createResponse(requestEntireDevices,
ResponseStatus.CONTENT, ContentFormat.APPLICATION_CBOR,
cbor.encodingPayloadToCbor(responsePayload));