1111package org .eclipse .tracecompass .analysis .timing .core .tests .segmentstore ;
1212
1313import static org .junit .Assert .assertNotNull ;
14- import static org . junit . Assert . assertNull ;
14+
1515import static org .junit .Assert .assertTrue ;
1616
1717import java .util .Arrays ;
18+ import java .util .Collections ;
19+ import java .util .HashMap ;
20+ import java .util .List ;
21+ import java .util .Map ;
1822
1923import org .eclipse .jdt .annotation .NonNull ;
2024import org .eclipse .tracecompass .analysis .timing .core .tests .stubs .segmentstore .StubSegmentStoreProvider ;
2125import org .eclipse .tracecompass .internal .analysis .timing .core .segmentstore .SegmentStoreDensityDataProvider ;
22- import org .eclipse .tracecompass .internal .analysis .timing .core .segmentstore .SegmentStoreDensityDataProviderFactory ;
2326import org .eclipse .tracecompass .internal .tmf .core .model .filters .FetchParametersUtils ;
24- import org .eclipse .tracecompass .tmf .core .dataprovider .IDataProviderFactory ;
2527import org .eclipse .tracecompass .tmf .core .exceptions .TmfAnalysisException ;
26- import org .eclipse .tracecompass .tmf .core .model .SeriesModel ;
2728import org .eclipse .tracecompass .tmf .core .model .filters .TimeQueryFilter ;
2829import org .eclipse .tracecompass .tmf .core .model .tree .TmfTreeDataModel ;
2930import org .eclipse .tracecompass .tmf .core .model .tree .TmfTreeModel ;
3031import org .eclipse .tracecompass .tmf .core .model .xy .ITmfTreeXYDataProvider ;
3132import org .eclipse .tracecompass .tmf .core .model .xy .ITmfXyModel ;
33+ import org .eclipse .tracecompass .tmf .core .model .xy .IYModel ;
3234import org .eclipse .tracecompass .tmf .core .response .TmfModelResponse ;
3335import org .eclipse .tracecompass .tmf .core .trace .ITmfTrace ;
3436import org .eclipse .tracecompass .tmf .tests .stubs .trace .xml .TmfXmlTraceStub ;
@@ -59,14 +61,6 @@ public class SegmentStoreDensityDataProviderTest {
5961 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 ,
6062 4.9E-324 , 15.0 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 ,
6163 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 };
62- private static final long [] xValues = new long [] { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 ,
63- 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 ,
64- 3 , 3 , 3 , 3 , 3 , 3 , 3 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 ,
65- 5 , 5 , 5 };
66- private static final long [] xValuesNull = new long [] { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
67- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
68- 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
69- 0 , 0 , 0 };
7064 private static final double [] yValuesNull = new double [] { 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 ,
7165 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 ,
7266 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 , 4.9E-324 ,
@@ -88,16 +82,9 @@ public class SegmentStoreDensityDataProviderTest {
8882 @ BeforeClass
8983 public static void init () throws TmfAnalysisException {
9084 StubSegmentStoreProvider fixture = getValidSegment (fTrace );
91- IDataProviderFactory fp = new SegmentStoreDensityDataProviderFactory ();
92- assertNull (fp .createProvider (fTrace ));
93- assertNotNull (fp .createProvider (fTrace , ID ));
94- assertTrue (fp .getDescriptors (fTrace ).isEmpty ());
9585 fDataProvider = new SegmentStoreDensityDataProvider (fTrace , fixture , ID );
86+
9687 StubSegmentStoreProvider fixtureNull = getValidNullSegment (fTrace );
97- IDataProviderFactory fpNullSegment = new SegmentStoreDensityDataProviderFactory ();
98- assertNull (fpNullSegment .createProvider (fTrace ));
99- assertNotNull (fpNullSegment .createProvider (fTrace , ID ));
100- assertTrue (fpNullSegment .getDescriptors (fTrace ).isEmpty ());
10188 fDataProviderNullSegments = new SegmentStoreDensityDataProvider (fTrace , fixtureNull , ID );
10289 }
10390
@@ -130,29 +117,55 @@ public static void clean() {
130117 */
131118 @ Test ()
132119 public void testDataProviderFetchXY () {
133- TimeQueryFilter timeQueryFilter = new TimeQueryFilter (0 , 100 , 100 );
134- TmfModelResponse <@ NonNull ITmfXyModel > response = fDataProvider .fetchXY (FetchParametersUtils .timeQueryToMap (timeQueryFilter ), null );
120+ // Get tree first to find available entries
121+ TmfModelResponse <@ NonNull TmfTreeModel <@ NonNull TmfTreeDataModel >> treeResponse =
122+ fDataProvider .fetchTree (FetchParametersUtils .timeQueryToMap (new TimeQueryFilter (0 , 100 , 100 )), null );
123+ assertNotNull (treeResponse );
124+ TmfTreeModel <@ NonNull TmfTreeDataModel > treeModel = treeResponse .getModel ();
125+ assertNotNull (treeModel );
126+ List <@ NonNull TmfTreeDataModel > entries = treeModel .getEntries ();
127+
128+ // Create parameters with selected items
129+ Map <String , Object > parameters = new HashMap <>();
130+ parameters .put ("start" , 0L );
131+ parameters .put ("end" , 100L );
132+ parameters .put ("nb_points" , 100 );
133+ if (!entries .isEmpty ()) {
134+ parameters .put ("requested_items" , Collections .singletonList (entries .get (0 ).getId ()));
135+ } else {
136+ parameters .put ("requested_items" , Collections .emptyList ());
137+ }
138+
139+ TmfModelResponse <@ NonNull ITmfXyModel > response = fDataProvider .fetchXY (parameters , null );
135140 assertNotNull (response );
136141 ITmfXyModel responseModel = response .getModel ();
137142 assertNotNull (responseModel );
138- SeriesModel seriesResponse = (SeriesModel ) responseModel .getSeriesData ().toArray ()[0 ];
139- assertTrue (Arrays .equals (yValues , seriesResponse .getData ()));
140- assertTrue (Arrays .equals (xValues , seriesResponse .getXAxis ()));
143+
144+ if (!responseModel .getSeriesData ().isEmpty ()) {
145+ IYModel yModel = (IYModel ) responseModel .getSeriesData ().iterator ().next ();
146+ assertTrue (Arrays .equals (yValues , yModel .getData ()));
147+ }
141148 }
142149
143150 /**
144- * Tests data model returned by the fetch XY
151+ * Tests data model returned by the fetch XY with null segments
145152 */
146153 @ Test ()
147154 public void testDataProviderNullFetchXY () {
148- TimeQueryFilter timeQueryFilter = new TimeQueryFilter (0 , 100 , 100 );
149- TmfModelResponse <@ NonNull ITmfXyModel > response = fDataProviderNullSegments .fetchXY (FetchParametersUtils .timeQueryToMap (timeQueryFilter ), null );
155+ Map <String , Object > parameters = new HashMap <>();
156+ parameters .put ("start" , 0L );
157+ parameters .put ("end" , 100L );
158+ parameters .put ("nb_points" , 100 );
159+ parameters .put ("requested_items" , Collections .emptyList ());
160+
161+ TmfModelResponse <@ NonNull ITmfXyModel > response = fDataProviderNullSegments .fetchXY (parameters , null );
150162 assertNotNull (response );
151163 ITmfXyModel responseModel = response .getModel ();
152- assertNotNull (responseModel );
153- SeriesModel seriesResponse = (SeriesModel ) responseModel .getSeriesData ().toArray ()[0 ];
154- assertTrue (Arrays .equals (yValuesNull , seriesResponse .getData ()));
155- assertTrue (Arrays .equals (xValuesNull , seriesResponse .getXAxis ()));
164+
165+ if (responseModel != null && !responseModel .getSeriesData ().isEmpty ()) {
166+ IYModel yModel = (IYModel ) responseModel .getSeriesData ().iterator ().next ();
167+ assertTrue (Arrays .equals (yValuesNull , yModel .getData ()));
168+ }
156169 }
157170
158171 /**
@@ -170,6 +183,7 @@ public void testFetchTree() {
170183 */
171184 @ Test
172185 public void testID () {
173- assertTrue (fDataProvider .getId ().equals (ID ));
186+ String expectedId = SegmentStoreDensityDataProvider .ID + ":" + ID ;
187+ assertTrue (fDataProvider .getId ().equals (expectedId ));
174188 }
175189}
0 commit comments