blob: 522e7831a5232c8996318f909515f74664d76467 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2014 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:
* Mathieu Denis <mathieu.denis@polymtl.ca> - Initial design and implementation
* Alexandre Montplaisir - Port to JUnit4
*******************************************************************************/
package org.eclipse.tracecompass.tmf.ui.tests.statistics;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerComparator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model.TmfBaseColumnData;
import org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model.TmfBaseColumnData.ITmfColumnPercentageProvider;
import org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model.TmfStatisticsTree;
import org.eclipse.tracecompass.internal.tmf.ui.viewers.statistics.model.TmfStatisticsTreeNode;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.junit.Before;
import org.junit.Test;
/**
* TmfBaseColumnData Test Case.
*/
public class TmfBaseColumnDataTest {
// ------------------------------------------------------------------------
// Fields
// ------------------------------------------------------------------------
private int fAlignment;
private int fWidth;
private String fHeader;
private String fToolTip;
private ColumnLabelProvider fLabelProvider;
private ViewerComparator fComparator;
private ITmfColumnPercentageProvider fPercentageProvider;
private TmfStatisticsTreeNode fTreeNode;
private String fTraceName;
private TmfBaseColumnData fBaseColumnData;
// ------------------------------------------------------------------------
// Housekeeping
// ------------------------------------------------------------------------
/**
* Pre-test setup
*/
@Before
public void init() {
fHeader = "test Column1";
fWidth = 300;
fAlignment = SWT.LEFT;
fToolTip = "Tooltip " + fHeader;
fLabelProvider = new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((TmfStatisticsTreeNode) element).getName();
}
@Override
public Image getImage(Object element) {
return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT);
}
};
fComparator = new ViewerComparator() {
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
TmfStatisticsTreeNode n1 = (TmfStatisticsTreeNode) e1;
TmfStatisticsTreeNode n2 = (TmfStatisticsTreeNode) e2;
return n1.getName().compareTo(n2.getName());
}
};
fPercentageProvider = new ITmfColumnPercentageProvider() {
@Override
public double getPercentage(TmfStatisticsTreeNode node) {
TmfStatisticsTreeNode parent = node;
do {
parent = parent.getParent();
} while (parent != null && parent.getValues().getTotal() == 0);
if (parent == null) {
return 0;
}
return (double) node.getValues().getTotal() / parent.getValues().getTotal();
}
};
TmfStatisticsTree baseData = new TmfStatisticsTree();
fTraceName = "trace1";
fTreeNode = new TmfStatisticsTreeNode(baseData, baseData.getRootNode(), fTraceName);
fBaseColumnData = new TmfBaseColumnData(fHeader, fWidth, fAlignment, fToolTip, fLabelProvider, fComparator, fPercentageProvider);
}
// ------------------------------------------------------------------------
// Test methods
// ------------------------------------------------------------------------
/**
* Test get header
*/
@Test
public void testGetHeader() {
assertEquals("getHeader", 0, fBaseColumnData.getHeader().compareTo(fHeader));
}
/**
* Test getting of column width.
*/
@Test
public void testGetWidth() {
assertEquals("getWidth", fWidth, fBaseColumnData.getWidth());
}
/**
* Test getting of alignment value
*/
@Test
public void testGetAlignment() {
assertEquals("getAlignment", fAlignment, fBaseColumnData.getAlignment());
}
/**
* Test getting of tooltip.
*/
@Test
public void testGetTooltip() {
assertEquals("getTooltip", fToolTip, fBaseColumnData.getTooltip());
}
/**
* Test getting of label provider
*/
@Test
public void testGetLabelProvider() {
assertEquals("getLabelProvider", 0, fBaseColumnData.getLabelProvider().getText(fTreeNode).compareTo(fLabelProvider.getText(fTreeNode)));
assertTrue("getLabelProvider", fBaseColumnData.getLabelProvider().getImage(fTreeNode).equals(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT)));
assertTrue("getLabelProvider", fBaseColumnData.getLabelProvider().equals(fLabelProvider));
}
/**
* Test getting of comparator.
*/
@Test
public void testGetComparator() {
assertTrue("getComparator", fBaseColumnData.getComparator().equals(fComparator));
}
/**
* Test getting of percentage provider.
*/
@Test
public void testGetPercentageProvider() {
assertTrue("getPercentageProvider", fBaseColumnData.getPercentageProvider().equals(fPercentageProvider));
}
}