blob: 3517d608d6c29b764d55ecef1f468ee98f8b4e6f [file] [log] [blame]
/**********************************************************************
* Copyright (c) 2019 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
**********************************************************************/
package org.eclipse.tracecompass.tmf.core.tests.dataprovider;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.tracecompass.tmf.core.dataprovider.DataProviderParameterUtils;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* Test {@link DataProviderParameterUtils}
*
* @author Simon Delisle
*/
@NonNullByDefault
public class DataProviderParameterTest {
private static final String CUSTOM_KEY = "MyKey";
private static Map<String, Object> fParameters = new HashMap<>();
private List<?> fLongList = Arrays.asList(Long.valueOf(1), Long.valueOf(2), Long.valueOf(3));
private List<?> fIntList = Arrays.asList(Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(3));
private List<?> fMixedList = Arrays.asList(Integer.valueOf(1), Long.valueOf(2), Integer.valueOf(3));
private String fWrongParameter = "Unsupported";
/**
* Setup everything necessary for all tests
*/
@BeforeClass
public static void setUp() {
fParameters.put(DataProviderParameterUtils.REQUESTED_TIME_KEY, Collections.emptyList());
fParameters.put(DataProviderParameterUtils.REQUESTED_ITEMS_KEY, Collections.emptyList());
}
/**
* Test {@link DataProviderParameterUtils#extractTimeRequested(Map)} by
* passing 4 different values
*/
@Test
public void testExtractTimeRequested() {
fParameters.put(DataProviderParameterUtils.REQUESTED_TIME_KEY, fLongList);
List<@NonNull Long> timeRequested = DataProviderParameterUtils.extractTimeRequested(fParameters);
assertNotNull(timeRequested);
testLongList(timeRequested);
fParameters.put(DataProviderParameterUtils.REQUESTED_TIME_KEY, fIntList);
timeRequested = DataProviderParameterUtils.extractTimeRequested(fParameters);
assertNotNull(timeRequested);
testLongList(timeRequested);
fParameters.put(DataProviderParameterUtils.REQUESTED_TIME_KEY, fMixedList);
timeRequested = DataProviderParameterUtils.extractTimeRequested(fParameters);
assertNotNull(timeRequested);
testLongList(timeRequested);
fParameters.put(DataProviderParameterUtils.REQUESTED_TIME_KEY, fWrongParameter);
timeRequested = DataProviderParameterUtils.extractTimeRequested(fParameters);
assertNull(timeRequested);
}
/**
* Test {@link DataProviderParameterUtils#extractSelectedItems(Map)} by
* passing 4 different values
*/
@Test
public void testExtractSelectedItems() {
fParameters.put(DataProviderParameterUtils.REQUESTED_ITEMS_KEY, fLongList);
List<@NonNull Long> items = DataProviderParameterUtils.extractSelectedItems(fParameters);
assertNotNull(items);
testLongList(items);
fParameters.put(DataProviderParameterUtils.REQUESTED_ITEMS_KEY, fIntList);
items = DataProviderParameterUtils.extractSelectedItems(fParameters);
assertNotNull(items);
testLongList(items);
fParameters.put(DataProviderParameterUtils.REQUESTED_ITEMS_KEY, fMixedList);
items = DataProviderParameterUtils.extractSelectedItems(fParameters);
assertNotNull(items);
testLongList(items);
fParameters.put(DataProviderParameterUtils.REQUESTED_ITEMS_KEY, fWrongParameter);
items = DataProviderParameterUtils.extractSelectedItems(fParameters);
assertNull(items);
}
/**
* Test {@link DataProviderParameterUtils#extractLongList(Map, String)}
*/
@Test
public void testExtractLongList() {
fParameters.put(CUSTOM_KEY, fLongList);
List<Long> longList = DataProviderParameterUtils.extractLongList(fParameters, CUSTOM_KEY);
assertNotNull(longList);
testLongList(longList);
}
/**
* Test {@link DataProviderParameterUtils#extractBoolean(Map, String)}
*/
@Test
public void testExtractBoolean() {
fParameters.put(CUSTOM_KEY, Boolean.TRUE);
Boolean extractedBoolean = DataProviderParameterUtils.extractBoolean(fParameters, CUSTOM_KEY);
assertNotNull(extractedBoolean);
assertTrue(extractedBoolean);
fParameters.put(CUSTOM_KEY, Boolean.FALSE);
extractedBoolean = DataProviderParameterUtils.extractBoolean(fParameters, CUSTOM_KEY);
assertNotNull(extractedBoolean);
assertFalse(extractedBoolean);
}
private static void testLongList(List<?> listToTest) {
assertEquals(3, listToTest.size());
assertTrue(listToTest.stream().allMatch(e -> e instanceof Long));
}
}