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
    @SpringBeanByType
42
    @Qualifier("CdmRepository")
43
    protected ICdmRepository repo;
44

    
45
    @SpringBeanByType
46
    private IRegistrationWorkingSetService service;
47

    
48
    @Test
49
    @DataSet("RegistrationServiceTest.xml")
50
    public void testPageDTOs(){
51

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

    
55
        repo.authenticate("user1", "00000");
56

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

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

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

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

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

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

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

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

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

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

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

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

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

    
115

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

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

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

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

    
134
         // type designation status
135

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

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

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

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

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

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

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

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

    
179
    }
180

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

    
189
    @Override
190
    public void createTestDataSet() throws FileNotFoundException {}
191
}
(22-22/37)