Skip to content
Snippets Groups Projects
Commit 60a501b4 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

db object with gui preferences

parent 74291979
No related branches found
No related tags found
1 merge request!268Resolve "Admin panel: Show (x) entries lost on page refresh"
package lcsb.mapviewer.model.user;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
/**
* This class defines GUI preference for the {@link User}.
*
* @author Piotr Gawron
*
*/
@Entity
@Table(name = "user_gui_preferences")
public class UserGuiPreference implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* Unique identifier in the database.
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "idDb", unique = true, nullable = false)
private Integer id;
/**
* {@link UserAnnotationSchema} that defines which user is using this parameter.
*/
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="annotation_schema_iddb")
private UserAnnotationSchema annotationSchema;
/**
* GUI parameter name.
*/
@Column(name = "key", nullable = false)
private String key;
/**
* GUI parameter value.
*/
@Column(name = "value", nullable = false)
private String value;
public UserAnnotationSchema getAnnotationSchema() {
return annotationSchema;
}
public void setAnnotationSchema(UserAnnotationSchema annotationSchema) {
this.annotationSchema = annotationSchema;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
......@@ -16,183 +16,217 @@ import lcsb.mapviewer.model.map.MiriamType;
public class UserAnnotationSchemaTest {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testAddClassAnnotator() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassAnnotators ca = new UserClassAnnotators(String.class, new ArrayList<String>());
UserClassAnnotators ca2 = new UserClassAnnotators(String.class, new ArrayList<String>());
annotationSchema.addClassAnnotator(ca);
annotationSchema.addClassAnnotator(ca2);
assertEquals(1, annotationSchema.getClassAnnotators().size());
assertEquals(ca2.getAnnotators(), annotationSchema.getAnnotatorsForClass(String.class));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testInvalidAddClassAnnotator() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassAnnotators ca = new UserClassAnnotators(String.class, new ArrayList<String>());
ca.setClassName((String)null);
annotationSchema.addClassAnnotator(ca);
fail("Exception expected");
} catch (InvalidArgumentException e) {
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddClassRequiredAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassRequiredAnnotations cra = new UserClassRequiredAnnotations(String.class, new ArrayList<MiriamType>());
UserClassRequiredAnnotations cra2 = new UserClassRequiredAnnotations(String.class, new ArrayList<MiriamType>());
annotationSchema.addClassRequiredAnnotations(cra);
annotationSchema.addClassRequiredAnnotations(cra2);
assertEquals(1, annotationSchema.getClassRequiredAnnotators().size());
assertEquals(cra2, annotationSchema.getClassRequiredAnnotators().get(0));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddInvalidClassRequiredAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassRequiredAnnotations cra = new UserClassRequiredAnnotations(String.class, new ArrayList<MiriamType>());
cra.setClassName((String)null);
annotationSchema.addClassRequiredAnnotations(cra);
fail("Exception expected");
} catch (InvalidArgumentException e) {
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddClassValidAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassValidAnnotations cva = new UserClassValidAnnotations(String.class, new ArrayList<MiriamType>());
UserClassValidAnnotations cva2 = new UserClassValidAnnotations(String.class, new ArrayList<MiriamType>());
annotationSchema.addClassValidAnnotations(cva);
annotationSchema.addClassValidAnnotations(cva2);
assertEquals(1, annotationSchema.getClassValidAnnotators().size());
assertEquals(cva2, annotationSchema.getClassValidAnnotators().get(0));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetValidAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
List<MiriamType> list = new ArrayList<>();
list.add(MiriamType.CAS);
UserClassValidAnnotations cva = new UserClassValidAnnotations(String.class, list);
annotationSchema.addClassValidAnnotations(cva);
assertEquals(1, annotationSchema.getValidAnnotations(String.class).size());
assertEquals(0, annotationSchema.getValidAnnotations(Integer.class).size());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetRequiredAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
List<MiriamType> list = new ArrayList<>();
list.add(MiriamType.CAS);
UserClassRequiredAnnotations cva = new UserClassRequiredAnnotations(String.class, list);
annotationSchema.addClassRequiredAnnotations(cva);
assertEquals(1, annotationSchema.getRequiredAnnotations(String.class).size());
assertEquals(0, annotationSchema.getRequiredAnnotations(Integer.class).size());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddInvalidClassValidAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassValidAnnotations cva = new UserClassValidAnnotations(String.class, new ArrayList<MiriamType>());
cva.setClassName((String)null);
annotationSchema.addClassValidAnnotations(cva);
fail("Exception expected");
} catch (InvalidArgumentException e) {
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testSerialization() {
try {
SerializationUtils.serialize(new UserAnnotationSchema());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetters() {
try {
UserAnnotationSchema uas = new UserAnnotationSchema();
Boolean validateMiriamTypes = true;
List<UserClassAnnotators> classAnnotators = new ArrayList<>();
List<UserClassValidAnnotations> classValidAnnotators = new ArrayList<>();
List<UserClassRequiredAnnotations> classRequiredAnnotators = new ArrayList<>();
User user = new User();
Boolean sbgnFormat = true;
Boolean networkLayoutAsDefault = true;
uas.setValidateMiriamTypes(validateMiriamTypes);
uas.setClassAnnotators(classAnnotators);
uas.setClassValidAnnotators(classValidAnnotators);
uas.setClassRequiredAnnotators(classRequiredAnnotators);
uas.setSbgnFormat(sbgnFormat);
uas.setNetworkLayoutAsDefault(networkLayoutAsDefault);
uas.setUser(user);
assertEquals(validateMiriamTypes, uas.getValidateMiriamTypes());
assertEquals(classAnnotators, uas.getClassAnnotators());
assertEquals(classValidAnnotators, uas.getClassValidAnnotators());
assertEquals(classRequiredAnnotators, uas.getClassRequiredAnnotators());
assertEquals(sbgnFormat, uas.getSbgnFormat());
assertEquals(networkLayoutAsDefault, uas.getNetworkLayoutAsDefault());
assertEquals(user, uas.getUser());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testAddClassAnnotator() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassAnnotators ca = new UserClassAnnotators(String.class, new ArrayList<String>());
UserClassAnnotators ca2 = new UserClassAnnotators(String.class, new ArrayList<String>());
annotationSchema.addClassAnnotator(ca);
annotationSchema.addClassAnnotator(ca2);
assertEquals(1, annotationSchema.getClassAnnotators().size());
assertEquals(ca2.getAnnotators(), annotationSchema.getAnnotatorsForClass(String.class));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testInvalidAddClassAnnotator() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassAnnotators ca = new UserClassAnnotators(String.class, new ArrayList<String>());
ca.setClassName((String) null);
annotationSchema.addClassAnnotator(ca);
fail("Exception expected");
} catch (InvalidArgumentException e) {
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddClassRequiredAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassRequiredAnnotations cra = new UserClassRequiredAnnotations(String.class, new ArrayList<MiriamType>());
UserClassRequiredAnnotations cra2 = new UserClassRequiredAnnotations(String.class, new ArrayList<MiriamType>());
annotationSchema.addClassRequiredAnnotations(cra);
annotationSchema.addClassRequiredAnnotations(cra2);
assertEquals(1, annotationSchema.getClassRequiredAnnotators().size());
assertEquals(cra2, annotationSchema.getClassRequiredAnnotators().get(0));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddInvalidClassRequiredAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassRequiredAnnotations cra = new UserClassRequiredAnnotations(String.class, new ArrayList<MiriamType>());
cra.setClassName((String) null);
annotationSchema.addClassRequiredAnnotations(cra);
fail("Exception expected");
} catch (InvalidArgumentException e) {
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddClassValidAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassValidAnnotations cva = new UserClassValidAnnotations(String.class, new ArrayList<MiriamType>());
UserClassValidAnnotations cva2 = new UserClassValidAnnotations(String.class, new ArrayList<MiriamType>());
annotationSchema.addClassValidAnnotations(cva);
annotationSchema.addClassValidAnnotations(cva2);
assertEquals(1, annotationSchema.getClassValidAnnotators().size());
assertEquals(cva2, annotationSchema.getClassValidAnnotators().get(0));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetValidAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
List<MiriamType> list = new ArrayList<>();
list.add(MiriamType.CAS);
UserClassValidAnnotations cva = new UserClassValidAnnotations(String.class, list);
annotationSchema.addClassValidAnnotations(cva);
assertEquals(1, annotationSchema.getValidAnnotations(String.class).size());
assertEquals(0, annotationSchema.getValidAnnotations(Integer.class).size());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetRequiredAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
List<MiriamType> list = new ArrayList<>();
list.add(MiriamType.CAS);
UserClassRequiredAnnotations cva = new UserClassRequiredAnnotations(String.class, list);
annotationSchema.addClassRequiredAnnotations(cva);
assertEquals(1, annotationSchema.getRequiredAnnotations(String.class).size());
assertEquals(0, annotationSchema.getRequiredAnnotations(Integer.class).size());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddInvalidClassValidAnnotations() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserClassValidAnnotations cva = new UserClassValidAnnotations(String.class, new ArrayList<MiriamType>());
cva.setClassName((String) null);
annotationSchema.addClassValidAnnotations(cva);
fail("Exception expected");
} catch (InvalidArgumentException e) {
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddGuiPreference() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
annotationSchema.addGuiPreference(new UserGuiPreference());
assertEquals(1, annotationSchema.getGuiPreferences().size());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddGuiPreferenceWithDuplicateKey() throws Exception {
try {
UserAnnotationSchema annotationSchema = new UserAnnotationSchema();
UserGuiPreference preference1 = new UserGuiPreference();
preference1.setKey("test");
preference1.setValue("value");
annotationSchema.addGuiPreference(preference1);
UserGuiPreference preference2 = new UserGuiPreference();
preference2.setKey("test");
preference2.setValue("new value");
annotationSchema.addGuiPreference(preference2);
assertEquals(1, annotationSchema.getGuiPreferences().size());
assertEquals("new value", annotationSchema.getGuiPreferences().iterator().next().getValue());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testSerialization() {
try {
SerializationUtils.serialize(new UserAnnotationSchema());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetters() {
try {
UserAnnotationSchema uas = new UserAnnotationSchema();
Boolean validateMiriamTypes = true;
List<UserClassAnnotators> classAnnotators = new ArrayList<>();
List<UserClassValidAnnotations> classValidAnnotators = new ArrayList<>();
List<UserClassRequiredAnnotations> classRequiredAnnotators = new ArrayList<>();
User user = new User();
Boolean sbgnFormat = true;
Boolean networkLayoutAsDefault = true;
uas.setValidateMiriamTypes(validateMiriamTypes);
uas.setClassAnnotators(classAnnotators);
uas.setClassValidAnnotators(classValidAnnotators);
uas.setClassRequiredAnnotators(classRequiredAnnotators);
uas.setSbgnFormat(sbgnFormat);
uas.setNetworkLayoutAsDefault(networkLayoutAsDefault);
uas.setUser(user);
assertEquals(validateMiriamTypes, uas.getValidateMiriamTypes());
assertEquals(classAnnotators, uas.getClassAnnotators());
assertEquals(classValidAnnotators, uas.getClassValidAnnotators());
assertEquals(classRequiredAnnotators, uas.getClassRequiredAnnotators());
assertEquals(sbgnFormat, uas.getSbgnFormat());
assertEquals(networkLayoutAsDefault, uas.getNetworkLayoutAsDefault());
assertEquals(user, uas.getUser());
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
}
CREATE SEQUENCE user_gui_preferences_iddb_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
CREATE TABLE user_gui_preferences
(
iddb integer NOT NULL DEFAULT nextval('user_gui_preferences_iddb_seq'::regclass),
key character varying(255) NOT NULL,
value character varying(255) NOT NULL,
annotation_schema_iddb integer NOT NULL,
CONSTRAINT user_gui_preferences_fk FOREIGN KEY (annotation_schema_iddb)
REFERENCES public.user_annotation_schema_table (iddb) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT user_gui_preferences_key_unique UNIQUE (key, annotation_schema_iddb)
);
......@@ -95,6 +95,7 @@
<value>lcsb.mapviewer.model.user.UserClassAnnotators</value>
<value>lcsb.mapviewer.model.user.UserClassValidAnnotations</value>
<value>lcsb.mapviewer.model.user.UserClassRequiredAnnotations</value>
<value>lcsb.mapviewer.model.user.UserGuiPreference</value>
<value>lcsb.mapviewer.model.Project</value>
......
......@@ -25,259 +25,285 @@ import lcsb.mapviewer.model.user.User;
import lcsb.mapviewer.model.user.UserAnnotationSchema;
import lcsb.mapviewer.model.user.UserClassAnnotators;
import lcsb.mapviewer.model.user.UserClassValidAnnotations;
import lcsb.mapviewer.model.user.UserGuiPreference;
import lcsb.mapviewer.persist.PersistTestFunctions;
public class UserDaoTest extends PersistTestFunctions {
@Autowired
protected PasswordEncoder passwordEncoder;
protected Logger logger = Logger.getLogger(UserDaoTest.class.getName());
String testLogin = "test_login123";
String testEmail = "a@a.pl";
String testPasswd = "pwd";
String testLogin2 = "test_login_tmp";
String testName = "John";
String testSurname = "Doe";
@Before
public void setUp() throws Exception {
Map<String, Object> params = new HashMap<String, Object>();
params.put("login_param", testLogin);
params.put("login_param2", testLogin2);
dbUtils.executeSqlQuery("delete from user_table where login = :login_param or login = :login_param2", params);
}
@After
public void tearDown() throws Exception {
}
@Test
public void testAddUpdateDelete() {
try {
User user = userDao.getUserByLogin(testLogin);
assertNull(user);
long counter = userDao.getCount();
user = new User();
user.setLogin(testLogin);
user.addPrivilege(new BasicPrivilege(0, PrivilegeType.ADD_MAP, user));
userDao.add(user);
long counter2 = userDao.getCount();
assertEquals(counter + 1, counter2);
user.setLogin(testLogin2);
userDao.update(user);
User user2 = userDao.getUserByLogin(testLogin2);
assertNotNull(user2);
userDao.delete(user);
user2 = userDao.getUserByLogin(testLogin2);
assertNull(user2);
counter2 = userDao.getCount();
assertEquals(counter, counter2);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddDeleteAdd() {
try {
User user = userDao.getUserByLogin(testLogin);
assertNull(user);
long counter = userDao.getCount();
user = new User();
user.setLogin(testLogin);
userDao.add(user);
long counter2 = userDao.getCount();
assertEquals(counter + 1, counter2);
userDao.delete(user);
User user2 = userDao.getUserByLogin(testLogin);
assertNull(user2);
user2 = new User();
user2.setLogin(testLogin);
userDao.add(user2);
assertNotNull(userDao.getUserByLogin(testLogin));
userDao.delete(user2);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetUserByLoginAndPassword() throws Exception {
try {
User user = new User();
user.setCryptedPassword(passwordEncoder.encode(testPasswd));
user.setLogin(testLogin);
userDao.add(user);
User user2 = userDao.getUserByLoginAndPassword(testLogin, testPasswd);
assertNotNull(user2);
assertEquals(user2.getId(), user.getId());
assertEquals(user2.getLogin(), user.getLogin());
assertEquals(user2.getCryptedPassword(), user.getCryptedPassword());
userDao.delete(user);
// after we remove it we shouldn't be able to get it
User user3 = userDao.getUserByLoginAndPassword(testLogin, testPasswd);
assertNull(user3);
// after we remove it we shouldn't be able to get the removed and modified
// object
User user4 = userDao.getUserByLoginAndPassword(user2.getLogin(), testPasswd);
assertNull(user4);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetUserByLoginAndEmptyPassword() throws Exception {
try {
User user = new User();
user.setCryptedPassword(passwordEncoder.encode(testPasswd));
user.setLogin(testLogin);
userDao.add(user);
User user2 = userDao.getUserByLoginAndPassword(testLogin, null);
assertNull(user2);
userDao.delete(user);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetUserByLogin() throws Exception {
try {
User user = new User();
user.setCryptedPassword(passwordEncoder.encode(testPasswd));
user.setLogin(testLogin);
userDao.add(user);
User user2 = userDao.getUserByLogin(testLogin);
assertNotNull(user2);
assertEquals(user2.getId(), user.getId());
assertEquals(user2.getLogin(), user.getLogin());
assertEquals(user2.getCryptedPassword(), user.getCryptedPassword());
user2 = userDao.getUserByLogin(testLogin2);
assertNull(user2);
userDao.delete(user);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetUserByEmail() throws Exception {
try {
User user = new User();
user.setCryptedPassword(passwordEncoder.encode(testPasswd));
user.setLogin(testLogin);
user.setEmail(testEmail);
userDao.add(user);
User user2 = userDao.getUserByEmail(testEmail);
assertNotNull(user2);
assertEquals(user2.getId(), user.getId());
assertEquals(user2.getLogin(), user.getLogin());
assertEquals(user2.getCryptedPassword(), user.getCryptedPassword());
user2 = userDao.getUserByEmail(testEmail + "sadas");
assertNull(user2);
userDao.delete(user);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetUserByNameSurname() throws Exception {
try {
User user = new User();
user.setCryptedPassword(passwordEncoder.encode(testPasswd));
user.setLogin(testLogin);
user.setEmail(testEmail);
user.setName(testName);
user.setSurname(testSurname);
userDao.add(user);
User user2 = userDao.getUserByNameSurname(testName + " " + testSurname);
assertNotNull(user2);
user2 = userDao.getUserByNameSurname(testName + " " + testSurname);
assertNull(user2);
userDao.delete(user);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetAll() throws Exception {
try {
assertTrue(userDao.getAll().size() > 0);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testUserWithAnnotatorSchema() throws Exception {
try {
User user = new User();
UserAnnotationSchema uas = new UserAnnotationSchema();
uas.setValidateMiriamTypes(true);
UserClassAnnotators ca = new UserClassAnnotators();
ca.setClassName(Species.class);
ca.addAnnotator(String.class);
ca.addAnnotator(Integer.class);
uas.addClassAnnotator(ca);
uas.addClassAnnotator(new UserClassAnnotators(String.class, new ArrayList<String>()));
UserClassValidAnnotations cva = new UserClassValidAnnotations();
cva.setClassName(Reaction.class);
cva.addValidMiriamType(MiriamType.HGNC);
cva.addValidMiriamType(MiriamType.HGNC_SYMBOL);
uas.addClassValidAnnotations(cva);
uas.addClassValidAnnotations(new UserClassValidAnnotations(String.class, new ArrayList<MiriamType>()));
uas.addClassValidAnnotations(new UserClassValidAnnotations(Integer.class, new ArrayList<MiriamType>()));
user.setAnnotationSchema(uas);
userDao.add(user);
userDao.evict(user);
User user2 = userDao.getById(user.getId());
assertNotNull(user2);
UserAnnotationSchema uas2 = user2.getAnnotationSchema();
assertNotNull(uas2);
assertEquals(2, uas2.getClassAnnotators().size());
assertEquals(3, uas2.getClassValidAnnotators().size());
assertEquals(Species.class.getCanonicalName(), uas.getClassAnnotators().get(0).getClassName());
assertEquals(String.class.getCanonicalName(), uas.getClassAnnotators().get(0).getAnnotators().get(0));
assertEquals(Integer.class.getCanonicalName(), uas.getClassAnnotators().get(0).getAnnotators().get(1));
assertEquals(Reaction.class.getCanonicalName(), uas.getClassValidAnnotators().get(0).getClassName());
assertEquals(MiriamType.HGNC, uas.getClassValidAnnotators().get(0).getValidMiriamTypes().get(0));
assertEquals(MiriamType.HGNC_SYMBOL, uas.getClassValidAnnotators().get(0).getValidMiriamTypes().get(1));
userDao.delete(user2);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Autowired
protected PasswordEncoder passwordEncoder;
protected Logger logger = Logger.getLogger(UserDaoTest.class.getName());
String testLogin = "test_login123";
String testEmail = "a@a.pl";
String testPasswd = "pwd";
String testLogin2 = "test_login_tmp";
String testName = "John";
String testSurname = "Doe";
@Before
public void setUp() throws Exception {
Map<String, Object> params = new HashMap<String, Object>();
params.put("login_param", testLogin);
params.put("login_param2", testLogin2);
dbUtils.executeSqlQuery("delete from user_table where login = :login_param or login = :login_param2", params);
}
@After
public void tearDown() throws Exception {
}
@Test
public void testAddUpdateDelete() {
try {
User user = userDao.getUserByLogin(testLogin);
assertNull(user);
long counter = userDao.getCount();
user = new User();
user.setLogin(testLogin);
user.addPrivilege(new BasicPrivilege(0, PrivilegeType.ADD_MAP, user));
userDao.add(user);
long counter2 = userDao.getCount();
assertEquals(counter + 1, counter2);
user.setLogin(testLogin2);
userDao.update(user);
User user2 = userDao.getUserByLogin(testLogin2);
assertNotNull(user2);
userDao.delete(user);
user2 = userDao.getUserByLogin(testLogin2);
assertNull(user2);
counter2 = userDao.getCount();
assertEquals(counter, counter2);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testAddDeleteAdd() {
try {
User user = userDao.getUserByLogin(testLogin);
assertNull(user);
long counter = userDao.getCount();
user = new User();
user.setLogin(testLogin);
userDao.add(user);
long counter2 = userDao.getCount();
assertEquals(counter + 1, counter2);
userDao.delete(user);
User user2 = userDao.getUserByLogin(testLogin);
assertNull(user2);
user2 = new User();
user2.setLogin(testLogin);
userDao.add(user2);
assertNotNull(userDao.getUserByLogin(testLogin));
userDao.delete(user2);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetUserByLoginAndPassword() throws Exception {
try {
User user = new User();
user.setCryptedPassword(passwordEncoder.encode(testPasswd));
user.setLogin(testLogin);
userDao.add(user);
User user2 = userDao.getUserByLoginAndPassword(testLogin, testPasswd);
assertNotNull(user2);
assertEquals(user2.getId(), user.getId());
assertEquals(user2.getLogin(), user.getLogin());
assertEquals(user2.getCryptedPassword(), user.getCryptedPassword());
userDao.delete(user);
// after we remove it we shouldn't be able to get it
User user3 = userDao.getUserByLoginAndPassword(testLogin, testPasswd);
assertNull(user3);
// after we remove it we shouldn't be able to get the removed and modified
// object
User user4 = userDao.getUserByLoginAndPassword(user2.getLogin(), testPasswd);
assertNull(user4);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetUserByLoginAndEmptyPassword() throws Exception {
try {
User user = new User();
user.setCryptedPassword(passwordEncoder.encode(testPasswd));
user.setLogin(testLogin);
userDao.add(user);
User user2 = userDao.getUserByLoginAndPassword(testLogin, null);
assertNull(user2);
userDao.delete(user);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetUserByLogin() throws Exception {
try {
User user = new User();
user.setCryptedPassword(passwordEncoder.encode(testPasswd));
user.setLogin(testLogin);
userDao.add(user);
User user2 = userDao.getUserByLogin(testLogin);
assertNotNull(user2);
assertEquals(user2.getId(), user.getId());
assertEquals(user2.getLogin(), user.getLogin());
assertEquals(user2.getCryptedPassword(), user.getCryptedPassword());
user2 = userDao.getUserByLogin(testLogin2);
assertNull(user2);
userDao.delete(user);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetUserByEmail() throws Exception {
try {
User user = new User();
user.setCryptedPassword(passwordEncoder.encode(testPasswd));
user.setLogin(testLogin);
user.setEmail(testEmail);
userDao.add(user);
User user2 = userDao.getUserByEmail(testEmail);
assertNotNull(user2);
assertEquals(user2.getId(), user.getId());
assertEquals(user2.getLogin(), user.getLogin());
assertEquals(user2.getCryptedPassword(), user.getCryptedPassword());
user2 = userDao.getUserByEmail(testEmail + "sadas");
assertNull(user2);
userDao.delete(user);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetUserByNameSurname() throws Exception {
try {
User user = new User();
user.setCryptedPassword(passwordEncoder.encode(testPasswd));
user.setLogin(testLogin);
user.setEmail(testEmail);
user.setName(testName);
user.setSurname(testSurname);
userDao.add(user);
User user2 = userDao.getUserByNameSurname(testName + " " + testSurname);
assertNotNull(user2);
user2 = userDao.getUserByNameSurname(testName + " " + testSurname);
assertNull(user2);
userDao.delete(user);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testGetAll() throws Exception {
try {
assertTrue(userDao.getAll().size() > 0);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testUserWithAnnotatorSchema() throws Exception {
try {
User user = new User();
UserAnnotationSchema uas = new UserAnnotationSchema();
uas.setValidateMiriamTypes(true);
UserClassAnnotators ca = new UserClassAnnotators();
ca.setClassName(Species.class);
ca.addAnnotator(String.class);
ca.addAnnotator(Integer.class);
uas.addClassAnnotator(ca);
uas.addClassAnnotator(new UserClassAnnotators(String.class, new ArrayList<String>()));
UserClassValidAnnotations cva = new UserClassValidAnnotations();
cva.setClassName(Reaction.class);
cva.addValidMiriamType(MiriamType.HGNC);
cva.addValidMiriamType(MiriamType.HGNC_SYMBOL);
uas.addClassValidAnnotations(cva);
uas.addClassValidAnnotations(new UserClassValidAnnotations(String.class, new ArrayList<MiriamType>()));
uas.addClassValidAnnotations(new UserClassValidAnnotations(Integer.class, new ArrayList<MiriamType>()));
user.setAnnotationSchema(uas);
userDao.add(user);
userDao.evict(user);
User user2 = userDao.getById(user.getId());
assertNotNull(user2);
UserAnnotationSchema uas2 = user2.getAnnotationSchema();
assertNotNull(uas2);
assertEquals(2, uas2.getClassAnnotators().size());
assertEquals(3, uas2.getClassValidAnnotators().size());
assertEquals(Species.class.getCanonicalName(), uas.getClassAnnotators().get(0).getClassName());
assertEquals(String.class.getCanonicalName(), uas.getClassAnnotators().get(0).getAnnotators().get(0));
assertEquals(Integer.class.getCanonicalName(), uas.getClassAnnotators().get(0).getAnnotators().get(1));
assertEquals(Reaction.class.getCanonicalName(), uas.getClassValidAnnotators().get(0).getClassName());
assertEquals(MiriamType.HGNC, uas.getClassValidAnnotators().get(0).getValidMiriamTypes().get(0));
assertEquals(MiriamType.HGNC_SYMBOL, uas.getClassValidAnnotators().get(0).getValidMiriamTypes().get(1));
userDao.delete(user2);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
@Test
public void testUserWithAnnotatorSchemaGuiPreferences() throws Exception {
try {
User user = new User();
UserAnnotationSchema uas = new UserAnnotationSchema();
user.setAnnotationSchema(uas);
UserGuiPreference option = new UserGuiPreference();
option.setKey("key");
option.setValue("val");
uas.addGuiPreference(option);
userDao.add(user);
userDao.evict(user);
User user2 = userDao.getById(user.getId());
assertNotNull(user2);
UserAnnotationSchema uas2 = user2.getAnnotationSchema();
assertNotNull(uas2);
assertEquals(1, uas2.getGuiPreferences().size());
userDao.delete(user2);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment