1
1
package au.org.ala.merit
2
2
3
+ import au.org.ala.merit.config.ProgramConfig
3
4
import grails.converters.JSON
4
5
import net.sf.json.JSONNull
5
6
import org.apache.http.HttpStatus
@@ -13,12 +14,14 @@ class SiteControllerSpec extends Specification implements ControllerUnitTest<Sit
13
14
UserService userService = Mock (UserService )
14
15
ProjectService projectService = Mock (ProjectService )
15
16
SettingService settingService = Mock (SettingService )
17
+ ProjectConfigurationService projectConfigurationService = Mock (ProjectConfigurationService )
16
18
17
19
def setup () {
18
20
controller. siteService = siteService
19
21
controller. userService = userService
20
22
controller. projectService = projectService
21
23
controller. settingService = settingService
24
+ controller. projectConfigurationService = projectConfigurationService
22
25
23
26
// From Bootstrap.groovy
24
27
JSON . createNamedConfig(" nullSafe" , { cfg ->
@@ -260,4 +263,26 @@ class SiteControllerSpec extends Specification implements ControllerUnitTest<Sit
260
263
and :
261
264
model. siteTypes. collect{it. value} == [' worksArea' , ' surveyArea' , ' projectArea' ]
262
265
}
266
+
267
+ def " A user can view a site if they can view any of the projects associated with that site" () {
268
+ setup :
269
+ Map project = [projectId :' p1' , name :' project' , sites :[[name :' name' , externalId :' e1' , type :' projectArea' ]]]
270
+ String siteId = ' s1'
271
+ Map site = [siteId :siteId, name :" Site 1" , projects :[project]]
272
+
273
+ when :
274
+ Map model = controller. index(siteId)
275
+
276
+ then :
277
+ 1 * siteService. get(siteId) >> site
278
+ 1 * userService. getUser() >> [userId :" u1" ]
279
+ 1 * projectService. canUserViewProject(" u1" , " p1" ) >> true
280
+ 1 * projectService. get(" p1" ) >> project
281
+ 1 * projectConfigurationService. getProjectConfiguration(project) >> [projectTemplate :ProjectController . RLP_TEMPLATE ]
282
+
283
+ and :
284
+ model. site == site
285
+ model. project == project
286
+
287
+ }
263
288
}
0 commit comments