/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.geofence.core.dao; import com.vividsolutions.jts.geom.MultiPolygon; import org.geoserver.geofence.core.model.GSUser; import org.geoserver.geofence.core.model.UserGroup; import java.util.Set; import static org.junit.Assert.*; import org.junit.Test; /** * * @author ETj (etj at geo-solutions.it) */ public class UserDAOTest extends BaseDAOTest { @Test public void testPersistUser() throws Exception { long id; { GSUser user = createUserAndGroup(name.getMethodName()); userDAO.persist(user); id = user.getId(); } // test save & load { GSUser loaded = userDAO.find(id); assertNotNull("Can't retrieve user", loaded); // assertNull(loaded.getAllowedArea()); // loaded.setAllowedArea(buildMultiPolygon()); // userDAO.merge(loaded); } // { // GSUser loaded2 = userDAO.find(id); // assertNotNull("Can't retrieve user", loaded2); // assertNotNull(loaded2.getAllowedArea()); // } userDAO.removeById(id); assertNull("User not deleted", userDAO.find(id)); } // @Test // public void testUpdateSRID() throws Exception { // // final int srid2 = 4326; // final int srid1 = 8307; // // long id; // { // GSUser user = createUserAndGroup(getName()); // MultiPolygon mp = buildMultiPolygon(); // mp.setSRID(srid1); // user.setAllowedArea(mp); // userDAO.persist(user); // id = user.getId(); // } // // // test save & load // { // GSUser loaded = userDAO.find(id); // assertNotNull("Can't retrieve user", loaded); // assertEquals("bad SRID", srid1, loaded.getAllowedArea().getSRID()); // // MultiPolygon mp = buildMultiPolygon(); // mp.setSRID(srid2); // loaded.setAllowedArea(mp); // assertEquals("SRID not set", srid2, loaded.getAllowedArea().getSRID()); // // userDAO.merge(loaded); // } // // { // GSUser loaded = userDAO.find(id); // assertNotNull("Can't retrieve user", loaded); // assertEquals("SRID not updated", srid2, loaded.getAllowedArea().getSRID()); // } // // userDAO.removeById(id); // assertNull("User not deleted", userDAO.find(id)); // } @Test public void testGroups() throws Exception { Long gid1, gid2; Long uid1; { UserGroup g1 = createUserGroup(name.getMethodName()+"1"); gid1 = g1.getId(); UserGroup g2 = createUserGroup(name.getMethodName()+"2"); gid2 = g2.getId(); GSUser u1 = createUser("u0", g1); userDAO.persist(u1); uid1= u1.getId(); assertNotNull(uid1); } { GSUser loaded = userDAO.find(uid1); assertNotNull("Can't retrieve user", loaded); Set<UserGroup> grps = userDAO.getGroups(uid1); assertEquals("Bad number of usergroups", 1, grps.size()); assertEquals("Bad assigned usergroup", gid1, grps.iterator().next().getId()); // add another group UserGroup g2 = userGroupDAO.find(gid2); assertNotNull(g2); loaded.setGroups(grps); loaded.getGroups().add(g2); userDAO.merge(loaded); } { GSUser loaded = userDAO.find(uid1); assertNotNull("Can't retrieve user", loaded); Set<UserGroup> grps = userDAO.getGroups(uid1); assertEquals("Bad number of usergroups", 2, grps.size()); } } }