- Timestamp:
- Apr 29, 2010, 5:01:51 AM (15 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/services/AssignedGroupService.groovy
r291 r514 146 146 return fail(code:"personGroup.not.found") 147 147 148 result.personsInGroup = result.personGroup.persons .sort { p1, p2 -> p1.firstName.compareToIgnoreCase(p2.firstName) }148 result.personsInGroup = result.personGroup.persons?.sort { p1, p2 -> p1.firstName.compareToIgnoreCase(p2.firstName) } 149 149 150 150 result.assignedGroupInstance = new AssignedGroup() -
trunk/grails-app/services/AssignedPersonService.groovy
r291 r514 146 146 return fail(code:"person.not.found") 147 147 148 result.groupsForPerson = result.person.personGroups .sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }148 result.groupsForPerson = result.person.personGroups?.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) } 149 149 150 150 result.assignedPersonInstance = new AssignedPerson() -
trunk/grails-app/services/TaskService.groovy
r510 r514 254 254 } 255 255 256 // Handle assignedPersons. 257 def taskAssignedPersons = AssignedPerson.findAllByTask(result.taskInstance) 258 taskAssignedPersons.each() { 259 result.taskInstance.removeFromAssignedPersons(it) 260 it.delete() 261 } 262 263 // Handle assignedGroups. 264 def taskAssignedGroups = AssignedGroup.findAllByTask(result.taskInstance) 265 taskAssignedGroups.each() { 266 result.taskInstance.removeFromAssignedGroups(it) 267 it.delete() 268 } 269 256 270 if(result.error) 257 271 return result -
trunk/test/integration/TaskSearchServiceTests.groovy
r512 r514 13 13 def dateUtilService 14 14 def taskSearchService 15 def assignedGroupService 16 def assignedPersonService 15 17 16 18 def taskA … … 64 66 } 65 67 68 69 /** 70 * Test GetTasks. 71 */ 66 72 void testGetTasks() { 67 // Todays tasks should be returned 73 // Todays tasks should be returned. 68 74 def tasks = taskSearchService.getTasks([:]) 69 75 assert tasks.totalCount == taskCount … … 110 116 } // testGetTasks() 111 117 118 /** 119 * Test GetPersonsTasks. 120 */ 121 void testGetPersonsTasks() { 122 123 def result 124 def p = [:] 125 126 // Todays tasks should be returned, since Person #1 is lead and created the tasks. 127 def tasks = taskSearchService.getPersonsTasks([:]) 128 assert tasks.totalCount == taskCount 129 130 // Tasks in the trash should not be returned. 131 taskA.trash = true 132 taskA.save(flush:true) 133 assert taskSearchService.getPersonsTasks([:]).totalCount == taskCount - 1 134 taskB.trash = true 135 taskB.save(flush:true) 136 assert taskSearchService.getPersonsTasks([:]).totalCount == taskCount - 2 137 138 // Restored tasks should be returned. 139 taskA.trash = false 140 taskA.save(flush:true) 141 assert taskSearchService.getPersonsTasks([:]).totalCount == taskCount - 1 142 taskB.trash = false 143 taskB.save(flush:true) 144 assert taskSearchService.getPersonsTasks([:]).totalCount == taskCount 145 146 // Tomorrows tasks should not be returned. 147 taskA.targetStartDate = dateUtilService.tomorrow 148 taskA.targetCompletionDate = dateUtilService.tomorrow 149 taskA.save(flush:true) 150 assert taskSearchService.getPersonsTasks([:]).totalCount == taskCount - 1 151 152 // Tomorrows tasks should be returned, if we ask for them. 153 assert taskSearchService.getPersonsTasks([:], null, dateUtilService.today, dateUtilService.tomorrow+1).totalCount == taskCount 154 155 // Yesterdays tasks should not be returned. 156 taskA.targetStartDate = dateUtilService.yesterday 157 taskA.targetCompletionDate = dateUtilService.yesterday 158 taskA.save(flush:true) 159 assert taskSearchService.getPersonsTasks([:]).totalCount == taskCount - 1 160 161 // Yesterdays tasks should be returned, if we ask for them. 162 assert taskSearchService.getPersonsTasks([:], null, dateUtilService.yesterday, dateUtilService.tomorrow).totalCount == taskCount 163 164 // Tasks that span today should be returned. 165 taskA.targetStartDate = dateUtilService.yesterday 166 taskA.targetCompletionDate = dateUtilService.tomorrow 167 taskA.save(flush:true) 168 assert taskSearchService.getPersonsTasks([:]).totalCount == taskCount 169 170 // Tasks for a different person should not be returned. 171 taskA.leadPerson = Person.get(2) 172 taskA.save(flush:true) 173 assert taskSearchService.getPersonsTasks([:]).totalCount == taskCount - 1 174 175 // Tasks for a specified leadPerson should be returned. 176 // But only if approved since this person did not create the tasks. 177 taskA.leadPerson = Person.get(2) 178 taskA.save(flush:true) 179 assert taskSearchService.getPersonsTasks([:], Person.get(2)).totalCount == 0 180 taskA.approved = true 181 taskA.save(flush:true) 182 assert taskSearchService.getPersonsTasks([:], Person.get(2)).totalCount == 1 183 // Moving the task to the trash, stops it being returned. 184 taskA.trash = true 185 taskA.save(flush:true) 186 assert taskSearchService.getPersonsTasks([:], Person.get(2)).totalCount == 0 187 188 // Tasks assigned to a person should be returned. 189 // But only if approved. 190 p = [person: Person.get(2), 191 task: taskB, 192 estimatedHour: 1, 193 estimatedMinute: 20] 194 assert assignedPersonService.save(p).error == null 195 assert taskSearchService.getPersonsTasks([:], Person.get(2)).totalCount == 0 196 taskB.approved = true 197 taskB.save(flush:true) 198 assert taskSearchService.getPersonsTasks([:], Person.get(2)).totalCount == 1 199 200 // Tasks assigned to a person via a group should be returned. 201 // But only if approved. 202 Person.get(2).addToPersonGroups(PersonGroup.read(1)).save(flush:true) 203 taskA.trash = false 204 taskA.approved = false 205 taskA.save(flush:true) 206 p = [personGroup: PersonGroup.read(1), 207 task: taskA, 208 estimatedHour: 2, 209 estimatedMinute: 30] 210 assert assignedGroupService.save(p).error == null 211 assert taskSearchService.getPersonsTasks([:], Person.get(2)).totalCount == 1 // Only taskB from above. 212 taskA.approved = true 213 taskA.save(flush:true) 214 assert taskSearchService.getPersonsTasks([:], Person.get(2)).totalCount == 2 // taskA and taskB. 215 216 } // testGetTasks() 217 112 218 } // end class
Note: See TracChangeset
for help on using the changeset viewer.