Project

General

Profile

Download (10.5 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2019 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.api.service;
10

    
11
import static org.junit.Assert.assertEquals;
12
import static org.junit.Assert.assertNotNull;
13

    
14
import java.io.FileNotFoundException;
15
import java.util.Arrays;
16
import java.util.UUID;
17

    
18
import org.junit.Test;
19
import org.springframework.beans.factory.annotation.Qualifier;
20
import org.unitils.dbunit.annotation.DataSet;
21
import org.unitils.spring.annotation.SpringBeanByType;
22

    
23
import eu.etaxonomy.cdm.api.application.ICdmRepository;
24
import eu.etaxonomy.cdm.api.service.dto.RegistrationDTO;
25
import eu.etaxonomy.cdm.api.service.pager.Pager;
26
import eu.etaxonomy.cdm.api.service.registration.IRegistrationWorkingSetService;
27
import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus;
28
import eu.etaxonomy.cdm.model.name.RegistrationStatus;
29
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
30
import eu.etaxonomy.cdm.persistence.query.OrderHint;
31
import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;
32
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTestWithSecurity;
33

    
34
/**
35
 * @author a.kohlbecker
36
 * @since Jun 28, 2019
37
 *
38
 */
39
public class RegistrationWorkingSetServiceTest extends CdmTransactionalIntegrationTestWithSecurity {
40

    
41

    
42
    @SpringBeanByType
43
    @Qualifier("CdmRepository")
44
    protected ICdmRepository repo;
45

    
46
    @SpringBeanByType
47
    private IRegistrationWorkingSetService service;
48

    
49

    
50
    @Test
51
    @DataSet("RegistrationServiceTest.xml")
52
    public void testPageDTOs(){
53

    
54
        OrderHint orderBySpecificIdentifier = new OrderHint("specificIdentifier", SortOrder.ASCENDING);
55
        OrderHint orderById = new OrderHint("id", SortOrder.ASCENDING);
56

    
57
        repo.authenticate("user1", "00000");
58

    
59
        Pager<RegistrationDTO> pager = service.pageDTOs((UUID)null, null, null, null, null, null, null, null, null);
60
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
61
        assertEquals("with authenticated user expecting all 3 Registrations", 4l, pager.getCount().longValue());
62

    
63
        pager = service.pageDTOs(RegistrationServiceTest.USER1_UUID, null, null, null, null, null, null, null, null);
64
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
65
        assertEquals(2l, pager.getCount().longValue());
66

    
67
        pager = service.pageDTOs(RegistrationServiceTest.USER2_UUID, null, null, null, null, null, null, null, null);
68
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
69
        assertEquals(2l, pager.getCount().longValue());
70

    
71
        // status filter
72
        pager = service.pageDTOs((UUID)null, Arrays.asList(RegistrationStatus.PREPARATION), null, null, null, null, null, null, null);
73
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
74
        assertEquals(1l, pager.getCount().longValue());
75
        assertEquals(RegistrationStatus.PREPARATION, pager.getRecords().get(0).getStatus());
76

    
77
        pager = service.pageDTOs((UUID)null, Arrays.asList(RegistrationStatus.PREPARATION, RegistrationStatus.PUBLISHED), null, null, null, null, null, null, null);
78
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
79
        assertEquals(2l, pager.getCount().longValue());
80

    
81
        // status filter with submitter
82
        pager = service.pageDTOs(RegistrationServiceTest.USER1_UUID, Arrays.asList(RegistrationStatus.PREPARATION, RegistrationStatus.PUBLISHED), null, null, null, null, null, null, null);
83
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
84
        assertEquals(2l, pager.getCount().longValue());
85

    
86
        pager = service.pageDTOs(RegistrationServiceTest.USER2_UUID, Arrays.asList(RegistrationStatus.PREPARATION, RegistrationStatus.PUBLISHED), null, null, null, null, null, null, null);
87
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
88
        assertEquals(0l, pager.getCount().longValue());
89

    
90
        pager = service.pageDTOs(RegistrationServiceTest.USER2_UUID, Arrays.asList(RegistrationStatus.CURATION), null, null, null, null, null, null, null);
91
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
92
        assertEquals(1l, pager.getCount().longValue());
93

    
94
        // identifier filter
95
        pager = service.pageDTOs((UUID)null, null, "100", null, null, null, null, null, null);
96
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
97
        assertEquals(4l, pager.getCount().longValue());
98

    
99
        pager = service.pageDTOs((UUID)null, null, "test/1001", null, null, null, null, null, null);
100
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
101
        assertEquals(1l, pager.getCount().longValue());
102

    
103
        // identifier filter with submitter
104
        pager = service.pageDTOs(RegistrationServiceTest.USER1_UUID, null, "100", null, null, null, null, null, null);
105
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
106
        assertEquals(2l, pager.getCount().longValue());
107

    
108
        pager = service.pageDTOs(RegistrationServiceTest.USER2_UUID, null, "1002", null, null, null, null, null, null);
109
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
110
        assertEquals(1l, pager.getCount().longValue());
111

    
112
        // taxon name filter
113
        pager = service.pageDTOs((UUID)null, null, null, "Digitalus", null, null, null, null, null);
114
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
115
        assertEquals(4l, pager.getCount().longValue());
116

    
117

    
118
        pager = service.pageDTOs((UUID)null, null, null, "Digitalus prim", null, null, null, null, null);
119
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
120
        assertEquals(1l, pager.getCount().longValue());
121

    
122
        // taxon name filter with user
123
        pager = service.pageDTOs(RegistrationServiceTest.USER2_UUID, null, null, "Digitalus", null, null, null, null, null);
124
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
125
        assertEquals(2l, pager.getCount().longValue());
126

    
127
        // taxon name filter with user and status
128
        pager = service.pageDTOs(RegistrationServiceTest.USER1_UUID, Arrays.asList(RegistrationStatus.PREPARATION), null, "Digitalus", null, null, null, null, null);
129
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
130
        assertEquals(1l, pager.getCount().longValue());
131

    
132
        pager = service.pageDTOs(RegistrationServiceTest.USER1_UUID, Arrays.asList(RegistrationStatus.PREPARATION, RegistrationStatus.PUBLISHED), "1001", "Digitalus", null, null, null, null, null);
133
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
134
        assertEquals(1l, pager.getCount().longValue());
135

    
136
         // type designation status
137

    
138
        // assure the terms are loaded
139
        assertNotNull(SpecimenTypeDesignationStatus.HOLOTYPE());
140
        assertNotNull(NameTypeDesignationStatus.TAUTONYMY());
141

    
142
        pager = service.pageDTOs((UUID)null, null, null, null, null,
143
                Arrays.asList(SpecimenTypeDesignationStatus.HOLOTYPE().getUuid()), null, null, Arrays.asList(orderById));
144
        assertEquals(1l, pager.getCount().longValue());
145
        assertEquals(RegistrationServiceTest.STD1_UUID, pager.getRecords().get(0).registration().getTypeDesignations().iterator().next().getUuid());
146

    
147
        pager = service.pageDTOs((UUID)null, null, null, null, null,
148
                Arrays.asList(NameTypeDesignationStatus.TAUTONYMY().getUuid()), null, null, Arrays.asList(orderById));
149
        assertEquals(1l, pager.getCount().longValue());
150
        assertEquals(RegistrationServiceTest.NDT1_UUID, pager.getRecords().get(0).registration().getTypeDesignations().iterator().next().getUuid());
151

    
152
        pager = service.pageDTOs((UUID)null, null, null, null, null,
153
                Arrays.asList(SpecimenTypeDesignationStatus.HOLOTYPE().getUuid(), NameTypeDesignationStatus.TAUTONYMY().getUuid()), null, null, Arrays.asList(orderById));
154
        assertEquals(2l, pager.getCount().longValue());
155
        // TODO order is not yet working!
156
        assertEquals(RegistrationServiceTest.STD1_UUID, pager.getRecords().get(0).registration().getTypeDesignations().iterator().next().getUuid());
157
        assertEquals(RegistrationServiceTest.NDT1_UUID, pager.getRecords().get(1).registration().getTypeDesignations().iterator().next().getUuid());
158

    
159
        // type designation status with user
160
        pager = service.pageDTOs(RegistrationServiceTest.USER2_UUID, null, null, null, null,
161
                Arrays.asList(SpecimenTypeDesignationStatus.HOLOTYPE().getUuid(), NameTypeDesignationStatus.TAUTONYMY().getUuid()), null, null, Arrays.asList(orderById));
162
        assertEquals(1l, pager.getCount().longValue());
163
        assertEquals(RegistrationServiceTest.NDT1_UUID, pager.getRecords().get(0).registration().getTypeDesignations().iterator().next().getUuid());
164

    
165
        // type designation status with name
166
        pager = service.pageDTOs((UUID)null, null, null, "Digital", null,
167
                Arrays.asList(SpecimenTypeDesignationStatus.HOLOTYPE().getUuid(), NameTypeDesignationStatus.TAUTONYMY().getUuid()), null, null, Arrays.asList(orderById));
168
        assertEquals(2l, pager.getCount().longValue());
169
        assertEquals(RegistrationServiceTest.STD1_UUID, pager.getRecords().get(0).registration().getTypeDesignations().iterator().next().getUuid());
170
        assertEquals(RegistrationServiceTest.NDT1_UUID, pager.getRecords().get(1).registration().getTypeDesignations().iterator().next().getUuid());
171

    
172
        // reference
173
        pager = service.pageDTOs((UUID)null, null, null, null,
174
                "book1", null, null, null, Arrays.asList(orderBySpecificIdentifier));
175
        assertEquals(2l, pager.getCount().longValue());
176

    
177
        pager = service.pageDTOs((UUID)null, null, null, null,
178
                "book*", null, null, null, Arrays.asList(orderBySpecificIdentifier));
179
        assertEquals(4l, pager.getCount().longValue());
180

    
181
    }
182

    
183
    @Test
184
    @DataSet("RegistrationServiceTest.xml")
185
    public void testPageDTOs_unautheticated(){
186
        Pager<RegistrationDTO> pager = service.pageDTOs((UUID)null, null, null, null, null, null, null, null, null);
187
        assertEquals(pager.getRecords().size(), pager.getCount().intValue());
188
        assertEquals("expecting only the PUBLISHED Registration, since the user is not authenticated", 1l, pager.getCount().longValue());
189
    }
190

    
191

    
192

    
193
    @Override
194
    public void createTestDataSet() throws FileNotFoundException {
195
        // Reusing RegistrationServiceTest.xml
196
    }
197

    
198
}
(23-23/39)