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 DataElementCategoryOptionComboStoreTest
41
extends DhisConvenienceTest
43
private DataElementCategoryOptionComboStore categoryOptionComboStore;
45
private DataElementCategory categoryA;
46
private DataElementCategory categoryB;
48
private DataElementCategoryCombo categoryComboA;
49
private DataElementCategoryCombo categoryComboB;
51
private DataElementCategoryOption categoryOptionA;
52
private DataElementCategoryOption categoryOptionB;
53
private DataElementCategoryOption categoryOptionC;
54
private DataElementCategoryOption categoryOptionD;
56
private DataElementCategoryOptionCombo categoryOptionComboA;
57
private DataElementCategoryOptionCombo categoryOptionComboB;
58
private DataElementCategoryOptionCombo categoryOptionComboC;
60
// -------------------------------------------------------------------------
62
// -------------------------------------------------------------------------
64
public void setUpTest()
67
categoryService = (DataElementCategoryService) getBean( DataElementCategoryService.ID );
69
categoryComboService = (DataElementCategoryComboService) getBean( DataElementCategoryComboService.ID );
71
categoryOptionService = (DataElementCategoryOptionService) getBean( DataElementCategoryOptionService.ID );
73
categoryOptionComboStore = (DataElementCategoryOptionComboStore) getBean( DataElementCategoryOptionComboStore.ID );
75
categoryOptionA = new DataElementCategoryOption( "Male" );
76
categoryOptionB = new DataElementCategoryOption( "Female" );
77
categoryOptionC = new DataElementCategoryOption( "0-20" );
78
categoryOptionD = new DataElementCategoryOption( "20-100" );
80
categoryOptionService.addDataElementCategoryOption( categoryOptionA );
81
categoryOptionService.addDataElementCategoryOption( categoryOptionB );
82
categoryOptionService.addDataElementCategoryOption( categoryOptionC );
83
categoryOptionService.addDataElementCategoryOption( categoryOptionD );
85
categoryA = new DataElementCategory( "Gender" );
86
categoryB = new DataElementCategory( "Agegroup" );
88
categoryA.getCategoryOptions().add( categoryOptionA );
89
categoryA.getCategoryOptions().add( categoryOptionB );
90
categoryB.getCategoryOptions().add( categoryOptionC );
91
categoryB.getCategoryOptions().add( categoryOptionD );
93
categoryService.addDataElementCategory( categoryA );
94
categoryService.addDataElementCategory( categoryB );
96
categoryComboA = new DataElementCategoryCombo( "GenderAgegroup" );
97
categoryComboB = new DataElementCategoryCombo( "Gender" );
99
categoryComboA.getCategories().add( categoryA );
100
categoryComboA.getCategories().add( categoryB );
101
categoryComboB.getCategories().add( categoryA );
103
categoryComboService.addDataElementCategoryCombo( categoryComboA );
104
categoryComboService.addDataElementCategoryCombo( categoryComboB );
107
// -------------------------------------------------------------------------
109
// -------------------------------------------------------------------------
111
public void testAddGetDataElementCategoryOptionCombo()
113
categoryOptionComboA = new DataElementCategoryOptionCombo();
115
Set<DataElementCategoryOption> categoryOptions = new HashSet<DataElementCategoryOption>();
117
categoryOptions.add( categoryOptionA );
118
categoryOptions.add( categoryOptionB );
120
categoryOptionComboA.setCategoryCombo( categoryComboA );
121
categoryOptionComboA.setCategoryOptions( categoryOptions );
123
int id = categoryOptionComboStore.addDataElementCategoryOptionCombo( categoryOptionComboA );
125
categoryOptionComboA = categoryOptionComboStore.getDataElementCategoryOptionCombo( id );
127
assertNotNull( categoryOptionComboA );
128
assertEquals( categoryComboA, categoryOptionComboA.getCategoryCombo() );
129
assertEquals( categoryOptions, categoryOptionComboA.getCategoryOptions() );
132
public void testUpdateGetDataElementCategoryOptionCombo()
134
categoryOptionComboA = new DataElementCategoryOptionCombo();
136
Set<DataElementCategoryOption> categoryOptions = new HashSet<DataElementCategoryOption>();
138
categoryOptions.add( categoryOptionA );
139
categoryOptions.add( categoryOptionB );
141
categoryOptionComboA.setCategoryCombo( categoryComboA );
142
categoryOptionComboA.setCategoryOptions( categoryOptions );
144
int id = categoryOptionComboStore.addDataElementCategoryOptionCombo( categoryOptionComboA );
146
categoryOptionComboA = categoryOptionComboStore.getDataElementCategoryOptionCombo( id );
148
assertNotNull( categoryOptionComboA );
149
assertEquals( categoryComboA, categoryOptionComboA.getCategoryCombo() );
150
assertEquals( categoryOptions, categoryOptionComboA.getCategoryOptions() );
152
categoryOptionComboA.setCategoryCombo( categoryComboB );
154
categoryOptionComboStore.updateDataElementCategoryOptionCombo( categoryOptionComboA );
156
categoryOptionComboA = categoryOptionComboStore.getDataElementCategoryOptionCombo( id );
158
assertNotNull( categoryOptionComboA );
159
assertEquals( categoryComboB, categoryOptionComboA.getCategoryCombo() );
160
assertEquals( categoryOptions, categoryOptionComboA.getCategoryOptions() );
163
public void testDeleteDataElementCategoryOptionCombo()
165
categoryOptionComboA = new DataElementCategoryOptionCombo();
166
categoryOptionComboB = new DataElementCategoryOptionCombo();
167
categoryOptionComboC = new DataElementCategoryOptionCombo();
169
int idA = categoryOptionComboStore.addDataElementCategoryOptionCombo( categoryOptionComboA );
170
int idB = categoryOptionComboStore.addDataElementCategoryOptionCombo( categoryOptionComboB );
171
int idC = categoryOptionComboStore.addDataElementCategoryOptionCombo( categoryOptionComboC );
173
assertNotNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idA ) );
174
assertNotNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idB ) );
175
assertNotNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idC ) );
177
categoryOptionComboStore.deleteDataElementCategoryOptionCombo( categoryOptionComboStore.getDataElementCategoryOptionCombo( idA ) );
179
assertNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idA ) );
180
assertNotNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idB ) );
181
assertNotNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idC ) );
183
categoryOptionComboStore.deleteDataElementCategoryOptionCombo( categoryOptionComboStore.getDataElementCategoryOptionCombo( idB ) );
185
assertNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idA ) );
186
assertNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idB ) );
187
assertNotNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idC ) );
189
categoryOptionComboStore.deleteDataElementCategoryOptionCombo( categoryOptionComboStore.getDataElementCategoryOptionCombo( idC ) );
191
assertNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idA ) );
192
assertNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idB ) );
193
assertNull( categoryOptionComboStore.getDataElementCategoryOptionCombo( idC ) );
196
public void testGetAllDataElementCategoryOptionCombos()
198
categoryOptionComboA = new DataElementCategoryOptionCombo();
199
categoryOptionComboB = new DataElementCategoryOptionCombo();
200
categoryOptionComboC = new DataElementCategoryOptionCombo();
202
categoryOptionComboStore.addDataElementCategoryOptionCombo( categoryOptionComboA );
203
categoryOptionComboStore.addDataElementCategoryOptionCombo( categoryOptionComboB );
204
categoryOptionComboStore.addDataElementCategoryOptionCombo( categoryOptionComboC );
206
Collection<DataElementCategoryOptionCombo> categoryOptionCombos =
207
categoryOptionComboStore.getAllDataElementCategoryOptionCombos();
209
assertNotNull( categoryOptionCombos );
210
assertEquals( 4, categoryOptionCombos.size() ); // Including default category option combo