2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
5 package org.collectionspace.services.authentication.test;
7 import java.lang.reflect.Method;
9 import javax.persistence.EntityManager;
10 import javax.persistence.EntityManagerFactory;
11 import javax.persistence.Persistence;
13 import javax.persistence.Query;
14 import org.collectionspace.services.authentication.User;
15 import org.collectionspace.services.authentication.Role;
16 import org.collectionspace.services.authentication.UserRole;
18 import org.testng.annotations.AfterMethod;
19 import org.testng.annotations.BeforeMethod;
20 import org.testng.annotations.Test;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25 import org.testng.Assert;
26 import org.testng.annotations.DataProvider;
32 public class DefaultIdentityProviderTest {
34 private final Logger logger = LoggerFactory.getLogger(DefaultIdentityProviderTest.class);
35 private EntityManagerFactory emf;
36 private EntityManager em;
42 emf = Persistence.createEntityManagerFactory("org.collectionspace.services.authentication");
44 em = emf.createEntityManager();
45 // if (logger.isDebugEnabled()) {
46 // logger.debug("created entity manager");
51 public void cleanup() {
57 @SuppressWarnings("unchecked")
58 @Test(dataProvider = "testName", dataProviderClass = DefaultIdentityProviderTest.class)
59 public void create(String testName) throws Exception {
60 User user = new User();
61 user.setUsername("sanjay");
62 user.setPasswd("uiouio");
63 em.getTransaction().begin();
65 // Commit the transaction
66 em.getTransaction().commit();
67 if (logger.isDebugEnabled()) {
68 logger.debug("created user " +
69 " username=" + user.getUsername() +
70 " password=" + user.getPasswd());
74 @SuppressWarnings("unchecked")
75 @Test(dataProvider = "testName", dataProviderClass = DefaultIdentityProviderTest.class,
76 dependsOnMethods = {"create"})
77 public void read(String testName) throws Exception {
78 User user = findUser("sanjay");
79 Assert.assertNotNull(user);
80 if (logger.isDebugEnabled()) {
81 logger.debug("read user " +
82 " username=" + user.getUsername());
86 private User findUser(String userName) throws Exception {
87 Query q = em.createQuery("select a from org.collectionspace.services.authentication.User a where a.username = :username");
88 q.setParameter("username", userName);
89 return (User) q.getSingleResult();
93 // @SuppressWarnings("unchecked")
94 // @Test(dataProvider = "testName", dataProviderClass = DefaultIdentityProviderTest.class,
95 // dependsOnMethods = {"read"})
96 // public void update(String testName) throws Exception {
97 // Query q = em.createQuery("update org.collectionspace.services.authentication.User set email= :email where csid=:csid");
98 // q.setParameter("email", "sanjay@berkeley.edu");
99 // q.setParameter("csid", id);
100 // em.getTransaction().begin();
101 // int no = q.executeUpdate();
102 // // Commit the transaction
103 // em.getTransaction().commit();
104 // Assert.assertEquals(no, 1);
105 // Users account = findAccount("sanjay");
106 // if (logger.isDebugEnabled()) {
107 // logger.debug("updated account " +
108 // " first name=" + account.getFirstName() +
109 // " email=" + account.getEmail());
112 @SuppressWarnings("unchecked")
113 @Test(dataProvider = "testName", dataProviderClass = DefaultIdentityProviderTest.class,
114 dependsOnMethods = {"read"}) //FIXME change to update
115 public void delete(String testName) throws Exception {
116 Query q = em.createQuery("delete from org.collectionspace.services.authentication.User where username=:username");
117 q.setParameter("username", "sanjay");
119 em.getTransaction().begin();
120 int no = q.executeUpdate();
122 if (logger.isDebugEnabled()) {
123 logger.debug("deleting user " +
124 " username=" + "sanjay");
126 // Commit the transaction
127 em.getTransaction().commit();
128 Assert.assertEquals(no, 1);
129 if (logger.isDebugEnabled()) {
130 logger.debug("deleted user " +
131 " username=" + "sanjay");
136 * Returns the name of the currently running test.
138 * Note: although the return type is listed as Object[][],
139 * this method instead returns a String.
141 * @param m The currently running test method.
143 * @return The name of the currently running test method.
145 @DataProvider(name = "testName")
146 public static Object[][] testName(Method m) {
147 return new Object[][]{
148 new Object[]{m.getName()}