You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/11/08 13:09:25 UTC
svn commit: r1768685 - in /openmeetings/application:
branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/
branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/
branches/3.1.x/openmeetings-web/...
Author: solomax
Date: Tue Nov 8 13:09:24 2016
New Revision: 1768685
URL: http://svn.apache.org/viewvc?rev=1768685&view=rev
Log:
[OPENMEETINGS-1502] NPE while ldap user check should be fixed
Modified:
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java Tue Nov 8 13:09:24 2016
@@ -375,6 +375,7 @@ public class UserDao implements IDataPro
.setParameter("type", type)
.setParameter("domainId", domainId == null ? Long.valueOf(0) : domainId)
.getSingleResult();
+ u.getGroupUsers().size(); // this will initiate lazy collection
} catch (NoResultException ex) {
}
return u;
Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java Tue Nov 8 13:09:24 2016
@@ -249,7 +249,7 @@ public class User implements IDataProvid
private Address address;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
- @JoinColumn(name = "user_id", insertable = true, updatable = true)
+ @JoinColumn(name = "user_id", insertable = true, updatable = true, nullable = false)
@ElementList(name = "organisations", required = false)
@ElementDependent
private List<GroupUser> groupUsers = new ArrayList<>();
@@ -482,9 +482,6 @@ public class User implements IDataProvid
}
public List<GroupUser> getGroupUsers() {
- if (groupUsers == null) {
- groupUsers = new ArrayList<>();
- }
return groupUsers;
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml Tue Nov 8 13:09:24 2016
@@ -68,13 +68,13 @@
<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp2.BasicDataSource" />
<property name="openjpa.ConnectionProperties"
value="DriverClassName=org.apache.derby.jdbc.EmbeddedDriver,
- Url=jdbc:derby:openmeetings;create=true,
- create=true,
- MaxActive=100,
- MaxWait=10000,
- TestOnBorrow=true,
- Username=user,
- Password=secret" />
+ Url=jdbc:derby:openmeetings;create=true,
+ create=true,
+ MaxActive=100,
+ MaxWait=10000,
+ TestOnBorrow=true,
+ Username=user,
+ Password=secret" />
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />
<property name="openjpa.DataCache" value="true" />
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java Tue Nov 8 13:09:24 2016
@@ -23,12 +23,14 @@ import static org.apache.openmeetings.ut
import static org.junit.Assert.assertNotNull;
import java.util.Date;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.Address;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.installation.ImportInitvalues;
import org.apache.openmeetings.installation.InstallationConfig;
@@ -138,19 +140,34 @@ public abstract class AbstractJUnitDefau
return ap;
}
- public User getUser(int rnd) throws Exception {
+ public User getUser() throws Exception {
+ return getUser(UUID.randomUUID().toString());
+ }
+
+ protected String getRandomPass(String uuid) {
+ return "pass" + uuid;
+ }
+
+ public User getUser(String uuid) throws Exception {
User u = new User();
// add user
- u.setFirstname("firstname" + rnd);
- u.setLastname("lastname" + rnd);
- u.setLogin("login" + rnd);
- u.updatePassword(cfgDao, "pass" + rnd);
+ u.setFirstname("firstname" + uuid);
+ u.setLastname("lastname" + uuid);
+ u.setLogin("login" + uuid);
+ u.setAddress(new Address());
+ u.getAddress().setEmail(String.format("email%s@local", uuid));
+ u.setRights(UserDao.getDefaultRights());
+ u.updatePassword(cfgDao, getRandomPass(uuid));
u.setLanguageId(1L);
return u;
}
- public User createUser(int rnd) throws Exception {
- User u = getUser(rnd);
+ public User createUser() throws Exception {
+ return createUser(UUID.randomUUID().toString());
+ }
+
+ public User createUser(String uuid) throws Exception {
+ User u = getUser(uuid);
u = userDao.update(u, null);
assertNotNull("Can't add user", u);
return u;
@@ -166,8 +183,12 @@ public abstract class AbstractJUnitDefau
importInitvalues.loadAll(cfg, false);
}
- public User createUserContact(int rnd, Long ownerId) {
- User user = userDao.getContact("email" + rnd, "firstname" + rnd, "lastname" + rnd, ownerId);
+ public User createUserContact(Long ownerId) {
+ return createUserContact(UUID.randomUUID().toString(), ownerId);
+ }
+
+ public User createUserContact(String uuid, Long ownerId) {
+ User user = userDao.getContact("email" + uuid, "firstname" + uuid, "lastname" + uuid, ownerId);
user = userDao.update(user, ownerId);
assertNotNull("Cann't add user", user);
return user;
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java Tue Nov 8 13:09:24 2016
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertEqu
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Random;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
@@ -45,7 +44,6 @@ public class TestDatabaseStructureGetApp
log.debug("Test started");
Long userId = 1L;
- Random rnd = new Random();
Calendar now = Calendar.getInstance();
Calendar rangeStart = Calendar.getInstance();
rangeStart.setTime(now.getTime());
@@ -64,7 +62,7 @@ public class TestDatabaseStructureGetApp
a2.setTitle("AppointmentByRange_a2");
a2.setMeetingMembers(new ArrayList<MeetingMember>());
MeetingMember mm1 = new MeetingMember();
- mm1.setUser(createUserContact(rnd.nextInt(), userId));
+ mm1.setUser(createUserContact(userId));
mm1.setAppointment(a2);
a2.getMeetingMembers().add(mm1);
@@ -72,11 +70,11 @@ public class TestDatabaseStructureGetApp
a3.setTitle("AppointmentByRange_a3");
a3.setMeetingMembers(new ArrayList<MeetingMember>());
MeetingMember mm2 = new MeetingMember();
- mm2.setUser(createUserContact(rnd.nextInt(), userId));
+ mm2.setUser(createUserContact(userId));
mm2.setAppointment(a3);
a3.getMeetingMembers().add(mm2);
MeetingMember mm3 = new MeetingMember();
- mm3.setUser(createUserContact(rnd.nextInt(), userId));
+ mm3.setUser(createUserContact(userId));
mm3.setAppointment(a3);
a3.getMeetingMembers().add(mm3);
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java Tue Nov 8 13:09:24 2016
@@ -22,12 +22,12 @@ import static org.apache.openmeetings.ut
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.net.SocketException;
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Map;
+import java.util.UUID;
import java.util.Vector;
import javax.activation.DataHandler;
@@ -65,7 +65,6 @@ import net.fortuna.ical4j.model.property
import net.fortuna.ical4j.model.property.ProdId;
import net.fortuna.ical4j.model.property.Uid;
import net.fortuna.ical4j.model.property.Version;
-import net.fortuna.ical4j.util.UidGenerator;
public class TestSendIcalMessage extends AbstractJUnitDefaults {
private static final Logger log = Red5LoggerFactory.getLogger(TestSendIcalMessage.class, webAppRootKey);
@@ -116,16 +115,8 @@ public class TestSendIcalMessage extends
meeting.getProperties().add(tz.getTimeZoneId());
// generate unique identifier..
- UidGenerator ug;
- try {
- ug = new UidGenerator("uidGen");
-
- Uid uid = ug.generateUid();
- meeting.getProperties().add(uid);
- } catch (SocketException e) {
- // TODO Auto-generated catch block
- log.error("Error", e);
- }
+ Uid uid = new Uid(UUID.randomUUID().toString());
+ meeting.getProperties().add(uid);
// add attendees..
Attendee dev1 = new Attendee(URI.create("mailto:dev1@mycompany.com"));
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java Tue Nov 8 13:09:24 2016
@@ -25,7 +25,7 @@ import static org.junit.Assert.assertNul
import static org.junit.Assert.assertTrue;
import java.util.List;
-import java.util.Random;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.user.GroupDao;
import org.apache.openmeetings.db.dao.user.UserDao;
@@ -40,7 +40,6 @@ public class TestUserContact extends Abs
private UserDao userDao;
@Autowired
private GroupDao groupDao;
- Random random = new Random();
@Test
public void testGetUser() throws Exception {
@@ -49,11 +48,11 @@ public class TestUserContact extends Abs
@Test
public void createUserWithGroup() throws Exception {
- int rnd = random.nextInt();
- User u = getUser(rnd);
+ String uuid = UUID.randomUUID().toString();
+ User u = getUser(uuid);
u.getGroupUsers().add(new GroupUser(groupDao.get(1L), u));
u = userDao.update(u, null);
- assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), "pass" + rnd));
+ assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), getRandomPass(uuid)));
User u1 = userDao.get(u.getId());
assertNotNull("Just created user should not be null", u1);
@@ -62,10 +61,10 @@ public class TestUserContact extends Abs
}
@Test
- public void createUser() throws Exception {
- int rnd = random.nextInt();
- User u = createUser(rnd);
- assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), "pass" + rnd));
+ public void testCreateUser() throws Exception {
+ String uuid = UUID.randomUUID().toString();
+ User u = createUser(uuid);
+ assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), getRandomPass(uuid)));
}
@Test
@@ -76,7 +75,7 @@ public class TestUserContact extends Abs
assertNotNull("User list should not be null ", users);
assertFalse("User list should not be empty ", users.isEmpty());
- User contact = createUserContact(random.nextInt(), getUserId());
+ User contact = createUserContact(getUserId());
String email = contact.getAddress().getEmail();
List<User> l = userDao.get(email, false, 0, 9999);
// check that contact is visible for admin
@@ -91,9 +90,9 @@ public class TestUserContact extends Abs
l = userDao.get(email, false, 0, 9999);
assertTrue("Contact list should be empty after deletion", l.isEmpty());
- User u = createUser(random.nextInt());
- User u1 = createUser(random.nextInt());
- contact = createUserContact(random.nextInt(), u.getId());
+ User u = createUser();
+ User u1 = createUser();
+ contact = createUserContact(u.getId());
email = contact.getAddress().getEmail();
// check that contact is not visible for user that is not owner of this contact
l = userDao.get(email, 0, 9999, null, true, u1.getId());
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java Tue Nov 8 13:09:24 2016
@@ -21,8 +21,6 @@ package org.apache.openmeetings.test.use
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.junit.Assert.assertTrue;
-import java.util.Random;
-
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.test.AbstractWicketTester;
@@ -32,25 +30,24 @@ import org.springframework.beans.factory
public class TestUserCount extends AbstractWicketTester {
@Autowired
private UserDao userDao;
- Random random = new Random();
@Test
public void testCountSearchUsers() throws Exception {
- User u = createUser(random.nextInt());
+ User u = createUser();
assertTrue("Account of search users should be one", userDao.count(u.getFirstname()) == 1);
}
@Test
public void testCountFilteredUsers() throws Exception {
- User u = createUser(random.nextInt());
- User contact = createUserContact(random.nextInt(), u.getId());
+ User u = createUser();
+ User contact = createUserContact(u.getId());
assertTrue("Account of filtered user should be one", userDao.count(contact.getFirstname(), true, u.getId()) == 1);
}
@Test
public void testCountUnfilteredUsers() throws Exception {
- User u = createUser(random.nextInt());
- createUserContact(random.nextInt(), u.getId());
+ User u = createUser();
+ createUserContact(u.getId());
assertTrue("Account of unfiltered should be more then one", userDao.count("firstname", false, getUserId()) > 1);
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java Tue Nov 8 13:09:24 2016
@@ -23,7 +23,7 @@ import static org.junit.Assert.assertTru
import static org.junit.Assert.fail;
import java.util.List;
-import java.util.Random;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.user.GroupDao;
import org.apache.openmeetings.db.dao.user.GroupUserDao;
@@ -33,6 +33,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.test.AbstractJUnitDefaults;
import org.apache.openmeetings.test.selenium.HeavyTests;
+import org.apache.openmeetings.util.OmException;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -44,7 +45,7 @@ public class TestUserGroup extends Abstr
@Autowired
private UserDao userDao;
public static final String GROUP_NAME = "Test Group";
-
+
private User getValidUser() {
for (User u : userDao.getAllBackupUsers()) {
if (!u.isDeleted() && u.getGroupUsers().size() > 0) {
@@ -52,9 +53,9 @@ public class TestUserGroup extends Abstr
}
}
fail("Unable to find valid user");
- return null; //unreachable
+ return null; //unreachable
}
-
+
@Test
public void getUsersByGroupId() {
User u = getValidUser();
@@ -63,14 +64,14 @@ public class TestUserGroup extends Abstr
assertTrue("Default Group should contain at least 1 user: " + ul.size(), ul.size() > 0);
GroupUser ou = groupUserDao.getByGroupAndUser(groupId, u.getId());
- assertNotNull("Unable to found [group, user] pair - [" + groupId + "," + u.getId() + "]", ou);
+ assertNotNull("Unable to find [group, user] pair - [" + groupId + "," + u.getId() + "]", ou);
}
-
+
@Test
public void addGroup() {
- Group o = new Group();
- o.setName(GROUP_NAME);
- Long groupId = groupDao.update(o, null).getId(); //inserted by not checked
+ Group g = new Group();
+ g.setName(GROUP_NAME);
+ Long groupId = groupDao.update(g, null).getId(); //inserted by not checked
assertNotNull("New Group have valid id", groupId);
List<GroupUser> ul = groupUserDao.get(groupId, 0, 9999);
@@ -78,6 +79,38 @@ public class TestUserGroup extends Abstr
}
@Test
+ public void addUserWithoutGroup() throws Exception {
+ String uuid = UUID.randomUUID().toString();
+ User u = getUser(uuid);
+ u = userDao.update(u, null);
+ assertNotNull("User successfully created", u.getId());
+ checkEmptyGroup("dao.get()", userDao.get(u.getId()));
+ try {
+ checkEmptyGroup("dao.login()", userDao.login(u.getAddress().getEmail(), getRandomPass(uuid)));
+ fail("User with no Group is unable to login");
+ } catch (OmException e) {
+ assertTrue("Expected Om Exception", "No Group assigned to user".equals(e.getMessage()));
+ }
+ checkEmptyGroup("dao.getByLogin(user)", userDao.getByLogin(u.getLogin(), u.getType(), u.getDomainId()));
+ }
+
+
+ @Test
+ public void addLdapUserWithoutGroup() throws Exception {
+ User u1 = getUser();
+ u1.setType(User.Type.ldap);
+ u1.setDomainId(1L);
+ u1 = userDao.update(u1, null);
+ checkEmptyGroup("dao.getByLogin(ldap)", userDao.getByLogin(u1.getLogin(), u1.getType(), u1.getDomainId()));
+ }
+
+ private void checkEmptyGroup(String prefix, User u) {
+ assertNotNull(prefix + ":: Created user should be available", u);
+ assertNotNull(prefix + ":: List<GroupUser> for newly created user should not be null", u.getGroupUsers());
+ assertTrue(prefix + ":: List<GroupUser> for newly created user should be empty", u.getGroupUsers().isEmpty());
+ }
+
+ @Test
@HeavyTests
public void add10kUsers() throws Exception {
List<Group> groups = groupDao.get(GROUP_NAME, 0, 1, null);
@@ -89,9 +122,8 @@ public class TestUserGroup extends Abstr
} else {
g = groups.get(0);
}
- Random rnd = new Random();
for (int i = 0; i < 10000; ++i) {
- User u = createUser(rnd.nextInt());
+ User u = createUser();
u.getGroupUsers().add(new GroupUser(g, u));
userDao.update(u, null);
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java Tue Nov 8 13:09:24 2016
@@ -23,7 +23,7 @@ import static org.junit.Assert.assertEqu
import java.io.File;
import java.nio.file.Files;
-import java.util.Random;
+import java.util.UUID;
import org.apache.catalina.LifecycleState;
import org.apache.catalina.startup.Tomcat;
@@ -39,7 +39,6 @@ public class AbstractWebServiceTest exte
public final static String CONTEXT = "/openmeetings";
public final static String BASE_SERVICES_URL = "http://localhost:8080" + CONTEXT + "/services";
public final static String USER_SERVICE_URL = BASE_SERVICES_URL + "/user";
- protected static final Random rnd = new Random();
public static WebClient getClient(String url) {
return WebClient.create(url).accept("application/json").type("application/json");
@@ -56,7 +55,7 @@ public class AbstractWebServiceTest exte
public static void initialize() throws Exception {
tomcat = new Tomcat();
tomcat.setPort(8080);
- File wd = Files.createTempDirectory("om" + rnd.nextInt()).toFile();
+ File wd = Files.createTempDirectory("om" + UUID.randomUUID().toString()).toFile();
tomcat.setBaseDir(wd.getCanonicalPath());
tomcat.getHost().setAppBase(wd.getCanonicalPath());
tomcat.getHost().setAutoDeploy(true);
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java Tue Nov 8 13:09:24 2016
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNot
import static org.junit.Assert.assertTrue;
import java.util.Collection;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.dao.user.UserDao;
@@ -42,9 +43,10 @@ public class TestRecordingService extend
private UserDao userDao;
private User getExternalUser() throws Exception {
- User u = getUser(rnd.nextInt());
+ String uuid = UUID.randomUUID().toString();
+ User u = getUser(uuid);
u.setExternalType(UNIT_TEST_GROUP);
- u.setExternalId("" + rnd.nextInt());
+ u.setExternalId(uuid);
u = userDao.update(u, null);
return u;
}
Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java Tue Nov 8 13:09:24 2016
@@ -375,6 +375,7 @@ public class UserDao implements IDataPro
.setParameter("type", type)
.setParameter("domainId", domainId == null ? Long.valueOf(0) : domainId)
.getSingleResult();
+ u.getGroupUsers().size(); // this will initiate lazy collection
} catch (NoResultException ex) {
}
return u;
Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java Tue Nov 8 13:09:24 2016
@@ -249,7 +249,7 @@ public class User implements IDataProvid
private Address address;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
- @JoinColumn(name = "user_id", insertable = true, updatable = true)
+ @JoinColumn(name = "user_id", insertable = true, updatable = true, nullable = false)
@ElementList(name = "organisations", required = false)
@ElementDependent
private List<GroupUser> groupUsers = new ArrayList<>();
@@ -481,9 +481,6 @@ public class User implements IDataProvid
}
public List<GroupUser> getGroupUsers() {
- if (groupUsers == null) {
- groupUsers = new ArrayList<>();
- }
return groupUsers;
}
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml Tue Nov 8 13:09:24 2016
@@ -69,13 +69,13 @@
<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp2.BasicDataSource" />
<property name="openjpa.ConnectionProperties"
value="DriverClassName=org.apache.derby.jdbc.EmbeddedDriver,
- Url=jdbc:derby:openmeetings;create=true,
- create=true,
- MaxActive=100,
- MaxWait=10000,
- TestOnBorrow=true,
- Username=user,
- Password=secret" />
+ Url=jdbc:derby:openmeetings;create=true,
+ create=true,
+ MaxActive=100,
+ MaxWait=10000,
+ TestOnBorrow=true,
+ Username=user,
+ Password=secret" />
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />
<property name="openjpa.DataCache" value="true" />
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java Tue Nov 8 13:09:24 2016
@@ -23,12 +23,14 @@ import static org.apache.openmeetings.ut
import static org.junit.Assert.assertNotNull;
import java.util.Date;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.Address;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.installation.ImportInitvalues;
import org.apache.openmeetings.installation.InstallationConfig;
@@ -138,19 +140,34 @@ public abstract class AbstractJUnitDefau
return ap;
}
- public User getUser(int rnd) throws Exception {
+ public User getUser() throws Exception {
+ return getUser(UUID.randomUUID().toString());
+ }
+
+ protected String getRandomPass(String uuid) {
+ return "pass" + uuid;
+ }
+
+ public User getUser(String uuid) throws Exception {
User u = new User();
// add user
- u.setFirstname("firstname" + rnd);
- u.setLastname("lastname" + rnd);
- u.setLogin("login" + rnd);
- u.updatePassword(cfgDao, "pass" + rnd);
+ u.setFirstname("firstname" + uuid);
+ u.setLastname("lastname" + uuid);
+ u.setLogin("login" + uuid);
+ u.setAddress(new Address());
+ u.getAddress().setEmail(String.format("email%s@local", uuid));
+ u.setRights(UserDao.getDefaultRights());
+ u.updatePassword(cfgDao, getRandomPass(uuid));
u.setLanguageId(1L);
return u;
}
- public User createUser(int rnd) throws Exception {
- User u = getUser(rnd);
+ public User createUser() throws Exception {
+ return createUser(UUID.randomUUID().toString());
+ }
+
+ public User createUser(String uuid) throws Exception {
+ User u = getUser(uuid);
u = userDao.update(u, null);
assertNotNull("Can't add user", u);
return u;
@@ -166,8 +183,12 @@ public abstract class AbstractJUnitDefau
importInitvalues.loadAll(cfg, false);
}
- public User createUserContact(int rnd, Long ownerId) {
- User user = userDao.getContact("email" + rnd, "firstname" + rnd, "lastname" + rnd, ownerId);
+ public User createUserContact(Long ownerId) {
+ return createUserContact(UUID.randomUUID().toString(), ownerId);
+ }
+
+ public User createUserContact(String uuid, Long ownerId) {
+ User user = userDao.getContact("email" + uuid, "firstname" + uuid, "lastname" + uuid, ownerId);
user = userDao.update(user, ownerId);
assertNotNull("Cann't add user", user);
return user;
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java Tue Nov 8 13:09:24 2016
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertEqu
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Random;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
@@ -45,7 +44,6 @@ public class TestDatabaseStructureGetApp
log.debug("Test started");
Long userId = 1L;
- Random rnd = new Random();
Calendar now = Calendar.getInstance();
Calendar rangeStart = Calendar.getInstance();
rangeStart.setTime(now.getTime());
@@ -64,7 +62,7 @@ public class TestDatabaseStructureGetApp
a2.setTitle("AppointmentByRange_a2");
a2.setMeetingMembers(new ArrayList<MeetingMember>());
MeetingMember mm1 = new MeetingMember();
- mm1.setUser(createUserContact(rnd.nextInt(), userId));
+ mm1.setUser(createUserContact(userId));
mm1.setAppointment(a2);
a2.getMeetingMembers().add(mm1);
@@ -72,11 +70,11 @@ public class TestDatabaseStructureGetApp
a3.setTitle("AppointmentByRange_a3");
a3.setMeetingMembers(new ArrayList<MeetingMember>());
MeetingMember mm2 = new MeetingMember();
- mm2.setUser(createUserContact(rnd.nextInt(), userId));
+ mm2.setUser(createUserContact(userId));
mm2.setAppointment(a3);
a3.getMeetingMembers().add(mm2);
MeetingMember mm3 = new MeetingMember();
- mm3.setUser(createUserContact(rnd.nextInt(), userId));
+ mm3.setUser(createUserContact(userId));
mm3.setAppointment(a3);
a3.getMeetingMembers().add(mm3);
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java Tue Nov 8 13:09:24 2016
@@ -25,7 +25,7 @@ import static org.junit.Assert.assertNul
import static org.junit.Assert.assertTrue;
import java.util.List;
-import java.util.Random;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.user.GroupDao;
import org.apache.openmeetings.db.dao.user.UserDao;
@@ -40,7 +40,6 @@ public class TestUserContact extends Abs
private UserDao userDao;
@Autowired
private GroupDao groupDao;
- Random random = new Random();
@Test
public void testGetUser() throws Exception {
@@ -49,11 +48,11 @@ public class TestUserContact extends Abs
@Test
public void createUserWithGroup() throws Exception {
- int rnd = random.nextInt();
- User u = getUser(rnd);
+ String uuid = UUID.randomUUID().toString();
+ User u = getUser(uuid);
u.getGroupUsers().add(new GroupUser(groupDao.get(1L), u));
u = userDao.update(u, null);
- assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), "pass" + rnd));
+ assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), getRandomPass(uuid)));
User u1 = userDao.get(u.getId());
assertNotNull("Just created user should not be null", u1);
@@ -62,10 +61,10 @@ public class TestUserContact extends Abs
}
@Test
- public void createUser() throws Exception {
- int rnd = random.nextInt();
- User u = createUser(rnd);
- assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), "pass" + rnd));
+ public void testCreateUser() throws Exception {
+ String uuid = UUID.randomUUID().toString();
+ User u = createUser(uuid);
+ assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), getRandomPass(uuid)));
}
@Test
@@ -76,7 +75,7 @@ public class TestUserContact extends Abs
assertNotNull("User list should not be null ", users);
assertFalse("User list should not be empty ", users.isEmpty());
- User contact = createUserContact(random.nextInt(), getUserId());
+ User contact = createUserContact(getUserId());
String email = contact.getAddress().getEmail();
List<User> l = userDao.get(email, false, 0, 9999);
// check that contact is visible for admin
@@ -91,9 +90,9 @@ public class TestUserContact extends Abs
l = userDao.get(email, false, 0, 9999);
assertTrue("Contact list should be empty after deletion", l.isEmpty());
- User u = createUser(random.nextInt());
- User u1 = createUser(random.nextInt());
- contact = createUserContact(random.nextInt(), u.getId());
+ User u = createUser();
+ User u1 = createUser();
+ contact = createUserContact(u.getId());
email = contact.getAddress().getEmail();
// check that contact is not visible for user that is not owner of this contact
l = userDao.get(email, 0, 9999, null, true, u1.getId());
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java Tue Nov 8 13:09:24 2016
@@ -21,8 +21,6 @@ package org.apache.openmeetings.test.use
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.junit.Assert.assertTrue;
-import java.util.Random;
-
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.test.AbstractWicketTester;
@@ -32,25 +30,24 @@ import org.springframework.beans.factory
public class TestUserCount extends AbstractWicketTester {
@Autowired
private UserDao userDao;
- Random random = new Random();
@Test
public void testCountSearchUsers() throws Exception {
- User u = createUser(random.nextInt());
+ User u = createUser();
assertTrue("Account of search users should be one", userDao.count(u.getFirstname()) == 1);
}
@Test
public void testCountFilteredUsers() throws Exception {
- User u = createUser(random.nextInt());
- User contact = createUserContact(random.nextInt(), u.getId());
+ User u = createUser();
+ User contact = createUserContact(u.getId());
assertTrue("Account of filtered user should be one", userDao.count(contact.getFirstname(), true, u.getId()) == 1);
}
@Test
public void testCountUnfilteredUsers() throws Exception {
- User u = createUser(random.nextInt());
- createUserContact(random.nextInt(), u.getId());
+ User u = createUser();
+ createUserContact(u.getId());
assertTrue("Account of unfiltered should be more then one", userDao.count("firstname", false, getUserId()) > 1);
}
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java Tue Nov 8 13:09:24 2016
@@ -23,7 +23,7 @@ import static org.junit.Assert.assertTru
import static org.junit.Assert.fail;
import java.util.List;
-import java.util.Random;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.user.GroupDao;
import org.apache.openmeetings.db.dao.user.GroupUserDao;
@@ -33,6 +33,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.test.AbstractJUnitDefaults;
import org.apache.openmeetings.test.selenium.HeavyTests;
+import org.apache.openmeetings.util.OmException;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -44,7 +45,7 @@ public class TestUserGroup extends Abstr
@Autowired
private UserDao userDao;
public static final String GROUP_NAME = "Test Group";
-
+
private User getValidUser() {
for (User u : userDao.getAllBackupUsers()) {
if (!u.isDeleted() && u.getGroupUsers().size() > 0) {
@@ -52,9 +53,9 @@ public class TestUserGroup extends Abstr
}
}
fail("Unable to find valid user");
- return null; //unreachable
+ return null; //unreachable
}
-
+
@Test
public void getUsersByGroupId() {
User u = getValidUser();
@@ -63,14 +64,14 @@ public class TestUserGroup extends Abstr
assertTrue("Default Group should contain at least 1 user: " + ul.size(), ul.size() > 0);
GroupUser ou = groupUserDao.getByGroupAndUser(groupId, u.getId());
- assertNotNull("Unable to found [group, user] pair - [" + groupId + "," + u.getId() + "]", ou);
+ assertNotNull("Unable to find [group, user] pair - [" + groupId + "," + u.getId() + "]", ou);
}
-
+
@Test
public void addGroup() {
- Group o = new Group();
- o.setName(GROUP_NAME);
- Long groupId = groupDao.update(o, null).getId(); //inserted by not checked
+ Group g = new Group();
+ g.setName(GROUP_NAME);
+ Long groupId = groupDao.update(g, null).getId(); //inserted by not checked
assertNotNull("New Group have valid id", groupId);
List<GroupUser> ul = groupUserDao.get(groupId, 0, 9999);
@@ -78,6 +79,38 @@ public class TestUserGroup extends Abstr
}
@Test
+ public void addUserWithoutGroup() throws Exception {
+ String uuid = UUID.randomUUID().toString();
+ User u = getUser(uuid);
+ u = userDao.update(u, null);
+ assertNotNull("User successfully created", u.getId());
+ checkEmptyGroup("dao.get()", userDao.get(u.getId()));
+ try {
+ checkEmptyGroup("dao.login()", userDao.login(u.getAddress().getEmail(), getRandomPass(uuid)));
+ fail("User with no Group is unable to login");
+ } catch (OmException e) {
+ assertTrue("Expected Om Exception", "No Group assigned to user".equals(e.getMessage()));
+ }
+ checkEmptyGroup("dao.getByLogin(user)", userDao.getByLogin(u.getLogin(), u.getType(), u.getDomainId()));
+ }
+
+
+ @Test
+ public void addLdapUserWithoutGroup() throws Exception {
+ User u1 = getUser();
+ u1.setType(User.Type.ldap);
+ u1.setDomainId(1L);
+ u1 = userDao.update(u1, null);
+ checkEmptyGroup("dao.getByLogin(ldap)", userDao.getByLogin(u1.getLogin(), u1.getType(), u1.getDomainId()));
+ }
+
+ private void checkEmptyGroup(String prefix, User u) {
+ assertNotNull(prefix + ":: Created user should be available", u);
+ assertNotNull(prefix + ":: List<GroupUser> for newly created user should not be null", u.getGroupUsers());
+ assertTrue(prefix + ":: List<GroupUser> for newly created user should be empty", u.getGroupUsers().isEmpty());
+ }
+
+ @Test
@HeavyTests
public void add10kUsers() throws Exception {
List<Group> groups = groupDao.get(GROUP_NAME, 0, 1, null);
@@ -89,9 +122,8 @@ public class TestUserGroup extends Abstr
} else {
g = groups.get(0);
}
- Random rnd = new Random();
for (int i = 0; i < 10000; ++i) {
- User u = createUser(rnd.nextInt());
+ User u = createUser();
u.getGroupUsers().add(new GroupUser(g, u));
userDao.update(u, null);
}
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java Tue Nov 8 13:09:24 2016
@@ -23,7 +23,7 @@ import static org.junit.Assert.assertEqu
import java.io.File;
import java.nio.file.Files;
-import java.util.Random;
+import java.util.UUID;
import org.apache.catalina.LifecycleState;
import org.apache.catalina.startup.Tomcat;
@@ -39,7 +39,6 @@ public class AbstractWebServiceTest exte
public final static String CONTEXT = "/openmeetings";
public final static String BASE_SERVICES_URL = "http://localhost:8080" + CONTEXT + "/services";
public final static String USER_SERVICE_URL = BASE_SERVICES_URL + "/user";
- protected static final Random rnd = new Random();
public static WebClient getClient(String url) {
return WebClient.create(url).accept("application/json").type("application/json");
@@ -56,7 +55,7 @@ public class AbstractWebServiceTest exte
public static void initialize() throws Exception {
tomcat = new Tomcat();
tomcat.setPort(8080);
- File wd = Files.createTempDirectory("om" + rnd.nextInt()).toFile();
+ File wd = Files.createTempDirectory("om" + UUID.randomUUID().toString()).toFile();
tomcat.setBaseDir(wd.getCanonicalPath());
tomcat.getHost().setAppBase(wd.getCanonicalPath());
tomcat.getHost().setAutoDeploy(true);
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java Tue Nov 8 13:09:24 2016
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNot
import static org.junit.Assert.assertTrue;
import java.util.Collection;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.dao.user.UserDao;
@@ -42,9 +43,10 @@ public class TestRecordingService extend
private UserDao userDao;
private User getExternalUser() throws Exception {
- User u = getUser(rnd.nextInt());
+ String uuid = UUID.randomUUID().toString();
+ User u = getUser(uuid);
u.setExternalType(UNIT_TEST_GROUP);
- u.setExternalId("" + rnd.nextInt());
+ u.setExternalId(uuid);
u = userDao.update(u, null);
return u;
}
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java Tue Nov 8 13:09:24 2016
@@ -375,6 +375,7 @@ public class UserDao implements IDataPro
.setParameter("type", type)
.setParameter("domainId", domainId == null ? Long.valueOf(0) : domainId)
.getSingleResult();
+ u.getGroupUsers().size(); // this will initiate lazy collection
} catch (NoResultException ex) {
}
return u;
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java Tue Nov 8 13:09:24 2016
@@ -249,7 +249,7 @@ public class User implements IDataProvid
private Address address;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
- @JoinColumn(name = "user_id", insertable = true, updatable = true)
+ @JoinColumn(name = "user_id", insertable = true, updatable = true, nullable = false)
@ElementList(name = "organisations", required = false)
@ElementDependent
private List<GroupUser> groupUsers = new ArrayList<>();
@@ -481,9 +481,6 @@ public class User implements IDataProvid
}
public List<GroupUser> getGroupUsers() {
- if (groupUsers == null) {
- groupUsers = new ArrayList<>();
- }
return groupUsers;
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml Tue Nov 8 13:09:24 2016
@@ -69,13 +69,13 @@
<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp2.BasicDataSource" />
<property name="openjpa.ConnectionProperties"
value="DriverClassName=org.apache.derby.jdbc.EmbeddedDriver,
- Url=jdbc:derby:openmeetings;create=true,
- create=true,
- MaxActive=100,
- MaxWait=10000,
- TestOnBorrow=true,
- Username=user,
- Password=secret" />
+ Url=jdbc:derby:openmeetings;create=true,
+ create=true,
+ MaxActive=100,
+ MaxWait=10000,
+ TestOnBorrow=true,
+ Username=user,
+ Password=secret" />
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />
<property name="openjpa.DataCache" value="true" />
Modified: openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java Tue Nov 8 13:09:24 2016
@@ -23,12 +23,14 @@ import static org.apache.openmeetings.ut
import static org.junit.Assert.assertNotNull;
import java.util.Date;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.Address;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.installation.ImportInitvalues;
import org.apache.openmeetings.installation.InstallationConfig;
@@ -138,19 +140,34 @@ public abstract class AbstractJUnitDefau
return ap;
}
- public User getUser(int rnd) throws Exception {
+ public User getUser() throws Exception {
+ return getUser(UUID.randomUUID().toString());
+ }
+
+ protected String getRandomPass(String uuid) {
+ return "pass" + uuid;
+ }
+
+ public User getUser(String uuid) throws Exception {
User u = new User();
// add user
- u.setFirstname("firstname" + rnd);
- u.setLastname("lastname" + rnd);
- u.setLogin("login" + rnd);
- u.updatePassword(cfgDao, "pass" + rnd);
+ u.setFirstname("firstname" + uuid);
+ u.setLastname("lastname" + uuid);
+ u.setLogin("login" + uuid);
+ u.setAddress(new Address());
+ u.getAddress().setEmail(String.format("email%s@local", uuid));
+ u.setRights(UserDao.getDefaultRights());
+ u.updatePassword(cfgDao, getRandomPass(uuid));
u.setLanguageId(1L);
return u;
}
- public User createUser(int rnd) throws Exception {
- User u = getUser(rnd);
+ public User createUser() throws Exception {
+ return createUser(UUID.randomUUID().toString());
+ }
+
+ public User createUser(String uuid) throws Exception {
+ User u = getUser(uuid);
u = userDao.update(u, null);
assertNotNull("Can't add user", u);
return u;
@@ -166,8 +183,12 @@ public abstract class AbstractJUnitDefau
importInitvalues.loadAll(cfg, false);
}
- public User createUserContact(int rnd, Long ownerId) {
- User user = userDao.getContact("email" + rnd, "firstname" + rnd, "lastname" + rnd, ownerId);
+ public User createUserContact(Long ownerId) {
+ return createUserContact(UUID.randomUUID().toString(), ownerId);
+ }
+
+ public User createUserContact(String uuid, Long ownerId) {
+ User user = userDao.getContact("email" + uuid, "firstname" + uuid, "lastname" + uuid, ownerId);
user = userDao.update(user, ownerId);
assertNotNull("Cann't add user", user);
return user;
Modified: openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java Tue Nov 8 13:09:24 2016
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertEqu
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Random;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
@@ -45,7 +44,6 @@ public class TestDatabaseStructureGetApp
log.debug("Test started");
Long userId = 1L;
- Random rnd = new Random();
Calendar now = Calendar.getInstance();
Calendar rangeStart = Calendar.getInstance();
rangeStart.setTime(now.getTime());
@@ -64,7 +62,7 @@ public class TestDatabaseStructureGetApp
a2.setTitle("AppointmentByRange_a2");
a2.setMeetingMembers(new ArrayList<MeetingMember>());
MeetingMember mm1 = new MeetingMember();
- mm1.setUser(createUserContact(rnd.nextInt(), userId));
+ mm1.setUser(createUserContact(userId));
mm1.setAppointment(a2);
a2.getMeetingMembers().add(mm1);
@@ -72,11 +70,11 @@ public class TestDatabaseStructureGetApp
a3.setTitle("AppointmentByRange_a3");
a3.setMeetingMembers(new ArrayList<MeetingMember>());
MeetingMember mm2 = new MeetingMember();
- mm2.setUser(createUserContact(rnd.nextInt(), userId));
+ mm2.setUser(createUserContact(userId));
mm2.setAppointment(a3);
a3.getMeetingMembers().add(mm2);
MeetingMember mm3 = new MeetingMember();
- mm3.setUser(createUserContact(rnd.nextInt(), userId));
+ mm3.setUser(createUserContact(userId));
mm3.setAppointment(a3);
a3.getMeetingMembers().add(mm3);
Modified: openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java Tue Nov 8 13:09:24 2016
@@ -25,7 +25,7 @@ import static org.junit.Assert.assertNul
import static org.junit.Assert.assertTrue;
import java.util.List;
-import java.util.Random;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.user.GroupDao;
import org.apache.openmeetings.db.dao.user.UserDao;
@@ -40,7 +40,6 @@ public class TestUserContact extends Abs
private UserDao userDao;
@Autowired
private GroupDao groupDao;
- Random random = new Random();
@Test
public void testGetUser() throws Exception {
@@ -49,11 +48,11 @@ public class TestUserContact extends Abs
@Test
public void createUserWithGroup() throws Exception {
- int rnd = random.nextInt();
- User u = getUser(rnd);
+ String uuid = UUID.randomUUID().toString();
+ User u = getUser(uuid);
u.getGroupUsers().add(new GroupUser(groupDao.get(1L), u));
u = userDao.update(u, null);
- assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), "pass" + rnd));
+ assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), getRandomPass(uuid)));
User u1 = userDao.get(u.getId());
assertNotNull("Just created user should not be null", u1);
@@ -62,10 +61,10 @@ public class TestUserContact extends Abs
}
@Test
- public void createUser() throws Exception {
- int rnd = random.nextInt();
- User u = createUser(rnd);
- assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), "pass" + rnd));
+ public void testCreateUser() throws Exception {
+ String uuid = UUID.randomUUID().toString();
+ User u = createUser(uuid);
+ assertTrue("Password should be set as expected", userDao.verifyPassword(u.getId(), getRandomPass(uuid)));
}
@Test
@@ -76,7 +75,7 @@ public class TestUserContact extends Abs
assertNotNull("User list should not be null ", users);
assertFalse("User list should not be empty ", users.isEmpty());
- User contact = createUserContact(random.nextInt(), getUserId());
+ User contact = createUserContact(getUserId());
String email = contact.getAddress().getEmail();
List<User> l = userDao.get(email, false, 0, 9999);
// check that contact is visible for admin
@@ -91,9 +90,9 @@ public class TestUserContact extends Abs
l = userDao.get(email, false, 0, 9999);
assertTrue("Contact list should be empty after deletion", l.isEmpty());
- User u = createUser(random.nextInt());
- User u1 = createUser(random.nextInt());
- contact = createUserContact(random.nextInt(), u.getId());
+ User u = createUser();
+ User u1 = createUser();
+ contact = createUserContact(u.getId());
email = contact.getAddress().getEmail();
// check that contact is not visible for user that is not owner of this contact
l = userDao.get(email, 0, 9999, null, true, u1.getId());
Modified: openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserCount.java Tue Nov 8 13:09:24 2016
@@ -21,8 +21,6 @@ package org.apache.openmeetings.test.use
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.junit.Assert.assertTrue;
-import java.util.Random;
-
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.test.AbstractWicketTester;
@@ -32,25 +30,24 @@ import org.springframework.beans.factory
public class TestUserCount extends AbstractWicketTester {
@Autowired
private UserDao userDao;
- Random random = new Random();
@Test
public void testCountSearchUsers() throws Exception {
- User u = createUser(random.nextInt());
+ User u = createUser();
assertTrue("Account of search users should be one", userDao.count(u.getFirstname()) == 1);
}
@Test
public void testCountFilteredUsers() throws Exception {
- User u = createUser(random.nextInt());
- User contact = createUserContact(random.nextInt(), u.getId());
+ User u = createUser();
+ User contact = createUserContact(u.getId());
assertTrue("Account of filtered user should be one", userDao.count(contact.getFirstname(), true, u.getId()) == 1);
}
@Test
public void testCountUnfilteredUsers() throws Exception {
- User u = createUser(random.nextInt());
- createUserContact(random.nextInt(), u.getId());
+ User u = createUser();
+ createUserContact(u.getId());
assertTrue("Account of unfiltered should be more then one", userDao.count("firstname", false, getUserId()) > 1);
}
Modified: openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestUserGroup.java Tue Nov 8 13:09:24 2016
@@ -23,7 +23,7 @@ import static org.junit.Assert.assertTru
import static org.junit.Assert.fail;
import java.util.List;
-import java.util.Random;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.user.GroupDao;
import org.apache.openmeetings.db.dao.user.GroupUserDao;
@@ -33,6 +33,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.test.AbstractJUnitDefaults;
import org.apache.openmeetings.test.selenium.HeavyTests;
+import org.apache.openmeetings.util.OmException;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -44,7 +45,7 @@ public class TestUserGroup extends Abstr
@Autowired
private UserDao userDao;
public static final String GROUP_NAME = "Test Group";
-
+
private User getValidUser() {
for (User u : userDao.getAllBackupUsers()) {
if (!u.isDeleted() && u.getGroupUsers().size() > 0) {
@@ -52,9 +53,9 @@ public class TestUserGroup extends Abstr
}
}
fail("Unable to find valid user");
- return null; //unreachable
+ return null; //unreachable
}
-
+
@Test
public void getUsersByGroupId() {
User u = getValidUser();
@@ -63,14 +64,14 @@ public class TestUserGroup extends Abstr
assertTrue("Default Group should contain at least 1 user: " + ul.size(), ul.size() > 0);
GroupUser ou = groupUserDao.getByGroupAndUser(groupId, u.getId());
- assertNotNull("Unable to found [group, user] pair - [" + groupId + "," + u.getId() + "]", ou);
+ assertNotNull("Unable to find [group, user] pair - [" + groupId + "," + u.getId() + "]", ou);
}
-
+
@Test
public void addGroup() {
- Group o = new Group();
- o.setName(GROUP_NAME);
- Long groupId = groupDao.update(o, null).getId(); //inserted by not checked
+ Group g = new Group();
+ g.setName(GROUP_NAME);
+ Long groupId = groupDao.update(g, null).getId(); //inserted by not checked
assertNotNull("New Group have valid id", groupId);
List<GroupUser> ul = groupUserDao.get(groupId, 0, 9999);
@@ -78,6 +79,38 @@ public class TestUserGroup extends Abstr
}
@Test
+ public void addUserWithoutGroup() throws Exception {
+ String uuid = UUID.randomUUID().toString();
+ User u = getUser(uuid);
+ u = userDao.update(u, null);
+ assertNotNull("User successfully created", u.getId());
+ checkEmptyGroup("dao.get()", userDao.get(u.getId()));
+ try {
+ checkEmptyGroup("dao.login()", userDao.login(u.getAddress().getEmail(), getRandomPass(uuid)));
+ fail("User with no Group is unable to login");
+ } catch (OmException e) {
+ assertTrue("Expected Om Exception", "No Group assigned to user".equals(e.getMessage()));
+ }
+ checkEmptyGroup("dao.getByLogin(user)", userDao.getByLogin(u.getLogin(), u.getType(), u.getDomainId()));
+ }
+
+
+ @Test
+ public void addLdapUserWithoutGroup() throws Exception {
+ User u1 = getUser();
+ u1.setType(User.Type.ldap);
+ u1.setDomainId(1L);
+ u1 = userDao.update(u1, null);
+ checkEmptyGroup("dao.getByLogin(ldap)", userDao.getByLogin(u1.getLogin(), u1.getType(), u1.getDomainId()));
+ }
+
+ private void checkEmptyGroup(String prefix, User u) {
+ assertNotNull(prefix + ":: Created user should be available", u);
+ assertNotNull(prefix + ":: List<GroupUser> for newly created user should not be null", u.getGroupUsers());
+ assertTrue(prefix + ":: List<GroupUser> for newly created user should be empty", u.getGroupUsers().isEmpty());
+ }
+
+ @Test
@HeavyTests
public void add10kUsers() throws Exception {
List<Group> groups = groupDao.get(GROUP_NAME, 0, 1, null);
@@ -89,9 +122,8 @@ public class TestUserGroup extends Abstr
} else {
g = groups.get(0);
}
- Random rnd = new Random();
for (int i = 0; i < 10000; ++i) {
- User u = createUser(rnd.nextInt());
+ User u = createUser();
u.getGroupUsers().add(new GroupUser(g, u));
userDao.update(u, null);
}
Modified: openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/AbstractWebServiceTest.java Tue Nov 8 13:09:24 2016
@@ -23,7 +23,7 @@ import static org.junit.Assert.assertEqu
import java.io.File;
import java.nio.file.Files;
-import java.util.Random;
+import java.util.UUID;
import org.apache.catalina.LifecycleState;
import org.apache.catalina.startup.Tomcat;
@@ -39,7 +39,6 @@ public class AbstractWebServiceTest exte
public final static String CONTEXT = "/openmeetings";
public final static String BASE_SERVICES_URL = "http://localhost:8080" + CONTEXT + "/services";
public final static String USER_SERVICE_URL = BASE_SERVICES_URL + "/user";
- protected static final Random rnd = new Random();
public static WebClient getClient(String url) {
return WebClient.create(url).accept("application/json").type("application/json");
@@ -56,7 +55,7 @@ public class AbstractWebServiceTest exte
public static void initialize() throws Exception {
tomcat = new Tomcat();
tomcat.setPort(8080);
- File wd = Files.createTempDirectory("om" + rnd.nextInt()).toFile();
+ File wd = Files.createTempDirectory("om" + UUID.randomUUID().toString()).toFile();
tomcat.setBaseDir(wd.getCanonicalPath());
tomcat.getHost().setAppBase(wd.getCanonicalPath());
tomcat.getHost().setAutoDeploy(true);
Modified: openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java?rev=1768685&r1=1768684&r2=1768685&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/webservice/TestRecordingService.java Tue Nov 8 13:09:24 2016
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNot
import static org.junit.Assert.assertTrue;
import java.util.Collection;
+import java.util.UUID;
import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.dao.user.UserDao;
@@ -42,9 +43,10 @@ public class TestRecordingService extend
private UserDao userDao;
private User getExternalUser() throws Exception {
- User u = getUser(rnd.nextInt());
+ String uuid = UUID.randomUUID().toString();
+ User u = getUser(uuid);
u.setExternalType(UNIT_TEST_GROUP);
- u.setExternalId("" + rnd.nextInt());
+ u.setExternalId(uuid);
u = userDao.update(u, null);
return u;
}