1   package org.itracker.persistence.dao;
2   
3   import java.util.List;
4   
5   import org.itracker.AbstractDependencyInjectionTest;
6   import org.itracker.model.Permission;
7   import org.itracker.model.Project;
8   import org.itracker.model.User;
9   import org.junit.Test;
10  import org.springframework.dao.DataAccessException;
11  
12  public class PermissionDAOImplTest extends AbstractDependencyInjectionTest {
13  
14      @SuppressWarnings("unused")
15  	private UserDAO userDAO;
16      @SuppressWarnings("unused")
17  	private ProjectDAO projectDAO;
18  	private PermissionDAO permissionDAO;
19  
20  	@Test
21  	public void testFindByUserId() {
22  
23  		List<Permission> permissions = permissionDAO.findByUserId(2);
24  
25  		assertNotNull("permissions", permissions);
26  		assertEquals(3, permissions.size());
27  
28  	}
29  
30  // TODO: fix implementation or test
31  	@Test
32  	public void testFailedFindByUserId() {
33  
34  		try {
35  			List<Permission> permissions = permissionDAO.findByUserId(-1);
36  			fail("Should have thrown a DataAccessException. Size of list:"
37  					+ permissions.size());
38  		} catch (DataAccessException e) {
39  			// Expected behavior
40  		}
41  	}
42  
43  	@Test
44  	public void testCreatePermission() {
45  
46  		Permission foundPermission = permissionDAO.findByUserId(2).get(1);
47  		User foundUser = foundPermission.getUser();
48  		Project foundProject = foundPermission.getProject();
49  
50  		assertNotNull(foundPermission);
51  		assertNotNull(foundUser);
52  		assertNotNull(foundProject);
53  		assertEquals(2, foundPermission.getPermissionType().intValue());
54  		assertEquals("admin_test1", foundUser.getLogin());
55  		assertEquals("test_name", foundProject.getName());
56  
57  	}
58  
59  	@Override
60  	public void onSetUp() throws Exception {
61  		super.onSetUp();
62  		userDAO = (UserDAO) applicationContext.getBean("userDAO");
63  		projectDAO = (ProjectDAO) applicationContext.getBean("projectDAO");
64  		permissionDAO = (PermissionDAO) applicationContext
65  				.getBean("permissionDAO");
66  	}
67  
68  	protected String[] getDataSetFiles() {
69  		return new String[] {
70                  "dataset/userpreferencesbean_dataset.xml",
71                  "dataset/userbean_dataset.xml",
72  				"dataset/projectbean_dataset.xml",
73  				"dataset/permissionbean_dataset.xml" };
74  	}
75  
76  	protected String[] getConfigLocations() {
77  		return new String[] { "application-context.xml" };
78  	}
79  
80  }