From 37f595d38221cdf308dea8b64716270b2ff88b0d Mon Sep 17 00:00:00 2001 From: nishadi Date: Sat, 24 Feb 2018 18:56:09 +0530 Subject: [PATCH] Added CommentManagementAPITest class Test of CommentManagementAPI class --- .../services/CommentManagementAPITest.java | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/test/java/org/wso2/carbon/device/application/mgt/store/api/services/CommentManagementAPITest.java diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/test/java/org/wso2/carbon/device/application/mgt/store/api/services/CommentManagementAPITest.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/test/java/org/wso2/carbon/device/application/mgt/store/api/services/CommentManagementAPITest.java new file mode 100644 index 00000000000..4e973ac251a --- /dev/null +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.store.api/src/test/java/org/wso2/carbon/device/application/mgt/store/api/services/CommentManagementAPITest.java @@ -0,0 +1,148 @@ +package org.wso2.carbon.device.application.mgt.store.api.services; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.mockito.Mockito; +import org.mockito.exceptions.base.MockitoException; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor; +import org.testng.Assert; +import org.testng.IObjectFactory; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.ObjectFactory; +import org.testng.annotations.Test; +import org.wso2.carbon.context.CarbonContext; +import org.wso2.carbon.context.PrivilegedCarbonContext; +import org.wso2.carbon.device.application.mgt.common.Comment; +import org.wso2.carbon.device.application.mgt.common.exception.CommentManagementException; +import org.wso2.carbon.device.application.mgt.common.services.CommentsManager; +import org.wso2.carbon.device.application.mgt.store.api.APIUtil; +import org.wso2.carbon.device.application.mgt.store.api.services.impl.CommentManagementAPIImpl; +import org.wso2.carbon.device.application.mgt.store.api.services.util.CommentMgtTestHelper; +import org.wso2.carbon.utils.multitenancy.MultitenantUtils; + +import javax.ws.rs.core.Response; + +import static org.mockito.MockitoAnnotations.initMocks; + +@PowerMockIgnore("javax.ws.rs.*") @SuppressStaticInitializationFor({ + "org.wso2.carbon.device.application.mgt.api.APIUtil" }) @PrepareForTest({ APIUtil.class, CommentsManager.class, + CommentManagementAPITest.class, MultitenantUtils.class }) public class CommentManagementAPITest { + private static final Log log = LogFactory.getLog(CommentManagementAPI.class); + + private CommentManagementAPI commentManagementAPI; + private CommentsManager commentsManager; + private int tenantId; + + @ObjectFactory public IObjectFactory getObjectFactory() { + return new org.powermock.modules.testng.PowerMockObjectFactory(); + } + + @BeforeClass void init() throws CommentManagementException { + + log.info("Initializing CommentManagementAPI tests"); + initMocks(this); + this.commentsManager = Mockito.mock(CommentsManager.class, Mockito.RETURNS_DEFAULTS); + this.commentManagementAPI = new CommentManagementAPIImpl(); + } + + @Test public void testGetAllCommentsWithValidDetails() throws Exception { + PowerMockito.stub(PowerMockito.method(APIUtil.class, "getCommentsManager")).toReturn(this.commentsManager); + Response response = this.commentManagementAPI.getAllComments("a", 1, 2); + Assert.assertNotNull(response, "The response object is null."); + Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(), + "The response status should be 200."); + Mockito.reset(commentsManager); + } + + @Test public void testAddComments() throws Exception { + Comment comment = CommentMgtTestHelper.getDummyComment("a", "a"); + PowerMockito.stub(PowerMockito.method(APIUtil.class, "getCommentsManager")).toReturn(this.commentsManager); + // PowerMockito.stub(PowerMockito.method(PrivilegedCarbonContext.class, "getThreadLocalCarbonContext")) + // .toReturn(Mockito.mock(PrivilegedCarbonContext.class, Mockito.RETURNS_MOCKS)); + // PowerMockito.stub(PowerMockito.method(CarbonContext.class, "getTenantId")) + // .toReturn(Mockito.mock(CarbonContext.class, Mockito.RETURNS_MOCKS)); + Response response = this.commentManagementAPI.addComments(comment, null); + Assert.assertNotNull(response, "The response object is null."); + Assert.assertEquals(response.getStatus(), Response.Status.CREATED.getStatusCode(), + "The response status should be 201."); + Mockito.reset(commentsManager); + } + @Test public void testAddNullComment() throws Exception { + Comment comment=null; + PowerMockito.stub(PowerMockito.method(APIUtil.class, "getCommentsManager")).toReturn(this.commentsManager); + // PowerMockito.stub(PowerMockito.method(PrivilegedCarbonContext.class, "getThreadLocalCarbonContext")) + // .toReturn(Mockito.mock(PrivilegedCarbonContext.class, Mockito.RETURNS_MOCKS)); + // PowerMockito.stub(PowerMockito.method(CarbonContext.class, "getTenantId")) + // .toReturn(Mockito.mock(CarbonContext.class, Mockito.RETURNS_MOCKS)); + Response response = this.commentManagementAPI.addComments(comment, null); + Assert.assertNotNull(response, "The response object is null."); + Assert.assertEquals(response.getStatus(), Response.Status.BAD_REQUEST.getStatusCode(), + "The response status should be 400."); + Mockito.reset(commentsManager); + } + + @Test public void testUpdateComment() throws Exception { + Comment comment = CommentMgtTestHelper.getDummyComment("a", "a"); + PowerMockito.stub(PowerMockito.method(APIUtil.class, "getCommentsManager")).toReturn(this.commentsManager); + Response response = this.commentManagementAPI.updateComment(comment, 1); + Assert.assertNotNull(response, "The response object is null."); + Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(), + "The response status should be 200."); + } + @Test public void testUpdateNullComment() throws Exception { + Comment comment=null; + PowerMockito.stub(PowerMockito.method(APIUtil.class, "getCommentsManager")).toReturn(this.commentsManager); + Response response = this.commentManagementAPI.updateComment(comment, 1); + Assert.assertNotNull(response, "The response object is null."); + Assert.assertEquals(response.getStatus(), Response.Status.BAD_REQUEST.getStatusCode(), + "The response status should be 400."); + } + @Test public void testUpdateCommentWhenNullCommentId() throws Exception { + Comment comment = CommentMgtTestHelper.getDummyComment("a", "a"); + PowerMockito.stub(PowerMockito.method(APIUtil.class, "getCommentsManager")).toReturn(this.commentsManager); + Response response = this.commentManagementAPI.updateComment(comment, 0); + Assert.assertNotNull(response, "The response object is null."); + Assert.assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode(), + "The response status should be 404."); + } + + @Test public void testGetStars() throws Exception { + PowerMockito.stub(PowerMockito.method(APIUtil.class, "getCommentsManager")).toReturn(this.commentsManager); + Response response = this.commentManagementAPI.getStars("a"); + Assert.assertNotNull(response, "The response object is null."); + Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(), + "The response status should be 200."); + Mockito.reset(commentsManager); + } + + @Test public void testGetRatedUser() throws Exception { + PowerMockito.stub(PowerMockito.method(APIUtil.class, "getCommentsManager")).toReturn(this.commentsManager); + Response response = this.commentManagementAPI.getRatedUser("a"); + Assert.assertNotNull(response, "The response object is null."); + Assert.assertEquals(response.getStatus(), Response.Status.OK.getStatusCode(), + "The response status should be 200."); + Mockito.reset(commentsManager); + } + + @Test public void testUpdateStars() throws Exception { + PowerMockito.stub(PowerMockito.method(APIUtil.class, "getCommentsManager")).toReturn(this.commentsManager); + Response response = this.commentManagementAPI.updateStars(3,"a"); + Assert.assertNotNull(response, "The response object is null."); + Assert.assertEquals(response.getStatus(), Response.Status.CREATED.getStatusCode(), + "The response status should be 200."); + Mockito.reset(commentsManager); + } + + @Test public void testUpdateInvalideStars() throws Exception { + PowerMockito.stub(PowerMockito.method(APIUtil.class, "getCommentsManager")).toReturn(this.commentsManager); + Response response = this.commentManagementAPI.updateStars(0,"a"); + Assert.assertNotNull(response, "The response object is null."); + Assert.assertEquals(response.getStatus(), Response.Status.BAD_REQUEST.getStatusCode(), + "The response status should be 400."); + Mockito.reset(commentsManager); + } + +} \ No newline at end of file