Repository: openmeetings
Updated Branches:
  refs/heads/master cec150c81 -> 3b16ec473


[OPENMEETINGS-1714] basic tests for appointments


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

Branch: refs/heads/master
Commit: 3b16ec4732429652f1ea85fe8df4679f906dffe6
Parents: cec150c
Author: Maxim Solodovnik <[email protected]>
Authored: Sat Oct 14 20:40:43 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Sat Oct 14 20:40:43 2017 +0700

----------------------------------------------------------------------
 .../db/dao/calendar/AppointmentDao.java         |  2 +-
 .../web/user/calendar/CalendarPanel.java        |  6 +-
 .../openmeetings/AbstractWicketTester.java      |  2 +
 .../apache/openmeetings/web/TestCalendar.java   | 79 ++++++++++++++++++++
 .../apache/openmeetings/web/TestMainAreas.java  |  6 +-
 .../apache/openmeetings/web/TestMainMenu.java   |  4 +-
 .../webservice/CalendarWebService.java          |  2 +-
 7 files changed, 89 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
index 240f621..db1e462 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
@@ -188,7 +188,7 @@ public class AppointmentDao {
                return list == null || list.isEmpty() ? null : list.get(0);
        }
 
-       public List<Appointment> searchAppointmentsByTitle(Long userId, String 
title) {
+       public List<Appointment> searchByTitle(Long userId, String title) {
                return em.createNamedQuery("getAppointmentsByTitle", 
Appointment.class)
                                .setParameter("title", 
title).setParameter("userId", userId).getResultList();
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
index 7dd9b8d..7afe918 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
@@ -227,7 +227,6 @@ public class CalendarPanel extends UserBasePanel {
                                if (a.getCalendar() != null) {
                                        updatedeleteAppointment(target, 
CalendarDialog.DIALOG_TYPE.UPDATE_APPOINTMENT, a);
                                }
-                               //TODO add feedback info
                        }
 
                        @Override
@@ -247,7 +246,6 @@ public class CalendarPanel extends UserBasePanel {
                                if (a.getCalendar() != null) {
                                        updatedeleteAppointment(target, 
CalendarDialog.DIALOG_TYPE.UPDATE_APPOINTMENT, a);
                                }
-                               //TODO add feedback info
                        }
                };
 
@@ -270,7 +268,6 @@ public class CalendarPanel extends UserBasePanel {
 
                        @Override
                        protected List<OmCalendar> load() {
-                               // TODO: better way to do this?
                                AppointmentManager manager = 
getAppointmentManager();
                                List<OmCalendar> cals = new 
ArrayList<>(manager.getCalendars(getUserId()));
                                
cals.addAll(manager.getGoogleCalendars(getUserId()));
@@ -368,7 +365,6 @@ public class CalendarPanel extends UserBasePanel {
        }
 
        //Adds a new Event Source to the Calendar
-       //TODO: The Ajax Refresh does not work.
        public void populateGoogleCalendar(OmCalendar gcal, 
IPartialPageRequestHandler target) {
                calendar.addSource(new GoogleCalendar(gcal.getHref(), 
gcal.getToken()));
                refresh(target);
@@ -405,7 +401,7 @@ public class CalendarPanel extends UserBasePanel {
 
        private static Appointment getDefault() {
                Appointment a = new Appointment();
-               a.setReminder(Reminder.ical); //TODO: Make configurable
+               a.setReminder(Reminder.ical);
                a.setOwner(getBean(UserDao.class).get(getUserId()));
                a.setTitle(Application.getString("1444"));
                log.debug(" -- getDefault -- Current model " + a);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
index 4fbf3da..0f7211f 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractWicketTester.java
@@ -58,6 +58,8 @@ import 
com.googlecode.wicket.jquery.ui.widget.dialog.ButtonAjaxBehavior;
 
 public class AbstractWicketTester extends AbstractJUnitDefaults {
        private static final Logger log = getLogger(AbstractWicketTester.class, 
getWebAppRootKey());
+       public static final String PATH_CHILD = 
"main-container:main:contents:child";
+       public static final String PATH_MENU = 
"main-container:main:topControls:menu:menu";
        protected WicketTester tester;
 
        public static WicketTester getWicketTester() {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
new file mode 100644
index 0000000..c568232
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
@@ -0,0 +1,79 @@
+/*
+ * 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.web;
+
+import static org.junit.Assert.assertEquals;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.openmeetings.AbstractWicketTester;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.OmException;
+import org.apache.openmeetings.web.user.calendar.CalendarPanel;
+import org.apache.wicket.behavior.AbstractAjaxBehavior;
+import org.apache.wicket.util.tester.FormTester;
+import org.junit.Assert;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.googlecode.wicket.jquery.ui.calendar.CalendarView;
+import com.googlecode.wicket.jquery.ui.widget.dialog.ButtonAjaxBehavior;
+import com.googlecode.wicket.jquery.ui.widget.menu.Menu;
+
+public class TestCalendar extends AbstractWicketTester {
+       private static final String PATH_APPOINTMENT_DLG = 
String.format("%s:appointment", PATH_CHILD);
+       private static final String PATH_APPOINTMENT_DLG_FRM = 
String.format("%s:appForm", PATH_APPOINTMENT_DLG);
+       @Autowired
+       private AppointmentDao appointmentDao;
+
+       @Test
+       public void testEventCreate() throws OmException {
+               testArea(regularUsername, p -> {
+                       Menu menu = (Menu)p.get(PATH_MENU);
+                       Assert.assertNotNull(menu);
+                       tester.getRequest().setParameter("hash", 
menu.getItemList().get(0).getItems().get(1).getId());
+                       
tester.executeBehavior((AbstractAjaxBehavior)menu.getBehaviorById(0));
+
+                       tester.assertComponent(PATH_CHILD, CalendarPanel.class);
+                       CalendarPanel cal = (CalendarPanel)p.get(PATH_CHILD);
+                       tester.executeAllTimerBehaviors(cal);
+
+                       User u = userDao.getByLogin(regularUsername, 
User.Type.user, null);
+                       //test create month
+                       tester.getRequest().setParameter("allDay", 
String.valueOf(false));
+                       tester.getRequest().setParameter("startDate", 
LocalDateTime.of(2017, 11, 13, 13, 13).toString());
+                       tester.getRequest().setParameter("endDate", 
LocalDateTime.of(2017, 11, 13, 13, 13).toString());
+                       tester.getRequest().setParameter("viewName", 
CalendarView.month.name());
+                       
tester.executeBehavior((AbstractAjaxBehavior)cal.get("form:calendar").getBehaviorById(0));
 //select-event
+                       FormTester appTester = 
tester.newFormTester(PATH_APPOINTMENT_DLG_FRM);
+                       String title = String.format("title%s", 
UUID.randomUUID());
+                       appTester.setValue("title", title);
+                       ButtonAjaxBehavior save = 
getButtonBehavior(PATH_APPOINTMENT_DLG, "save");
+                       tester.executeBehavior(save);
+
+                       List<Appointment> appts = 
appointmentDao.searchByTitle(u.getId(), title);
+                       assertEquals("Appointment should be created", 1, 
appts.size());
+                       assertEquals("Appointment should be created", title, 
appts.get(0).getTitle());
+               });
+       }
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
index 146a61b..7be7c81 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
@@ -79,7 +79,7 @@ public class TestMainAreas extends AbstractWicketTester {
        @Test
        public void testDashboard() throws OmException {
                testArea(regularUsername, p -> {
-                       
tester.assertComponent("main-container:main:contents:child", 
OmDashboardPanel.class);
+                       tester.assertComponent(PATH_CHILD, 
OmDashboardPanel.class);
                });
        }
 
@@ -93,7 +93,7 @@ public class TestMainAreas extends AbstractWicketTester {
                        testArea(user, p -> {
                                tester.getRequest().setParameter(area.name(), 
type);
                                
tester.executeBehavior((AbstractAjaxBehavior)p.getBehaviorById(1));
-                               
tester.assertComponent("main-container:main:contents:child", clazz);
+                               tester.assertComponent(PATH_CHILD, clazz);
                                if (consumer != null) {
                                        consumer.accept(p);
                                }
@@ -271,7 +271,7 @@ public class TestMainAreas extends AbstractWicketTester {
 
        private void testRoom(Long id) throws OmException {
                checkArea(AreaKeys.room, String.valueOf(id), RoomPanel.class, p 
-> {
-                       RoomPanel rp = 
(RoomPanel)p.get("main-container:main:contents:child");
+                       RoomPanel rp = (RoomPanel)p.get(PATH_CHILD);
                        
tester.executeBehavior((AbstractAjaxBehavior)rp.getBehaviorById(0)); //room 
enter
                        AbstractWbPanel wb = 
(AbstractWbPanel)rp.get("roomContainer:wb-area:whiteboard");
                        
tester.executeBehavior((AbstractAjaxBehavior)wb.getBehaviorById(0)); //wb load

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java
index e34e53c..34f181b 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java
@@ -44,12 +44,12 @@ import com.googlecode.wicket.jquery.ui.widget.menu.Menu;
 public class TestMainMenu extends AbstractWicketTester {
        private void checkMenuItem(int idx1, int idx2, Class<? extends 
BasePanel> clazz) throws OmException {
                testArea(adminUsername, p -> {
-                       Menu menu = 
(Menu)p.get("main-container:main:topControls:menu:menu");
+                       Menu menu = (Menu)p.get(PATH_MENU);
                        Assert.assertNotNull(menu);
                        tester.getRequest().setParameter("hash", 
menu.getItemList().get(idx1).getItems().get(idx2).getId());
                        
tester.executeBehavior((AbstractAjaxBehavior)menu.getBehaviorById(0));
 
-                       
tester.assertComponent("main-container:main:contents:child", clazz);
+                       tester.assertComponent(PATH_CHILD, clazz);
                });
        }
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3b16ec47/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
index 39a5cbe..9bcfbac 100644
--- 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
+++ 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
@@ -198,7 +198,7 @@ public class CalendarWebService extends BaseWebService {
        @GET
        @Path("/title/{title}")
        public List<AppointmentDTO> getByTitle(@QueryParam("sid") 
@WebParam(name="sid") String sid, @PathParam("title") @WebParam(name="title") 
String title) {
-               return performCall(sid, User.Right.Room, sd -> 
AppointmentDTO.list(getDao().searchAppointmentsByTitle(sd.getUserId(), title)));
+               return performCall(sid, User.Right.Room, sd -> 
AppointmentDTO.list(getDao().searchByTitle(sd.getUserId(), title)));
        }
 
        /**

Reply via email to