Project

General

Profile

1
package unitest;
2

    
3
import eu.dnetlib.goldoa.domain.Request;
4
import eu.dnetlib.goldoa.domain.stats.*;
5
import eu.dnetlib.goldoa.service.OrganizationManager;
6
import eu.dnetlib.goldoa.service.stats.StatsManager;
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.transaction.Transactional;
15
import java.util.List;
16

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

    
24
    @Autowired
25
    StatsManager st;
26
    @Autowired
27
    OrganizationManager om;
28

    
29

    
30

    
31
    @Test
32
    @Transactional
33
    @Rollback(true)
34
    public void browseScientificArea(){
35
        List<Triple<String, String, Integer>> data = st.browse(new Browse.Category[]{Browse.Category.SCIENTIFIC_AREA})
36
                .getData(Browse.Category.SCIENTIFIC_AREA);
37

    
38
        for(Triple<String,String,Integer> t:data)
39
            System.out.println(t.getFirst());
40
    }
41

    
42
    @Test
43
    @Transactional
44
    @Rollback(true)
45
    public void browseOrganization(){
46
        List<Triple<String, String, Integer>> data = st.browse(new Browse.Category[]{Browse.Category.ORGANIZATION})
47
                .getData(Browse.Category.ORGANIZATION);
48

    
49
        for(Triple<String,String,Integer> t:data)
50
            System.out.println(t.getFirst());
51
    }
52

    
53
    @Test
54
    @Transactional
55
    @Rollback(true)
56
    public void browsePublisher(){
57
        List<Triple<String, String, Integer>> data = st.browse(new Browse.Category[]{Browse.Category.PUBLISHER})
58
                .getData(Browse.Category.PUBLISHER);
59

    
60
        for(Triple<String,String,Integer> t:data)
61
            System.out.println(t.getFirst());
62
    }
63

    
64
    @Test
65
    @Transactional
66
    @Rollback(true)
67
    public void browseCountry(){
68
        List<Triple<String, String, Integer>> data = st.browse(new Browse.Category[]{Browse.Category.COUNTRY})
69
                .getData(Browse.Category.COUNTRY);
70

    
71
        for(Triple<String,String,Integer> t:data)
72
            System.out.println(t.getSecond());
73
    }
74

    
75
    @Test
76
    @Transactional
77
    @Rollback(true)
78
    public void createPieChart(){
79
        Series publicationTypeDistributionSeries = st.getSeries(new Series.Category[] {Series.Category.STATUS},
80
                new Request.RequestStatus[] {Request.RequestStatus.CONDITIONALLY_APPROVED, Request.RequestStatus.APPROVED,
81
                        Request.RequestStatus.ACCOUNTING_PROCESSING, Request.RequestStatus.ACCOUNTING_PAID, Request.RequestStatus.ACCOUNTING_ON_HOLD});
82

    
83
        List<Quadruple<String, Integer, Float, Float>> data = publicationTypeDistributionSeries.getData(Series.Category.STATUS);
84
        for(Quadruple<String, Integer, Float, Float> t:data)
85
            System.out.println(t.getFirst()+"/"+t.getSecond());
86
    }
87

    
88

    
89

    
90
    @Test
91
    @Transactional
92
    @Rollback(true)
93
    public void infoLabel(){
94

    
95
        Numbers numbers = st.getNumbers(new Numbers.Category[]{Numbers.Category.REQUESTS, Numbers.Category.PROJECTS,
96
                Numbers.Category.TOTAL_AMOUNT, Numbers.Category.AVERAGE_AMOUNT, Numbers.Category.AVERAGE_PER_ARTICLE,
97
                Numbers.Category.AVERAGE_PER_MONOGRAPH, Numbers.Category.AVERAGE_PER_BOOK_CHAPTER, Numbers.Category.PAID_REQUESTS,
98
                Numbers.Category.PAID_REQUESTS_WITH_DOI, Numbers.Category.APPROVED_REQUESTS_WITH_DOI, Numbers.Category.PAID_ARTICLE_REQUESTS,
99
                Numbers.Category.PAID_MONOGRAPH_REQUESTS, Numbers.Category.PAID_BOOK_CHAPTER_REQUESTS});
100

    
101
       String s1 = st.getNumbers(new Numbers.Category[]{Numbers.Category.REQUESTS}).getNumber(Numbers.Category.REQUESTS) + " publications from " +
102
                        st.getNumbers(new Numbers.Category[]{Numbers.Category.PROJECTS}).getNumber(Numbers.Category.PROJECTS) + " projects have been approved for funding since 1/1/2015." +
103
                        "A total of " + st.getNumbers(new Numbers.Category[]{Numbers.Category.TOTAL_AMOUNT}).getNumber(Numbers.Category.TOTAL_AMOUNT) + " EUR has been paid for APCs, with an average of " +
104
                        st.getNumbers(new Numbers.Category[]{Numbers.Category.AVERAGE_AMOUNT}).getNumber(Numbers.Category.AVERAGE_AMOUNT) + "EUR per publication: " +
105
                        st.getNumbers(new Numbers.Category[]{Numbers.Category.PAID_ARTICLE_REQUESTS}).getNumber(Numbers.Category.PAID_ARTICLE_REQUESTS) + " articles with an average of " +
106
                        st.getNumbers(new Numbers.Category[]{Numbers.Category.AVERAGE_PER_ARTICLE}).getNumber(Numbers.Category.AVERAGE_PER_ARTICLE) + " EUR " +
107
                        st.getNumbers(new Numbers.Category[]{Numbers.Category.PAID_MONOGRAPH_REQUESTS}).getNumber(Numbers.Category.PAID_MONOGRAPH_REQUESTS) + " books with an average of " +
108
                        st.getNumbers(new Numbers.Category[]{Numbers.Category.AVERAGE_PER_MONOGRAPH}).getNumber(Numbers.Category.AVERAGE_PER_MONOGRAPH) + " EUR " +
109
                        st.getNumbers(new Numbers.Category[]{Numbers.Category.PAID_BOOK_CHAPTER_REQUESTS}).getNumber(Numbers.Category.PAID_BOOK_CHAPTER_REQUESTS) + "book chapters with an average of" +
110
                        st.getNumbers(new Numbers.Category[]{Numbers.Category.AVERAGE_PER_BOOK_CHAPTER}).getNumber(Numbers.Category.AVERAGE_PER_BOOK_CHAPTER) + " EUR " ;
111

    
112
        String s2 = "Out of " + st.getNumbers(new Numbers.Category[]{Numbers.Category.REQUESTS}).getNumber(Numbers.Category.REQUESTS) +
113
        " approved requests, " + st.getNumbers(new Numbers.Category[]{Numbers.Category.APPROVED_REQUESTS_WITH_DOI}).getNumber(Numbers.Category.APPROVED_REQUESTS_WITH_DOI) +
114
        " have a DOI.Out of " + st.getNumbers(new Numbers.Category[]{Numbers.Category.PAID_REQUESTS}).getNumber(Numbers.Category.PAID_REQUESTS) +
115
        " paid requests, " + st.getNumbers(new Numbers.Category[]{Numbers.Category.PAID_REQUESTS_WITH_DOI}).getNumber(Numbers.Category.PAID_REQUESTS_WITH_DOI)  +
116
        " have a DOI.";
117

    
118

    
119
        System.out.println(s1);
120
        System.out.println(s2);
121

    
122

    
123
    }
124

    
125

    
126
    @Test
127
    @Transactional
128
    @Rollback(true)
129
    public void statsData() {
130

    
131
        Numbers rs = st.getNumbers(new Numbers.Category[]{Numbers.Category.REQUESTS, Numbers.Category.PROJECTS,
132
                Numbers.Category.TOTAL_AMOUNT, Numbers.Category.AVERAGE_AMOUNT, Numbers.Category.AVERAGE_PER_ARTICLE,
133
                Numbers.Category.AVERAGE_PER_MONOGRAPH, Numbers.Category.AVERAGE_PER_BOOK_CHAPTER, Numbers.Category.PAID_REQUESTS,
134
                Numbers.Category.PAID_REQUESTS_WITH_DOI, Numbers.Category.APPROVED_REQUESTS_WITH_DOI, Numbers.Category.PAID_ARTICLE_REQUESTS,
135
                Numbers.Category.PAID_MONOGRAPH_REQUESTS, Numbers.Category.PAID_BOOK_CHAPTER_REQUESTS});
136

    
137
        Series fundedRequests = st.getSeries(new Series.Category[] {Series.Category.COUNTRY, Series.Category.ORGANIZATION,
138
                Series.Category.PUBLISHER}, new Request.RequestStatus[] {Request.RequestStatus.CONDITIONALLY_APPROVED,
139
                Request.RequestStatus.APPROVED, Request.RequestStatus.ACCOUNTING_PROCESSING, Request.RequestStatus.ACCOUNTING_PAID,
140
                Request.RequestStatus.ACCOUNTING_ON_HOLD});
141
        Series rejectedRequests = st.getSeries(new Series.Category[] {Series.Category.COUNTRY, Series.Category.ORGANIZATION,
142
                Series.Category.PUBLISHER}, new Request.RequestStatus[] {Request.RequestStatus.REJECTED,
143
                Request.RequestStatus.ACCOUNTING_DENIED});
144

    
145
        DateSeries result = st.getDateSeries(DateSeries.Over.DAY, false, null, null, null, null, null, null);
146
        result = st.getDateSeries(DateSeries.Over.DAY, true,null, null, null, null, null, null);
147

    
148
        st.getSeries(new Series.Category[] {Series.Category.STATUS}, null);
149
        st.browse(new Browse.Category[] {Browse.Category.COUNTRY, Browse.Category.ORGANIZATION,
150
                Browse.Category.PUBLISHER, Browse.Category.SCIENTIFIC_AREA});
151
    }
152

    
153

    
154

    
155

    
156

    
157

    
158

    
159
}
(5-5/5)