Project

General

Profile

1
package unitest;
2

    
3
import eu.dnetlib.goldoa.domain.*;
4
import eu.dnetlib.goldoa.service.*;
5
import eu.dnetlib.goldoa.service.utils.EmailUtils;
6
import org.apache.commons.codec.digest.DigestUtils;
7
import org.junit.Test;
8
import org.junit.runner.RunWith;
9
import org.springframework.beans.factory.annotation.Autowired;
10
import org.springframework.test.annotation.Rollback;
11
import org.springframework.test.context.ContextConfiguration;
12
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
13

    
14
import javax.mail.MessagingException;
15
import javax.transaction.Transactional;
16
import java.io.IOException;
17
import java.util.ArrayList;
18
import java.util.Date;
19
import java.util.List;
20

    
21
/**
22
 * Created by panagiotis on 2/2/2017.
23
 */
24
@RunWith( SpringJUnit4ClassRunner.class )
25
@ContextConfiguration(locations = "classpath:applicationContext-goldoa-service-test.xml")
26
public class ManageRequestsTest {
27

    
28
    @Autowired
29
    UserManager um;
30
    @Autowired
31
    ProjectManager pm;
32
    @Autowired
33
    EligibilityManager em;
34
    @Autowired
35
    PublicationManager pum;
36
    @Autowired
37
    OrganizationManager om;
38
    @Autowired
39
    SearchManager sm;
40
    @Autowired
41
    RequestManager rm;
42
    @Autowired
43
    JournalManager jm;
44
    @Autowired
45
    PublisherManager pubm;
46
    @Autowired
47
    InvoiceManager im;
48
    @Autowired
49
    EmailUtils email;
50

    
51
    @Test
52
    @Transactional
53
    @Rollback(true)
54
    public void getRequestsForLibrarian() throws PersonManagerException {
55
        List<String> organizationIds = new ArrayList<>();
56
        for(Affiliation affiliation : um.getByEmail("pkanakakis@di.uoa.gr")
57
                .getAffiliations()) {
58
            if(affiliation.getOrganization()!=null)
59
                organizationIds.add(affiliation.getOrganization().getId());
60
        }
61
        System.out.println(organizationIds.get(0));
62
        RequestPage rs = rm.getForOrganization(organizationIds,null, null, RequestSort.DATE,
63
                RequestSortOrder.DESCENDING,
64
                null, null, null, 0, 9);
65
        List<Request> rss = rs.getRequests();
66
        for(Request r:rss)
67
            System.out.println(r.getId());
68
    }
69

    
70
    @Test
71
    @Transactional
72
    @Rollback(true)
73
    public void getRequestsForGeneralUser() throws PersonManagerException {
74
        List<String> organizationIds = new ArrayList<>();
75
        for(Affiliation affiliation : um.getByEmail("ant.lebesis@gmail.com")
76
                .getAffiliations()) {
77
            if(affiliation.getOrganization()!=null)
78
                organizationIds.add(affiliation.getOrganization().getId());
79
        }
80
        System.out.println(organizationIds.get(0));
81
        RequestPage rs = rm.getForUser("ant.lebesis@gmail.com",null, null, RequestSort.DATE,
82
                RequestSortOrder.DESCENDING,
83
                null, null, null, 0, 9);
84
        List<Request> rss = rs.getRequests();
85
        for(Request r:rss)
86
            System.out.println(r.getId());
87
    }
88

    
89

    
90

    
91
    @Test
92
    @Transactional
93
    @Rollback(true)
94
    public void getRequestsForPublisher() throws PersonManagerException {
95
        User user = null;
96

    
97
        try {
98
            user = um.getByEmail("ant.lebesis@gmail.com");
99
        } catch (PersonManagerException e) {
100
            e.printStackTrace();
101
        }
102

    
103
        RequestPage rs = rm.getForPublisher(user.getEmail(),null, null, RequestSort.DATE,
104
                RequestSortOrder.DESCENDING,
105
                null, null, null, 0, 9);
106
        List<Request> rss = rs.getRequests();
107
        for(Request r:rss)
108
            System.out.println(r.getId());
109
    }
110

    
111
    @Test
112
    @Transactional
113
    @Rollback(true)
114
    public void getProjectInfoAndEligibility() {
115

    
116
        Project project = pm.getById("corda::100016");
117
        Request request = new Request();
118
        request.setStatus(Request.RequestStatus.INCOMPLETE);
119
        request.setProject(project);
120
        em.validate(request);
121

    
122
    }
123

    
124
    @Test
125
    @Transactional
126
    @Rollback(true)
127
    public void resolveDOI() {
128
        try {
129
            Publication p = pum.resolveDOI("10.1155/2017/1297658");
130
            System.out.println(p.getType().getType());
131
        } catch (ManagerException e) {
132
            e.printStackTrace();
133
        }
134
    }
135

    
136
    @Test
137
    @Transactional
138
    @Rollback(true)
139
    public void savePublicationAndPublisherInfo() throws PersonManagerException, OrganizationManagerException {
140
        try {
141
            Publication p = pum.resolveDOI("10.1038/srep12540");
142

    
143
            Request r  = new Request();
144
            r.setStatus(Request.RequestStatus.INCOMPLETE);
145
            r.setUser(um.getByEmail("pkanakakis@di.uoa.gr"));
146
            r.setPublication(pum.getPublication("portal::d48191df0a20dfff1d1332574440ff29"));
147
            r.setJournal(p.getJournal());
148
            r.setOrganization(om.getById("corda::999643007"));
149
            r.setEligibility(em.validate(r));
150

    
151
            RequestCoFunder rc = new RequestCoFunder();
152
            RequestCoFunderPK rcpk = new RequestCoFunderPK();
153

    
154
            List<Object> res = sm.search(SearchManager.TYPE.FUNDER, "1675 Foundation");
155
            Funder f = (Funder)res.get(0);
156

    
157
            rcpk.setFunder(f);
158
            rcpk.setRequest(r);
159
            rc.setPk(rcpk);
160
            rc.setPercentage(50);
161

    
162
            List<RequestCoFunder> rc_list = new ArrayList<>();
163
            rc_list.add(rc);
164

    
165
            r.setRequestCoFunders(rc_list);
166

    
167

    
168
            Comment c = new Comment();
169
            c.setId("portal::" + DigestUtils.md5Hex("comment" + new Date()));
170
            c.setComment("comment");
171
            List<Comment> c_list = new ArrayList<>();
172
            c_list.add(c);
173
            r.setRequestComments(c_list);
174

    
175
            //r.setInvoice(new Invoice());
176
            BankAccount bankAccount = new BankAccount();
177
            bankAccount.setBankName("Wells Fargo Bank, N.A.");
178
            r.setBankAccount(bankAccount);
179

    
180
            rm.saveRequest(r);
181
        } catch (ManagerException e) {
182
            e.printStackTrace();
183
        }
184
    }
185

    
186

    
187
    @Test
188
    @Transactional
189
    @Rollback(true)
190
    public void updateRequest() throws PersonManagerException {
191
        Request r = rm.getById("20160720-982");
192

    
193
        List<Object> res = sm.search(SearchManager.TYPE.FUNDER, "8020 Promotion Foundation");
194
        Funder f = (Funder)res.get(0);
195

    
196
        RequestCoFunder rc = new RequestCoFunder();
197
        RequestCoFunderPK rcpk = new RequestCoFunderPK();
198
        rcpk.setFunder(f);
199
        rcpk.setRequest(r);
200
        rc.setPk(rcpk);
201
        rc.setPercentage(50);
202

    
203
        r.getRequestCoFunders().add(rc);
204
        r.setPublisher((Publisher)sm.search(SearchManager.TYPE.PUBLISHER, "EDP Sciences").get(0));
205

    
206
        r.setApcPaid((float) 10000);
207

    
208

    
209
        BankAccount bankAccount = new BankAccount();
210
        bankAccount.setBankName("Wells Fargo Bank, N.A.");
211
        r.setBankAccount(bankAccount);
212
        rm.submitRequest(r);
213
//        rm.saveRequest(r);
214
    }
215

    
216

    
217
    @Test
218
    @Transactional
219
    @Rollback(true)
220
    public void downaloadInvoiceFile() throws PersonManagerException, ManagerException {
221
        InvoiceFile file = im.downloadInvoice("portal::93b206de-03e3-482f-a924-7f152d692964");
222
    }
223

    
224

    
225
    @Test
226
    @Transactional
227
    @Rollback(true)
228
    public void processingRequest() throws PersonManagerException, ManagerException {
229
        Request r = rm.getById("20170429-1492");
230
        rm.processingRequest(r.getId(),"ant.lebesis@gmail.com","comment",null);
231
    }
232

    
233
    @Test
234
    @Transactional
235
    @Rollback(true)
236
    public void getRequest() throws PersonManagerException {
237
        Request r = rm.getById("20170524-1518");
238
        System.out.println(r.getBankTransferReceipt());
239
        System.out.println(r.getPublisherEmail());
240
        System.out.println(r.getEligibility().getStatus());
241
    }
242

    
243
    @Test
244
    @Transactional
245
    @Rollback(true)
246
    public void importCSVRequests() throws IOException {
247

    
248
        String csv = "Firstname,Lastname,Email, Affiliation,Project Grant Number,DOI,Acceptance Date,Publication Identifier Type,Publication Identifier value," +
249
                "APC,APC currency,Discount\n" +
250
                "Panagiotis,Kanakakis,pkanakakis@di.uoa.gr,NATIONAL AND KAPODISTRIAN UNIVERSITY OF ATHENS,641489,10.1002/0470841559.ch10,2015-05-27,doi,doiValue,1000,EUR,0\n "+
251
                "Panagiotis,Kanakakis,p2@di.uoa.gr,NATIONAL AND KAPODISTRIAN UNIVERSITY OF ATHENS,641489,10.1002/0470841559.ch10,2015-05-27,doi,doiValue,1000,EUR,0\n "+
252
                "Panagiotis,Kanakakis,,NATIONAL AND KAPODISTRIAN UNIVERSITY OF ATHENS,641489,10.1002/0470841559.ch10,2015-05-27,doi,doiValue,,EUR,";
253

    
254
        try {
255
            rm.importCSV(csv);
256
        } catch (Exception e) {
257
            e.printStackTrace();
258
            System.out.println("Error message: " + e.getMessage());
259
        }
260
    }
261

    
262
    @Test
263
    @Transactional
264
    @Rollback(true)
265
    public void uploadBankReceipt() throws PersonManagerException {
266
        Request r = rm.getById("20170530-1529");
267
        rm.uploadTransferReceipt(r.getId(),null,null);
268
    }
269

    
270
    @Test
271
    @Transactional
272
    @Rollback(true)
273
    public void paidRequestComment() throws PersonManagerException {
274
        Request r = rm.getById("20170314-1397");
275
        rm.approveRequest(r.getId(),"pkanakakis@di.uoa.gr","Test Comment",null);
276
    }
277

    
278
    @Test
279
    @Transactional
280
    @Rollback(true)
281
    public void getCSV() throws PersonManagerException {
282
        String resultSet = rm.getCSV("moderator", null, null, null, null, null);
283
        System.out.println(resultSet);
284
    }
285

    
286
    @Test
287
    @Transactional
288
    @Rollback(true)
289
    public void sendEmailForPendingIncompleteRequests() throws MessagingException {
290
       rm.sendEmailForPendingIncompleteRequests();
291
    }
292

    
293
    @Test
294
    @Transactional
295
    @Rollback(true)
296
    public void sendEmailForConditionallyApprovedRequests() throws MessagingException {
297
        rm.sendEmailForPendingConditionallyApprovedRequests();
298
    }
299

    
300

    
301
}
(2-2/6)