1
package org.hisp.dhis.dataelement;
4
* Copyright (c) 2004-2007, University of Oslo
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
* * Redistributions of source code must retain the above copyright notice, this
10
* list of conditions and the following disclaimer.
11
* * Redistributions in binary form must reproduce the above copyright notice,
12
* this list of conditions and the following disclaimer in the documentation
13
* and/or other materials provided with the distribution.
14
* * Neither the name of the HISP project nor the names of its contributors may
15
* be used to endorse or promote products derived from this software without
16
* specific prior written permission.
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
22
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
25
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
import java.util.Collection;
31
import java.util.HashSet;
34
import org.hisp.dhis.DhisConvenienceTest;
37
* @author Lars Helge Overland
40
public class DataElementCategoryOptionComboServiceTest
41
extends DhisConvenienceTest
43
private DataElementCategory categoryA;
44
private DataElementCategory categoryB;
46
private DataElementCategoryCombo categoryComboA;
47
private DataElementCategoryCombo categoryComboB;
49
private DataElementCategoryOption categoryOptionA;
50
private DataElementCategoryOption categoryOptionB;
51
private DataElementCategoryOption categoryOptionC;
52
private DataElementCategoryOption categoryOptionD;
54
private DataElementCategoryOptionCombo categoryOptionComboA;
55
private DataElementCategoryOptionCombo categoryOptionComboB;
56
private DataElementCategoryOptionCombo categoryOptionComboC;
58
// -------------------------------------------------------------------------
60
// -------------------------------------------------------------------------
62
public void setUpTest()
65
categoryService = (DataElementCategoryService) getBean( DataElementCategoryService.ID );
67
categoryComboService = (DataElementCategoryComboService) getBean( DataElementCategoryComboService.ID );
69
categoryOptionService = (DataElementCategoryOptionService) getBean( DataElementCategoryOptionService.ID );
71
categoryOptionComboService = (DataElementCategoryOptionComboService) getBean( DataElementCategoryOptionComboService.ID );
73
categoryOptionA = new DataElementCategoryOption( "Male" );
74
categoryOptionB = new DataElementCategoryOption( "Female" );
75
categoryOptionC = new DataElementCategoryOption( "0-20" );
76
categoryOptionD = new DataElementCategoryOption( "20-100" );
78
categoryOptionService.addDataElementCategoryOption( categoryOptionA );
79
categoryOptionService.addDataElementCategoryOption( categoryOptionB );
80
categoryOptionService.addDataElementCategoryOption( categoryOptionC );
81
categoryOptionService.addDataElementCategoryOption( categoryOptionD );
83
categoryA = new DataElementCategory( "Gender" );
84
categoryB = new DataElementCategory( "Agegroup" );
86
categoryA.getCategoryOptions().add( categoryOptionA );
87
categoryA.getCategoryOptions().add( categoryOptionB );
88
categoryB.getCategoryOptions().add( categoryOptionC );
89
categoryB.getCategoryOptions().add( categoryOptionD );
91
categoryService.addDataElementCategory( categoryA );
92
categoryService.addDataElementCategory( categoryB );
94
categoryComboA = new DataElementCategoryCombo( "GenderAgegroup" );
95
categoryComboB = new DataElementCategoryCombo( "Gender" );
97
categoryComboA.getCategories().add( categoryA );
98
categoryComboA.getCategories().add( categoryB );
99
categoryComboB.getCategories().add( categoryA );
101
categoryComboService.addDataElementCategoryCombo( categoryComboA );
102
categoryComboService.addDataElementCategoryCombo( categoryComboB );
105
// -------------------------------------------------------------------------
107
// -------------------------------------------------------------------------
109
public void testAddGetDataElementCategoryOptionCombo()
111
categoryOptionComboA = new DataElementCategoryOptionCombo();
113
Set<DataElementCategoryOption> categoryOptions = new HashSet<DataElementCategoryOption>();
115
categoryOptions.add( categoryOptionA );
116
categoryOptions.add( categoryOptionB );
118
categoryOptionComboA.setCategoryCombo( categoryComboA );
119
categoryOptionComboA.setCategoryOptions( categoryOptions );
121
int id = categoryOptionComboService.addDataElementCategoryOptionCombo( categoryOptionComboA );
123
categoryOptionComboA = categoryOptionComboService.getDataElementCategoryOptionCombo( id );
125
assertNotNull( categoryOptionComboA );
126
assertEquals( categoryComboA, categoryOptionComboA.getCategoryCombo() );
127
assertEquals( categoryOptions, categoryOptionComboA.getCategoryOptions() );
130
public void testUpdateGetDataElementCategoryOptionCombo()
132
categoryOptionComboA = new DataElementCategoryOptionCombo();
134
Set<DataElementCategoryOption> categoryOptions = new HashSet<DataElementCategoryOption>();
136
categoryOptions.add( categoryOptionA );
137
categoryOptions.add( categoryOptionB );
139
categoryOptionComboA.setCategoryCombo( categoryComboA );
140
categoryOptionComboA.setCategoryOptions( categoryOptions );
142
int id = categoryOptionComboService.addDataElementCategoryOptionCombo( categoryOptionComboA );
144
categoryOptionComboA = categoryOptionComboService.getDataElementCategoryOptionCombo( id );
146
assertNotNull( categoryOptionComboA );
147
assertEquals( categoryComboA, categoryOptionComboA.getCategoryCombo() );
148
assertEquals( categoryOptions, categoryOptionComboA.getCategoryOptions() );
150
categoryOptionComboA.setCategoryCombo( categoryComboB );
152
categoryOptionComboService.updateDataElementCategoryOptionCombo( categoryOptionComboA );
154
categoryOptionComboA = categoryOptionComboService.getDataElementCategoryOptionCombo( id );
156
assertNotNull( categoryOptionComboA );
157
assertEquals( categoryComboB, categoryOptionComboA.getCategoryCombo() );
158
assertEquals( categoryOptions, categoryOptionComboA.getCategoryOptions() );
161
public void testDeleteDataElementCategoryOptionCombo()
163
categoryOptionComboA = new DataElementCategoryOptionCombo();
164
categoryOptionComboB = new DataElementCategoryOptionCombo();
165
categoryOptionComboC = new DataElementCategoryOptionCombo();
167
int idA = categoryOptionComboService.addDataElementCategoryOptionCombo( categoryOptionComboA );
168
int idB = categoryOptionComboService.addDataElementCategoryOptionCombo( categoryOptionComboB );
169
int idC = categoryOptionComboService.addDataElementCategoryOptionCombo( categoryOptionComboC );
171
assertNotNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idA ) );
172
assertNotNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idB ) );
173
assertNotNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idC ) );
175
categoryOptionComboService.deleteDataElementCategoryOptionCombo( categoryOptionComboService.getDataElementCategoryOptionCombo( idA ) );
177
assertNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idA ) );
178
assertNotNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idB ) );
179
assertNotNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idC ) );
181
categoryOptionComboService.deleteDataElementCategoryOptionCombo( categoryOptionComboService.getDataElementCategoryOptionCombo( idB ) );
183
assertNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idA ) );
184
assertNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idB ) );
185
assertNotNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idC ) );
187
categoryOptionComboService.deleteDataElementCategoryOptionCombo( categoryOptionComboService.getDataElementCategoryOptionCombo( idC ) );
189
assertNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idA ) );
190
assertNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idB ) );
191
assertNull( categoryOptionComboService.getDataElementCategoryOptionCombo( idC ) );
194
public void testGetAllDataElementCategoryOptionCombos()
196
categoryOptionComboA = new DataElementCategoryOptionCombo();
197
categoryOptionComboB = new DataElementCategoryOptionCombo();
198
categoryOptionComboC = new DataElementCategoryOptionCombo();
200
categoryOptionComboService.addDataElementCategoryOptionCombo( categoryOptionComboA );
201
categoryOptionComboService.addDataElementCategoryOptionCombo( categoryOptionComboB );
202
categoryOptionComboService.addDataElementCategoryOptionCombo( categoryOptionComboC );
204
Collection<DataElementCategoryOptionCombo> categoryOptionCombos =
205
categoryOptionComboService.getAllDataElementCategoryOptionCombos();
207
assertNotNull( categoryOptionCombos );
208
assertEquals( 4, categoryOptionCombos.size() ); // Including default category option combo