Project

General

Profile

1
package unitest;
2

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

    
13
import javax.transaction.Transactional;
14
import java.util.ArrayList;
15
import java.util.Date;
16
import java.util.List;
17

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

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

    
46
    @Test
47
    @Transactional
48
    @Rollback(true)
49
    public void getRequestsForLibrarian() throws PersonManagerException {
50
        List<String> organizationIds = new ArrayList<>();
51
        for(Affiliation affiliation : um.getByEmail("ant.lebesis@gmail.com")
52
                .getAffiliations()) {
53
            if(affiliation.getOrganization()!=null)
54
                organizationIds.add(affiliation.getOrganization().getId());
55
        }
56
        System.out.println(organizationIds.get(0));
57
        RequestPage rs = rm.getForOrganization(organizationIds,null, null, RequestSort.DATE,
58
                RequestSortOrder.DESCENDING,
59
                null, null, null, 0, 9);
60
        List<Request> rss = rs.getRequests();
61
        for(Request r:rss)
62
            System.out.println(r.getId());
63
    }
64

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

    
84

    
85

    
86
    @Test
87
    @Transactional
88
    @Rollback(true)
89
    public void getRequestsForPublisher() throws PersonManagerException {
90
        User user = null;
91

    
92
        try {
93
            user = um.getByEmail("ant.lebesis@gmail.com");
94
        } catch (PersonManagerException e) {
95
            e.printStackTrace();
96
        }
97

    
98
        RequestPage rs = rm.getForPublisher(user.getEmail(),null, null, RequestSort.DATE,
99
                RequestSortOrder.DESCENDING,
100
                null, null, null, 0, 9);
101
        List<Request> rss = rs.getRequests();
102
        for(Request r:rss)
103
            System.out.println(r.getId());
104
    }
105

    
106
    @Test
107
    @Transactional
108
    @Rollback(true)
109
    public void getProjectInfoAndEligibility() {
110

    
111
        Project project = pm.getById("corda::100016");
112
        Request request = new Request();
113
        request.setStatus(Request.RequestStatus.INCOMPLETE);
114
        request.setProject(project);
115
        em.validate(request);
116

    
117
    }
118

    
119
    @Test
120
    @Transactional
121
    @Rollback(true)
122
    public void resolveDOI() {
123
        try {
124
            Publication p = pum.resolveDOI("10.1002/0470841559.ch1");
125
            System.out.println(p.getType().getType());
126
        } catch (ManagerException e) {
127
            e.printStackTrace();
128
        }
129
    }
130

    
131
    @Test
132
    @Transactional
133
    @Rollback(true)
134
    public void savePublicationAndPublisherInfo() throws PersonManagerException, OrganizationManagerException {
135
        try {
136
            Publication p = pum.resolveDOI("10.1038/srep12540");
137

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

    
146
            RequestCoFunder rc = new RequestCoFunder();
147
            RequestCoFunderPK rcpk = new RequestCoFunderPK();
148

    
149
            List<Object> res = sm.search(SearchManager.TYPE.FUNDER, "1675 Foundation");
150
            Funder f = (Funder)res.get(0);
151

    
152
            rcpk.setFunder(f);
153
            rcpk.setRequest(r);
154
            rc.setPk(rcpk);
155
            rc.setPercentage(50);
156

    
157
            List<RequestCoFunder> rc_list = new ArrayList<>();
158
            rc_list.add(rc);
159

    
160
            r.setRequestCoFunders(rc_list);
161

    
162

    
163
            Comment c = new Comment();
164
            c.setId("portal::" + DigestUtils.md5Hex("comment" + new Date()));
165
            c.setComment("comment");
166
            List<Comment> c_list = new ArrayList<>();
167
            c_list.add(c);
168
            r.setRequestComments(c_list);
169

    
170
            //r.setInvoice(new Invoice());
171
            BankAccount bankAccount = new BankAccount();
172
            bankAccount.setBankName("Wells Fargo Bank, N.A.");
173
            r.setBankAccount(bankAccount);
174

    
175
            rm.saveRequest(r);
176
        } catch (ManagerException e) {
177
            e.printStackTrace();
178
        }
179
    }
180

    
181

    
182
    @Test
183
    @Transactional
184
    @Rollback(true)
185
    public void updateRequest() throws PersonManagerException {
186
        Request r = rm.getById("20160720-982");
187

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

    
191
        RequestCoFunder rc = new RequestCoFunder();
192
        RequestCoFunderPK rcpk = new RequestCoFunderPK();
193
        rcpk.setFunder(f);
194
        rcpk.setRequest(r);
195
        rc.setPk(rcpk);
196
        rc.setPercentage(50);
197

    
198
        r.getRequestCoFunders().add(rc);
199
        r.setPublisher((Publisher)sm.search(SearchManager.TYPE.PUBLISHER, "EDP Sciences").get(0));
200

    
201
        r.setApcPaid((float) 10000);
202

    
203

    
204
        BankAccount bankAccount = new BankAccount();
205
        bankAccount.setBankName("Wells Fargo Bank, N.A.");
206
        r.setBankAccount(bankAccount);
207
        rm.submitRequest(r);
208
//        rm.saveRequest(r);
209
    }
210

    
211

    
212
    @Test
213
    @Transactional
214
    @Rollback(true)
215
    public void downaloadInvoiceFile() throws PersonManagerException, ManagerException {
216
        InvoiceFile file = im.downloadInvoice("portal::93b206de-03e3-482f-a924-7f152d692964");
217
    }
218

    
219

    
220
    @Test
221
    @Transactional
222
    @Rollback(true)
223
    public void processingRequest() throws PersonManagerException, ManagerException {
224
        Request r = rm.getById("20170429-1492");
225
        rm.processingRequest(r.getId(),"ant.lebesis@gmail.com","comment",null);
226
    }
227

    
228
    @Test
229
    @Transactional
230
    @Rollback(true)
231
    public void getRequest() throws PersonManagerException {
232
        Request r = rm.getById("20170118-1302");
233
        System.out.println(r.getPublisherEmail());
234
        System.out.println(r.getEligibility().getStatus());
235
    }
236

    
237
    @Test
238
    @Transactional
239
    @Rollback(true)
240
    public void importCSVRequests() {
241

    
242
        String csv = "User email,Project Grant Number,DOI,Acceptance Date,Publication Identifier Type,Publication Identifier value,License,APC,APC currency,Discount,Co-Funder Name,Co-funder discount percentage (';' separated)\n" +
243
                "pkanakakis@di.uoa.gr  ,641489,10.1002/0470841559.ch10 ,2015-05-27,doi,doiValue,testLicense,1000,EUR,0\n "+
244
                "pkanakakis@di.uoa.gr  ,100016,10.1002/0470841559.ch10 ,2015-05-27,doi,doiValue,testLicense,1000,EUR,0\n"+
245
                "pkanakakis@di.uoa.gr  ,100016,10.1002/0470841559.ch2,2015-05-27,doi,doiValue,testLicense,1000,EUR,0";
246
        //"pkanakakis@di.uoa.gr,100016,10.1002/0470841559.ch1,2015-05-27,doi,doiValue,licenseValue,1000,EUR,10.00,,";
247
        //"pkanakakis@di.uoa.gr,100016,10.1002/0470841559.ch10,2015-05-27,doi,doiValue,licenseValue,1000,EUR,10.00,,";
248
        System.out.println(csv);
249
        try {
250
            rm.importCSV(csv);
251
        } catch (Exception e) {
252
            e.printStackTrace();
253
            System.out.println("Error message: " + e.getMessage());
254
        }
255
    }
256

    
257
    @Test
258
    @Transactional
259
    @Rollback(true)
260
    public void uploadBankReceipt() throws PersonManagerException {
261
        Request r = rm.getById("20170530-1529");
262
        rm.uploadTransferReceipt(r.getId(),null,null);
263
    }
264

    
265
    @Test
266
    @Transactional
267
    //@Rollback(true)
268
    public void paidRequestComment() throws PersonManagerException {
269
        Request r = rm.getById("20170314-1397");
270
        rm.approveRequest(r.getId(),"pkanakakis@di.uoa.gr","Test Comment",null);
271
    }
272

    
273

    
274

    
275
}
(1-1/5)