|
| 1 | +package au.org.ala.merit.reports |
| 2 | + |
| 3 | +import au.org.ala.merit.ProjectService |
| 4 | +import au.org.ala.merit.ActivityService |
| 5 | +import spock.lang.Specification |
| 6 | + |
| 7 | +class NhtOutputReportDataSpec extends Specification { |
| 8 | + |
| 9 | + NHTOutputReportData reportData = new NHTOutputReportData() |
| 10 | + ProjectService projectService = Mock(ProjectService) |
| 11 | + |
| 12 | + void setup() { |
| 13 | + reportData.projectService = projectService |
| 14 | + } |
| 15 | + |
| 16 | + def "The context data doesn't need project data sets to exist"() { |
| 17 | + |
| 18 | + setup: |
| 19 | + Map project = [:] |
| 20 | + List protocols = [[name:'test', externalId:'e1']] |
| 21 | + |
| 22 | + when: |
| 23 | + Map contextData = reportData.getContextData(project) |
| 24 | + |
| 25 | + then: |
| 26 | + 1 * projectService.listProjectProtocols(project) >> protocols |
| 27 | + contextData.protocols.size() == 1 |
| 28 | + contextData.protocols[0].label == 'test' |
| 29 | + contextData.protocols[0].value == 'e1' |
| 30 | + project.custom == null |
| 31 | + |
| 32 | + } |
| 33 | + |
| 34 | + |
| 35 | + def "Project data sets will be filtered to only finished data sets"() { |
| 36 | + setup: |
| 37 | + List dataSets = [[dataSetId:'d1', progress:ActivityService.PROGRESS_FINISHED, projectOutcomes:['a','b','c']], |
| 38 | + [dataSetId:'d2', progress:ActivityService.PROGRESS_FINISHED, projectOutcomes:['d','e','f']], |
| 39 | + [dataSetId:'d3', progress:ActivityService.PROGRESS_STARTED, projectOutcomes:['g','h','i']], |
| 40 | + [dataSetId:'d4', progress:ActivityService.PROGRESS_FINISHED, projectOutcomes:['j','k','l']]] |
| 41 | + Map project = [custom:[dataSets:dataSets]] |
| 42 | + List protocols = [[name:'test', externalId:'e1']] |
| 43 | + |
| 44 | + when: |
| 45 | + Map contextData = reportData.getContextData(project) |
| 46 | + |
| 47 | + then: |
| 48 | + 1 * projectService.listProjectProtocols(project) >> protocols |
| 49 | + project.custom.dataSets.size() == 3 |
| 50 | + project.custom.dataSets*.dataSetId == ['d1','d2','d4'] |
| 51 | + } |
| 52 | + |
| 53 | +} |
0 commit comments