Repository: openmeetings
Updated Branches:
  refs/heads/3.3.x b6aedde8c -> 280247cb7


[OPENMEETINGS-1668] getExternal method of room service is fixed


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/280247cb
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/280247cb
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/280247cb

Branch: refs/heads/3.3.x
Commit: 280247cb7613ac048b9189adf4d762c3b3396505
Parents: b6aedde
Author: Maxim Solodovnik <[email protected]>
Authored: Tue Jul 11 18:56:51 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Tue Jul 11 18:56:51 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/db/dao/room/RoomDao.java       |  2 +-
 .../test/webservice/AbstractWebServiceTest.java |  1 +
 .../test/webservice/TestRecordingService.java   |  5 +-
 .../test/webservice/TestRoomService.java        | 59 ++++++++++++++++++++
 .../openmeetings/webservice/RoomWebService.java | 14 +++--
 5 files changed, 73 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/280247cb/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
index 4bb9ad8..b82925d 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
@@ -274,7 +274,7 @@ public class RoomDao implements 
IGroupAdminDataProviderDao<Room> {
                }
        }
 
-       public Room getExternal(Type type, String externalType, Long 
externalId) {
+       public Room getExternal(Type type, String externalType, String 
externalId) {
                log.debug("getExternal : " + externalId + " - " + externalType 
+ " - " + type);
                List<Room> ll = em.createNamedQuery("getRoomByExternalId", 
Room.class)
                                .setParameter("externalId", externalId)

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/280247cb/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
index 047ac58..5d90e04 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
@@ -51,6 +51,7 @@ public class AbstractWebServiceTest extends 
AbstractJUnitDefaults {
        public final static String BASE_SERVICES_URL = "http://localhost:8080"; 
+ CONTEXT + "/services";
        public final static String USER_SERVICE_URL = BASE_SERVICES_URL + 
"/user";
        public final static String INFO_SERVICE_URL = BASE_SERVICES_URL + 
"/info";
+       public final static String UNIT_TEST_EXT_TYPE = "om_unit_tests";
        public final static long TIMEOUT = 5 * 60 * 1000;
        protected WicketTester tester;
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/280247cb/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
index da11098..e2cab71 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
@@ -35,14 +35,13 @@ import 
org.springframework.beans.factory.annotation.Autowired;
 
 public class TestRecordingService extends AbstractWebServiceTest {
        public final static String RECORD_SERVICE_URL = BASE_SERVICES_URL + 
"/record";
-       private final static String UNIT_TEST_GROUP = "om_unit_tests";
        @Autowired
        private RecordingDao recordingDao;
 
        private User getExternalUser() throws Exception {
                String uuid = UUID.randomUUID().toString();
                User u = getUser(uuid);
-               u.setExternalType(UNIT_TEST_GROUP);
+               u.setExternalType(UNIT_TEST_EXT_TYPE);
                u.setExternalId(uuid);
                webCreateUser(u);
                return u;
@@ -57,7 +56,7 @@ public class TestRecordingService extends 
AbstractWebServiceTest {
                r.setRoomId(5L);
                r = recordingDao.update(r);
                ServiceResult sr = login();
-               Collection<? extends RecordingDTO> recs = 
getClient(RECORD_SERVICE_URL).path("/" + UNIT_TEST_GROUP).query("sid", 
sr.getMessage())
+               Collection<? extends RecordingDTO> recs = 
getClient(RECORD_SERVICE_URL).path("/" + UNIT_TEST_EXT_TYPE).query("sid", 
sr.getMessage())
                                .getCollection(RecordingDTO.class);
                assertNotNull("Valid collection should be returned", recs);
                assertFalse("Collection of the recordings should not be empty", 
recs.isEmpty());

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/280247cb/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRoomService.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRoomService.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRoomService.java
new file mode 100644
index 0000000..7d91c09
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRoomService.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.webservice;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.UUID;
+
+import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.dto.room.RoomDTO;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.junit.Test;
+
+public class TestRoomService extends AbstractWebServiceTest {
+       public final static String ROOM_SERVICE_URL = BASE_SERVICES_URL + 
"/room";
+
+       @Test
+       public void testExternal() {
+               ServiceResult sr = login();
+               String extId = UUID.randomUUID().toString();
+               Room.Type type = Room.Type.restricted;
+               String name = "Unit Test Ext Room";
+               String comment = "Unit Test Ext Room Comments";
+               long num = 666L;
+               RoomDTO r = new RoomDTO();
+               r.setType(type);
+               r.setName(name);
+               r.setComment(comment);
+               r.setNumberOfPartizipants(num);
+               RoomDTO room = 
getClient(ROOM_SERVICE_URL).path(String.format("/%s/%s/%s", type, 
UNIT_TEST_EXT_TYPE, extId))
+                               .query("sid", sr.getMessage())
+                               .query("room", r.toString())
+                               .get(RoomDTO.class);
+               assertNotNull("Valid room should be returned", room);
+               assertNotNull("Room ID should be not empty", room.getId());
+
+               RoomDTO room1 = 
getClient(ROOM_SERVICE_URL).path(String.format("/%s/%s/%s", 
Room.Type.restricted, UNIT_TEST_EXT_TYPE, extId)).query("sid", sr.getMessage())
+                               .get(RoomDTO.class);
+               assertNotNull("Valid room should be returned", room1);
+               assertEquals("Same Room should be returned", room.getId(), 
room1.getId());
+       }
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/280247cb/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
index c45ee5a..29e1174 100644
--- 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
+++ 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
@@ -152,7 +152,7 @@ public class RoomWebService extends BaseWebService {
        public RoomDTO getExternal(@WebParam(name="sid") @QueryParam("sid") 
String sid
                        , @PathParam("type") @WebParam(name="type") String type
                        , @PathParam("externaltype") 
@WebParam(name="externaltype") String externalType
-                       , @PathParam("externalid") @WebParam(name="externalid") 
Long externalId
+                       , @PathParam("externalid") @WebParam(name="externalid") 
String externalId
                        , @WebParam(name="room") @QueryParam("room") RoomDTO 
room) throws ServiceException {
                try {
                        Sessiondata sd = check(sid);
@@ -161,9 +161,15 @@ public class RoomWebService extends BaseWebService {
                                RoomDao roomDao = getRoomDao();
                                Room r = 
roomDao.getExternal(Room.Type.valueOf(type), externalType, externalId);
                                if (r == null) {
-                                       r = room.get();
-                                       r = roomDao.update(r, userId);
-                                       return new RoomDTO(r);
+                                       if (room == null) {
+                                               return null;
+                                       } else {
+                                               r = room.get();
+                                               r.setExternalType(externalType);
+                                               r.setExternalId(externalId);
+                                               r = roomDao.update(r, userId);
+                                               return new RoomDTO(r);
+                                       }
                                } else {
                                        return new RoomDTO(r);
                                }

Reply via email to