From ed28aa93c0f0aface8b90b15d89dfd71f7a52c6f Mon Sep 17 00:00:00 2001 From: "yeonghun.nam" Date: Mon, 5 Sep 2016 11:54:08 +0900 Subject: [PATCH] Add test case for TokenRefresh Change-Id: Ifeabcc6c113d81dc92886a9d4b3cdfbc97a23645 Signed-off-by: Glen Youngjin Kim Signed-off-by: yeonghun.nam Reviewed-on: https://gerrit.iotivity.org/gerrit/11381 Tested-by: jenkins-iotivity Reviewed-by: Jee Hyeok Kim --- .../tokenrefresh/TokenRefreshResourceTest.java | 57 +++++++++++++++++----- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/cloud/account/src/test/java/org/iotivity/cloud/accountserver/resources/account/tokenrefresh/TokenRefreshResourceTest.java b/cloud/account/src/test/java/org/iotivity/cloud/accountserver/resources/account/tokenrefresh/TokenRefreshResourceTest.java index aaee6b5..ee03ffd 100644 --- a/cloud/account/src/test/java/org/iotivity/cloud/accountserver/resources/account/tokenrefresh/TokenRefreshResourceTest.java +++ b/cloud/account/src/test/java/org/iotivity/cloud/accountserver/resources/account/tokenrefresh/TokenRefreshResourceTest.java @@ -1,5 +1,6 @@ package org.iotivity.cloud.accountserver.resources.account.tokenrefresh; +import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import java.text.DateFormat; @@ -15,10 +16,12 @@ import org.iotivity.cloud.accountserver.util.TypeCastingManager; import org.iotivity.cloud.base.device.CoapDevice; import org.iotivity.cloud.base.exception.ServerException; import org.iotivity.cloud.base.protocols.IRequest; +import org.iotivity.cloud.base.protocols.IResponse; import org.iotivity.cloud.base.protocols.MessageBuilder; import org.iotivity.cloud.base.protocols.coap.CoapResponse; import org.iotivity.cloud.base.protocols.enums.ContentFormat; import org.iotivity.cloud.base.protocols.enums.RequestMethod; +import org.iotivity.cloud.base.protocols.enums.ResponseStatus; import org.iotivity.cloud.util.Cbor; import org.junit.Before; import org.junit.Test; @@ -30,16 +33,18 @@ import org.mockito.stubbing.Answer; public class TokenRefreshResourceTest { private static final String REFRESH_TOKEN_URI = Constants.ACCOUNT_TOKENREFRESH_FULL_URI; private static final String DEVICE_ID = "B371C481-38E6-4D47-8320-7688D8A5B58C"; - private String mAuthProvider = "Samsung"; - private String mRefreshToken = "rt0001"; - private String mUuid = "u0001"; + private String mAuthProvider = "Google"; + private String mAccessToken = "ya29.Ci9VA06h_WhVG0lV3nU-kXMPSmisPJ6sM5iqMuoaNz0YYCO2lkXo5TGGy7wiol6Rdw"; + private String mRefreshToken = "1/UKLrjrMWErlq8has8XcpPg_riBcHcehKFUdoPoX9k0E"; + private String mUuid = "3ff62bac-c7cb-46f5-bb9b-c0f2f75f8c1d"; private String mUserId = "userId"; - private Cbor> mCbor = new Cbor>(); - private CoapDevice mockDevice = mock( + private Cbor> mCbor = new Cbor<>(); + private CoapDevice mMockDevice = mock( CoapDevice.class); private TypeCastingManager mUserTableCastingManager = new TypeCastingManager<>(); private TypeCastingManager mTokenTableCastingManager = new TypeCastingManager<>(); private TokenRefreshResource mTokenRefreshResource = new TokenRefreshResource(); + private IResponse mResponse = null; @Before public void setUp() throws Exception { @@ -55,9 +60,22 @@ public class TokenRefreshResourceTest { .println("\t----payload : " + resp.getPayloadString()); System.out .println("\t----responsestatus : " + resp.getStatus()); + mResponse = resp; return resp; } - }).when(mockDevice).sendResponse(Mockito.anyObject()); + }).when(mMockDevice).sendResponse(Mockito.anyObject()); + } + + @Test + public void testRefreshTokenonDefaultRequestReceived() throws Exception { + String uuid = this.mUuid; + RegisterTokenInfo(uuid, mUserId, mAccessToken, mRefreshToken); + TokenRefresh(RequestMethod.POST, mMockDevice, uuid, DEVICE_ID, + mRefreshToken); + assertTrue(methodCheck(mResponse, ResponseStatus.CHANGED)); + assertTrue(hashmapCheck(mResponse, "accesstoken")); + assertTrue(hashmapCheck(mResponse, "refreshtoken")); + assertTrue(hashmapCheck(mResponse, "expiresin")); } @Test(expected = ServerException.NotFoundException.class) @@ -65,7 +83,7 @@ public class TokenRefreshResourceTest { throws Exception { String uuid = this.mUuid + "WrongRefreshTokenCase"; RegisterTokenInfo(uuid, mUserId, mAuthProvider, mRefreshToken); - TokenRefresh(RequestMethod.POST, mockDevice, uuid, DEVICE_ID, + TokenRefresh(RequestMethod.POST, mMockDevice, uuid, DEVICE_ID, mRefreshToken + "NotExist"); } @@ -74,7 +92,7 @@ public class TokenRefreshResourceTest { throws Exception { String uuid = this.mUuid + "InvalidRequestMethod (GET)"; RegisterTokenInfo(uuid, mUserId, mAuthProvider, mRefreshToken); - TokenRefresh(RequestMethod.GET, mockDevice, uuid, DEVICE_ID, + TokenRefresh(RequestMethod.GET, mMockDevice, uuid, DEVICE_ID, mRefreshToken + "InvalidMethod"); } @@ -82,7 +100,7 @@ public class TokenRefreshResourceTest { public void testRefreshTokenonRequestReceivedNullUuid() throws Exception { String uuid = this.mUuid + "NullUuid"; RegisterTokenInfo(uuid, mUserId, mAuthProvider, mRefreshToken); - TokenRefresh(RequestMethod.POST, mockDevice, null, DEVICE_ID, + TokenRefresh(RequestMethod.POST, mMockDevice, null, DEVICE_ID, mRefreshToken + "InvalidMethod"); } @@ -90,7 +108,7 @@ public class TokenRefreshResourceTest { public void testRefreshTokenonRequestReceivedNullDi() throws Exception { String uuid = this.mUuid + "NullDi"; RegisterTokenInfo(uuid, mUserId, mAuthProvider, mRefreshToken); - TokenRefresh(RequestMethod.POST, mockDevice, uuid, null, + TokenRefresh(RequestMethod.POST, mMockDevice, uuid, null, mRefreshToken + "InvalidMethod"); } @@ -99,7 +117,7 @@ public class TokenRefreshResourceTest { throws Exception { String uuid = this.mUuid + "NullRefreshToken"; RegisterTokenInfo(uuid, mUserId, mAuthProvider, mRefreshToken); - TokenRefresh(RequestMethod.POST, mockDevice, uuid, DEVICE_ID, null); + TokenRefresh(RequestMethod.POST, mMockDevice, uuid, DEVICE_ID, null); } public void TokenRefresh(RequestMethod method, CoapDevice device, @@ -160,4 +178,21 @@ public class TokenRefreshResourceTest { userInfo.setUserid(userId); return userInfo; } + + private boolean methodCheck(IResponse response, + ResponseStatus responseStatus) { + if (responseStatus == response.getStatus()) + return true; + else + return false; + } + + private boolean hashmapCheck(IResponse response, String propertyName) { + HashMap payloadData = mCbor + .parsePayloadFromCbor(response.getPayload(), HashMap.class); + if (payloadData.containsKey(propertyName)) + return true; + else + return false; + } } -- 2.7.4