blob: cc37e32600ec0dd869e0b079fe718f78a08d8715 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 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
*
* Contributors:
* Bernd Hufmann - Initial API and implementation
* Alexandre Montplaisir - Port to JUnit4
* Patrick Tasse - Support selection range
*******************************************************************************/
package org.eclipse.tracecompass.tmf.ui.tests.views.uml2sd.loader;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import org.eclipse.tracecompass.tmf.core.signal.TmfSelectionRangeUpdatedSignal;
import org.eclipse.tracecompass.tmf.core.signal.TmfWindowRangeUpdatedSignal;
import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
import org.eclipse.tracecompass.tmf.ui.tests.shared.WaitUtils;
import org.eclipse.tracecompass.tmf.ui.views.uml2sd.core.GraphNode;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* Test cases for signal handling.
*
* @author Bernd Hufmann
*/
public class TmfUml2SDSyncLoaderSignalTest {
private static Uml2SDTestFacility fFacility;
private static Uml2SDSignalValidator fTmfComponent;
private static TmfTimeRange range;
private static TmfTimestamp rangeWindow;
/**
* Initialization
*/
@BeforeClass
public static void setUpClass() {
fFacility = Uml2SDTestFacility.getInstance();
fFacility.init();
fFacility.selectExperiment();
range = new TmfTimeRange(new Uml2SDTestTimestamp(9789689220871L), new Uml2SDTestTimestamp(9789773881426L));
// Get range window for tests below
rangeWindow = (TmfTimestamp) range.getEndTime().getDelta(range.getStartTime());
TmfTimestamp currentTime = new Uml2SDTestTimestamp(9789773782043L);
fFacility.getTrace().broadcast(new TmfWindowRangeUpdatedSignal(fFacility, range));
fFacility.getTrace().broadcast(new TmfSelectionRangeUpdatedSignal(fFacility, currentTime));
fFacility.delay(IUml2SDTestConstants.BROADCAST_DELAY);
fTmfComponent = new Uml2SDSignalValidator();
}
/**
* Cleanup
*/
@AfterClass
public static void tearDownClass() {
fFacility.disposeExperiment();
fFacility.dispose();
fFacility = null;
}
/**
* Test Case: 001
* Description: Verify that time range signal is send with correct values when going to first page
* Verified Methods: broadcast()
* Expected result: Time range sync signal is sent with correct range and current time.
*/
@Test
public void verifyFirstPageSignal() {
TmfTimestamp currentTime = new Uml2SDTestTimestamp(9788641608418L);
range = new TmfTimeRange(currentTime, new Uml2SDTestTimestamp(currentTime.getValue() + rangeWindow.getValue()));
fTmfComponent.setSignalError(false);
fTmfComponent.setSourceError(false);
fTmfComponent.setRangeError(false);
fTmfComponent.setWindowRangeSignalReceived(false);
// set expected values
fTmfComponent.setSource(fFacility.getLoader());
fTmfComponent.setCurrentRange(range);
fFacility.firstPage();
WaitUtils.waitUntil(validator -> validator.isWindowRangeSignalReceived(), fTmfComponent, "Window range signal not received");
assertFalse("TmfRangeSynchSignal", fTmfComponent.isSignalError());
assertFalse("TmfRangeSynchSignal", fTmfComponent.isSourceError());
assertFalse("TmfRangeSynchSignal", fTmfComponent.isRangeError());
}
/**
* Test Case: 002
* Description: Verify that time sync signal is sent correctly after selection
* Verified Methods: loader.broadcast(), testSelectionChanged
* Expected result: Time sync signal is sent with correct current time.
*/
@Test
public void verifySelectionSignal() {
int count = fFacility.getSdView().getFrame().syncMessageCount();
assertEquals("Test Preparation", IUml2SDTestConstants.MAX_MESSEAGES_PER_PAGE, count);
GraphNode node = fFacility.getSdView().getFrame().getSyncMessage(3);
fTmfComponent.setSignalError(false);
fTmfComponent.setSourceError(false);
fTmfComponent.setCurrentTimeError(false);
fTmfComponent.setSelectionRangeSignalReceived(false);
// set expected values
fTmfComponent.setSource(fFacility.getLoader());
fTmfComponent.setCurrentTime(new Uml2SDTestTimestamp(9788642113228L));
fFacility.getSdView().getSDWidget().moveTo(node); // selects the given node
WaitUtils.waitUntil(validator -> validator.isSelectionRangeSignalReceived(), fTmfComponent, "Selection range signal not received");
assertFalse("TmfTimeSynchSignal", fTmfComponent.isSignalError());
assertFalse("TmfTimeSynchSignal", fTmfComponent.isSourceError());
assertFalse("TmfTimeSynchSignal", fTmfComponent.isCurrentTimeError());
fTmfComponent.dispose();
}
}