View Javadoc
1   /*
2    * Licensed under the GPL License. You may not use this file except in compliance with the License.
3    * You may obtain a copy of the License at
4    *
5    *   https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
6    *
7    * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
8    * WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
9    * PURPOSE.
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 jakarta.servlet.http.HttpServletRequest;
18  
19  import java.util.List;
20  
21  import org.jfree.data.xy.DefaultTableXYDataset;
22  import org.jfree.data.xy.XYDataItem;
23  import org.junit.jupiter.api.BeforeEach;
24  import org.junit.jupiter.api.Test;
25  
26  import psiprobe.model.stats.StatsCollection;
27  
28  /**
29   * Tests for {@link ConnectorSeriesProvider}.
30   */
31  class ConnectorSeriesProviderTest {
32  
33    private ConnectorSeriesProvider provider;
34    private StatsCollection statsCollection;
35    private DefaultTableXYDataset dataset;
36  
37    @BeforeEach
38    void setUp() {
39      provider = new ConnectorSeriesProvider();
40      statsCollection = new StatsCollection();
41      dataset = new DefaultTableXYDataset();
42    }
43  
44    @Test
45    void testPopulateAddsSeriesWhenStatsExist() {
46      List<XYDataItem> items = statsCollection.newStats("stat.connector.http-8080.requests", 10);
47      items.add(new XYDataItem(1L, 100.0));
48      items.add(new XYDataItem(2L, 200.0));
49  
50      HttpServletRequest request = mock(HttpServletRequest.class);
51      when(request.getParameter("cn")).thenReturn("http-8080");
52      when(request.getParameter("st")).thenReturn("requests");
53      when(request.getParameter("sl")).thenReturn("Requests");
54  
55      provider.populate(dataset, statsCollection, request);
56  
57      assertEquals(1, dataset.getSeriesCount());
58      assertEquals(2, dataset.getItemCount(0));
59    }
60  
61    @Test
62    void testPopulateDoesNothingWhenNoStats() {
63      HttpServletRequest request = mock(HttpServletRequest.class);
64      when(request.getParameter("cn")).thenReturn("http-8080");
65      when(request.getParameter("st")).thenReturn("requests");
66      when(request.getParameter("sl")).thenReturn("Requests");
67  
68      provider.populate(dataset, statsCollection, request);
69  
70      assertEquals(0, dataset.getSeriesCount());
71    }
72  
73    @Test
74    void testPopulateDoesNothingWhenConnectorNameNull() {
75      HttpServletRequest request = mock(HttpServletRequest.class);
76      when(request.getParameter("cn")).thenReturn(null);
77      when(request.getParameter("st")).thenReturn("requests");
78  
79      provider.populate(dataset, statsCollection, request);
80  
81      assertEquals(0, dataset.getSeriesCount());
82    }
83  
84    @Test
85    void testPopulateDoesNothingWhenStatTypeNull() {
86      HttpServletRequest request = mock(HttpServletRequest.class);
87      when(request.getParameter("cn")).thenReturn("http-8080");
88      when(request.getParameter("st")).thenReturn(null);
89  
90      provider.populate(dataset, statsCollection, request);
91  
92      assertEquals(0, dataset.getSeriesCount());
93    }
94  }