1
2
3
4
5
6
7
8
9
10
11 package psiprobe.beans.stats.providers;
12
13 import static org.junit.jupiter.api.Assertions.assertEquals;
14 import static org.mockito.Mockito.mock;
15 import static org.mockito.Mockito.when;
16
17 import com.codebox.bean.JavaBeanTester;
18
19 import jakarta.servlet.http.HttpServletRequest;
20
21 import java.util.Arrays;
22 import java.util.List;
23
24 import org.jfree.data.xy.DefaultTableXYDataset;
25 import org.jfree.data.xy.XYDataItem;
26 import org.junit.jupiter.api.BeforeEach;
27 import org.junit.jupiter.api.Test;
28
29 import psiprobe.model.stats.StatsCollection;
30
31
32
33
34 class StandardSeriesProviderTest {
35
36 private StandardSeriesProvider provider;
37 private StatsCollection statsCollection;
38 private DefaultTableXYDataset dataset;
39
40
41
42
43 @Test
44 void javabeanTester() {
45 JavaBeanTester.builder(StandardSeriesProvider.class).loadData().test();
46 }
47
48 @BeforeEach
49 void setUp() {
50 provider = new StandardSeriesProvider();
51 statsCollection = new StatsCollection();
52 dataset = new DefaultTableXYDataset();
53 }
54
55 @Test
56 void testPopulateWithStaticStatName() {
57 List<XYDataItem> items = statsCollection.newStats("stat.memory.heap", 10);
58 items.add(new XYDataItem(1L, 512.0));
59 items.add(new XYDataItem(2L, 1024.0));
60
61 provider.setStatNames(Arrays.asList("stat.memory.heap"));
62
63 HttpServletRequest request = mock(HttpServletRequest.class);
64 when(request.getParameter("sp")).thenReturn(null);
65 when(request.getParameter("s1l")).thenReturn("Heap");
66
67 provider.populate(dataset, statsCollection, request);
68
69 assertEquals(1, dataset.getSeriesCount());
70 assertEquals(2, dataset.getItemCount(0));
71 }
72
73 @Test
74 void testPopulateWithSeriesParam() {
75 List<XYDataItem> items = statsCollection.newStats("stat.connector.http-8080.requests", 10);
76 items.add(new XYDataItem(1L, 42.0));
77
78 provider.setStatNames(Arrays.asList("stat.connector.{0}.requests"));
79
80 HttpServletRequest request = mock(HttpServletRequest.class);
81 when(request.getParameter("sp")).thenReturn("http-8080");
82 when(request.getParameter("s1l")).thenReturn("Requests");
83
84 provider.populate(dataset, statsCollection, request);
85
86 assertEquals(1, dataset.getSeriesCount());
87 }
88
89 @Test
90 void testPopulateMultipleSeries() {
91 List<XYDataItem> items1 = statsCollection.newStats("stat.mem.heap", 10);
92 items1.add(new XYDataItem(1L, 100.0));
93
94 List<XYDataItem> items2 = statsCollection.newStats("stat.mem.nonheap", 10);
95 items2.add(new XYDataItem(1L, 50.0));
96
97 provider.setStatNames(Arrays.asList("stat.mem.heap", "stat.mem.nonheap"));
98
99 HttpServletRequest request = mock(HttpServletRequest.class);
100 when(request.getParameter("sp")).thenReturn(null);
101 when(request.getParameter("s1l")).thenReturn("Heap");
102 when(request.getParameter("s2l")).thenReturn("NonHeap");
103
104 provider.populate(dataset, statsCollection, request);
105
106 assertEquals(2, dataset.getSeriesCount());
107 }
108
109 @Test
110 void testPopulateMissingStats() {
111 provider.setStatNames(Arrays.asList("stat.nonexistent"));
112
113 HttpServletRequest request = mock(HttpServletRequest.class);
114 when(request.getParameter("sp")).thenReturn(null);
115
116 provider.populate(dataset, statsCollection, request);
117
118 assertEquals(0, dataset.getSeriesCount());
119 }
120 }