Author: solomax
Date: Tue Dec 22 11:51:48 2015
New Revision: 1721372

URL: http://svn.apache.org/viewvc?rev=1721372&view=rev
Log:
[OPENMEETINGS-1305] login and hash methods are tested

Modified:
    
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
    
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
    
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
    
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
    
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
    
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
    
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 Tue Dec 22 11:51:48 2015
@@ -24,6 +24,8 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.wicket.ajax.json.JSONObject;
+
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class RoomOptionsDTO implements Serializable {
@@ -93,4 +95,26 @@ public class RoomOptionsDTO implements S
        public void setAllowRecording(boolean allowRecording) {
                this.allowRecording = allowRecording;
        }
+
+       private static Long optLong(JSONObject o, String key) {
+               return o.has(key) ? o.getLong(key) : null;
+       }
+       
+       public static RoomOptionsDTO fromString(String s) {
+               JSONObject o = new JSONObject(s);
+               RoomOptionsDTO ro = new RoomOptionsDTO();
+               ro.allowRecording = o.optBoolean("allowRecording", false);
+               ro.allowSameURLMultipleTimes = 
o.optBoolean("allowSameURLMultipleTimes", false);
+               ro.moderator = o.optBoolean("moderator", false);
+               ro.recordingId = optLong(o, "recordingId");
+               ro.roomId = optLong(o, "roomId");
+               ro.showAudioVideoTest = o.optBoolean("showAudioVideoTest", 
false);
+               ro.showNickNameDialog = o.optBoolean("showNickNameDialog", 
false);
+               return ro;
+       }
+       
+       @Override
+       public String toString() {
+               return new JSONObject(this).toString();
+       }
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
 Tue Dec 22 11:51:48 2015
@@ -24,6 +24,8 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.wicket.ajax.json.JSONObject;
+
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ExternalUserDTO implements Serializable {
@@ -93,4 +95,22 @@ public class ExternalUserDTO implements
        public void setExternalType(String externalType) {
                this.externalType = externalType;
        }
+       
+       public static ExternalUserDTO fromString(String s) {
+               JSONObject o = new JSONObject(s);
+               ExternalUserDTO u = new ExternalUserDTO();
+               u.email = o.optString("email", null);
+               u.externalId = o.optString("externalId", null);
+               u.externalType = o.optString("externalType", null);
+               u.firstname = o.optString("firstname", null);
+               u.lastname = o.optString("lastname", null);
+               u.login = o.optString("login", null);
+               u.profilePictureUrl = o.optString("profilePictureUrl", null);
+               return u;
+       }
+       
+       @Override
+       public String toString() {
+               return new JSONObject(this).toString();
+       }
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
 Tue Dec 22 11:51:48 2015
@@ -79,6 +79,8 @@ public class GroupUser implements IDataP
        @Element(data = true, required = false)
        private boolean moderator;
        
+       public GroupUser() {}
+       
        public GroupUser(Group group) {
                this.group = group;
        }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
 Tue Dec 22 11:51:48 2015
@@ -18,10 +18,17 @@
  */
 package org.apache.openmeetings.test.webservice;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
+import javax.ws.rs.core.Form;
+import javax.ws.rs.core.Response;
+
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
+import org.apache.openmeetings.db.dto.room.RoomOptionsDTO;
+import org.apache.openmeetings.db.dto.user.ExternalUserDTO;
 import org.apache.openmeetings.test.AbstractJUnitDefaults;
 import org.junit.Test;
 
@@ -36,6 +43,31 @@ public class UserServiceTest extends Abs
        @Test
        public void loginTest() {
                ServiceResult r = 
getClient(USER_SERVICE_URL).path("/login").query("user", 
username).query("pass", userpass).get(ServiceResult.class);
-               assertNotNull(r);
+               assertNotNull("Valid ServiceResult should be returned", r);
+               assertEquals("Login should be successful", r.getType(), 
Type.SUCCESS.name());
+       }
+
+       @Test
+       public void hashTest() {
+               ServiceResult r = 
getClient(USER_SERVICE_URL).path("/login").query("user", 
username).query("pass", userpass).get(ServiceResult.class);
+               assertEquals("Login should be successful", r.getType(), 
Type.SUCCESS.name());
+               ExternalUserDTO user = new ExternalUserDTO();
+               user.setExternalId("1");
+               user.setExternalType("OmJunitTests");
+               user.setEmail("[email protected]");
+               user.setFirstname("First Name 1");
+               user.setLastname("Last Name 1");
+               user.setLogin("login1");
+               RoomOptionsDTO options = new RoomOptionsDTO();
+               options.setRoomId(5L);
+               options.setModerator(true);
+               Response resp = getClient(USER_SERVICE_URL)
+                               .path("/hash")
+                               .query("sid", r.getMessage())
+                               .form(new Form().param("user", 
user.toString()).param("options", options.toString()));
+               assertNotNull("Valid ServiceResult should be returned", resp);
+               assertEquals("Call should be successful", 
Response.Status.OK.getStatusCode(), resp.getStatus());
+               ServiceResult r1 = resp.readEntity(ServiceResult.class);
+               assertEquals("OM Call should be successful", r1.getType(), 
Type.SUCCESS.name());
        }
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 Tue Dec 22 11:51:48 2015
@@ -26,6 +26,7 @@ import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.jws.WebService;
 import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
@@ -292,8 +293,8 @@ public class UserWebService {
        @Path("/hash")
        public ServiceResult getRoomHash(
                        @WebParam(name="sid") @QueryParam("sid") String sid
-                       , @WebParam(name="user") @QueryParam("user") 
ExternalUserDTO user
-                       , @WebParam(name="options") @QueryParam("options") 
RoomOptionsDTO options
+                       , @WebParam(name="user") @FormParam("user") 
ExternalUserDTO user
+                       , @WebParam(name="options") @FormParam("options") 
RoomOptionsDTO options
                        ) throws ServiceException
        {
                try {
@@ -328,7 +329,7 @@ public class UserWebService {
                                return new ServiceResult(-26L, "Insufficient 
permissins", Type.ERROR);
                        }
                } catch (Exception err) {
-                       log.error("setUserObjectWithAndGenerateRoomHash", err);
+                       log.error("getRoomHash", err);
                        throw new ServiceException(err.getMessage());
                }
                return new ServiceResult(-1L, "Unknown error", Type.ERROR);

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 Tue Dec 22 11:51:48 2015
@@ -24,6 +24,8 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.wicket.ajax.json.JSONObject;
+
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class RoomOptionsDTO implements Serializable {
@@ -93,4 +95,26 @@ public class RoomOptionsDTO implements S
        public void setAllowRecording(boolean allowRecording) {
                this.allowRecording = allowRecording;
        }
+
+       private static Long optLong(JSONObject o, String key) {
+               return o.has(key) ? o.getLong(key) : null;
+       }
+       
+       public static RoomOptionsDTO fromString(String s) {
+               JSONObject o = new JSONObject(s);
+               RoomOptionsDTO ro = new RoomOptionsDTO();
+               ro.allowRecording = o.optBoolean("allowRecording", false);
+               ro.allowSameURLMultipleTimes = 
o.optBoolean("allowSameURLMultipleTimes", false);
+               ro.moderator = o.optBoolean("moderator", false);
+               ro.recordingId = optLong(o, "recordingId");
+               ro.roomId = optLong(o, "roomId");
+               ro.showAudioVideoTest = o.optBoolean("showAudioVideoTest", 
false);
+               ro.showNickNameDialog = o.optBoolean("showNickNameDialog", 
false);
+               return ro;
+       }
+       
+       @Override
+       public String toString() {
+               return new JSONObject(this).toString();
+       }
 }

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
 Tue Dec 22 11:51:48 2015
@@ -24,6 +24,8 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.wicket.ajax.json.JSONObject;
+
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ExternalUserDTO implements Serializable {
@@ -93,4 +95,22 @@ public class ExternalUserDTO implements
        public void setExternalType(String externalType) {
                this.externalType = externalType;
        }
+       
+       public static ExternalUserDTO fromString(String s) {
+               JSONObject o = new JSONObject(s);
+               ExternalUserDTO u = new ExternalUserDTO();
+               u.email = o.optString("email", null);
+               u.externalId = o.optString("externalId", null);
+               u.externalType = o.optString("externalType", null);
+               u.firstname = o.optString("firstname", null);
+               u.lastname = o.optString("lastname", null);
+               u.login = o.optString("login", null);
+               u.profilePictureUrl = o.optString("profilePictureUrl", null);
+               return u;
+       }
+       
+       @Override
+       public String toString() {
+               return new JSONObject(this).toString();
+       }
 }

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
 Tue Dec 22 11:51:48 2015
@@ -79,6 +79,8 @@ public class GroupUser implements IDataP
        @Element(data = true, required = false)
        private boolean moderator;
        
+       public GroupUser() {}
+       
        public GroupUser(Group group) {
                this.group = group;
        }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/UserServiceTest.java
 Tue Dec 22 11:51:48 2015
@@ -18,10 +18,17 @@
  */
 package org.apache.openmeetings.test.webservice;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
+import javax.ws.rs.core.Form;
+import javax.ws.rs.core.Response;
+
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
+import org.apache.openmeetings.db.dto.room.RoomOptionsDTO;
+import org.apache.openmeetings.db.dto.user.ExternalUserDTO;
 import org.apache.openmeetings.test.AbstractJUnitDefaults;
 import org.junit.Test;
 
@@ -36,6 +43,31 @@ public class UserServiceTest extends Abs
        @Test
        public void loginTest() {
                ServiceResult r = 
getClient(USER_SERVICE_URL).path("/login").query("user", 
username).query("pass", userpass).get(ServiceResult.class);
-               assertNotNull(r);
+               assertNotNull("Valid ServiceResult should be returned", r);
+               assertEquals("Login should be successful", r.getType(), 
Type.SUCCESS.name());
+       }
+
+       @Test
+       public void hashTest() {
+               ServiceResult r = 
getClient(USER_SERVICE_URL).path("/login").query("user", 
username).query("pass", userpass).get(ServiceResult.class);
+               assertEquals("Login should be successful", r.getType(), 
Type.SUCCESS.name());
+               ExternalUserDTO user = new ExternalUserDTO();
+               user.setExternalId("1");
+               user.setExternalType("OmJunitTests");
+               user.setEmail("[email protected]");
+               user.setFirstname("First Name 1");
+               user.setLastname("Last Name 1");
+               user.setLogin("login1");
+               RoomOptionsDTO options = new RoomOptionsDTO();
+               options.setRoomId(5L);
+               options.setModerator(true);
+               Response resp = getClient(USER_SERVICE_URL)
+                               .path("/hash")
+                               .query("sid", r.getMessage())
+                               .form(new Form().param("user", 
user.toString()).param("options", options.toString()));
+               assertNotNull("Valid ServiceResult should be returned", resp);
+               assertEquals("Call should be successful", 
Response.Status.OK.getStatusCode(), resp.getStatus());
+               ServiceResult r1 = resp.readEntity(ServiceResult.class);
+               assertEquals("OM Call should be successful", r1.getType(), 
Type.SUCCESS.name());
        }
 }

Modified: 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1721372&r1=1721371&r2=1721372&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 Tue Dec 22 11:51:48 2015
@@ -26,6 +26,7 @@ import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.jws.WebService;
 import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
@@ -292,8 +293,8 @@ public class UserWebService {
        @Path("/hash")
        public ServiceResult getRoomHash(
                        @WebParam(name="sid") @QueryParam("sid") String sid
-                       , @WebParam(name="user") @QueryParam("user") 
ExternalUserDTO user
-                       , @WebParam(name="options") @QueryParam("options") 
RoomOptionsDTO options
+                       , @WebParam(name="user") @FormParam("user") 
ExternalUserDTO user
+                       , @WebParam(name="options") @FormParam("options") 
RoomOptionsDTO options
                        ) throws ServiceException
        {
                try {
@@ -328,7 +329,7 @@ public class UserWebService {
                                return new ServiceResult(-26L, "Insufficient 
permissins", Type.ERROR);
                        }
                } catch (Exception err) {
-                       log.error("setUserObjectWithAndGenerateRoomHash", err);
+                       log.error("getRoomHash", err);
                        throw new ServiceException(err.getMessage());
                }
                return new ServiceResult(-1L, "Unknown error", Type.ERROR);


Reply via email to