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

    
15
import java.util.ArrayList;
16
import java.util.Date;
17
import java.util.List;
18
import java.util.concurrent.locks.StampedLock;
19

    
20
import static org.junit.Assert.*;
21

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

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

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

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

    
86

    
87

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

    
94
        try {
95
            user = um.getByEmail("pkanakakis@di.uoa.gr");
96
        } catch (PersonManagerException e) {
97
            e.printStackTrace();
98
        }
99

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

    
108
    @Test
109
    @Transactional
110
    @Rollback(true)
111
    public void getProjectInfoAndEligibility() {
112

    
113
        Project project = pm.getById("corda::100016");
114
        Request request = new Request();
115
        request.setProject(project);
116
        em.validate(request);
117

    
118
    }
119

    
120
    @Test
121
    @Transactional
122
    @Rollback(true)
123
    public void resolveDOI() {
124
        try {
125
            Publication p = pum.resolveDOI("10.1038/srep12540");
126

    
127
        } catch (ManagerException e) {
128
            e.printStackTrace();
129
        }
130
    }
131

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

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

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

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

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

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

    
161
            r.setRequestCoFunders(rc_list);
162

    
163

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

    
171
            rm.submitRequest(r);
172
        } catch (ManagerException e) {
173
            e.printStackTrace();
174
        }
175
    }
176

    
177
    @Test
178
    @Transactional
179
    @Rollback(true)
180
    public void getRequests() throws PersonManagerException {
181
        User user = null;
182

    
183
        try {
184
            user = um.getByEmail("pkanakakis@di.uoa.gr");
185
        } catch (PersonManagerException e) {
186
            e.printStackTrace();
187
        }
188

    
189
        RequestPage rs = rm.getRequests(null, null, RequestSort.USER, RequestSortOrder.DESCENDING, null, null, null, 0, 9);
190

    
191
        List<Request> rss = rs.getRequests();
192
        for(Request r:rss)
193
            System.out.println(r.getId());
194
    }
195

    
196
    @Test
197
    @Transactional
198
    @Rollback(true)
199
    public void updateRequest()  {
200
       Request r = rm.getById("20170508-1455");
201
       System.out.println(r.getStatus().getValue());
202
       r.setApcPaid((float) 10000);
203
       rm.saveRequest(r);
204
    }
205

    
206

    
207

    
208

    
209
}
(2-2/6)