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); }
