blob: dd4415ffb5926e0910b16003fad46f277122aa67 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013, 2015 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
*******************************************************************************/
package org.eclipse.tracecompass.tmf.core.tests.event.lookup;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.tracecompass.tmf.core.event.lookup.ITmfCallsite;
import org.eclipse.tracecompass.tmf.core.event.lookup.TmfCallsite;
import org.junit.Test;
/**
* Test suite for the TmfCallsite class.
*/
@SuppressWarnings("javadoc")
public class TmfCallsiteTest {
// ------------------------------------------------------------------------
// Variables
// ------------------------------------------------------------------------
private final static @NonNull String fFileName1 = "filename1";
private final static Long fLine1 = 10L;
private final static @NonNull String fFileName2 = "filename2";
private final static Long fLine2 = 25L;
private final static @NonNull String fFileName3 = "filename3";
private final static Long fLine3 = 123L;
private final static @NonNull String fFileName4 = "filename1";
private final static Long fLine4 = 11L;
private final static @NonNull ITmfCallsite fCallsite1 = new TmfCallsite(fFileName1, fLine1);
private final static @NonNull ITmfCallsite fCallsite2 = new TmfCallsite(fFileName2, fLine2);
private final static @NonNull ITmfCallsite fCallsite3 = new TmfCallsite(fFileName3, fLine3);
private final static @NonNull ITmfCallsite fCallsite4 = new TmfCallsite(fFileName4, fLine4);
// ------------------------------------------------------------------------
// Constructors
// ------------------------------------------------------------------------
@Test
public void testDefaultConstructor() {
assertEquals(fFileName1, fCallsite1.getFileName());
assertEquals(fLine1, fCallsite1.getLineNo());
}
@Test
public void testCallsiteCopy() {
TmfCallsite copy = new TmfCallsite(fCallsite1);
assertEquals(fFileName1, copy.getFileName());
assertEquals(fLine1, copy.getLineNo());
}
// ------------------------------------------------------------------------
// hashCode
// ------------------------------------------------------------------------
@Test
public void testHashCode() {
final ITmfCallsite callsite1b = new TmfCallsite(fCallsite1);
final ITmfCallsite callsite2b = new TmfCallsite(fCallsite2);
final ITmfCallsite callsite3b = new TmfCallsite(fCallsite3);
assertEquals("hashCode", fCallsite1.hashCode(), callsite1b.hashCode());
assertEquals("hashCode", fCallsite2.hashCode(), callsite2b.hashCode());
assertEquals("hashCode", fCallsite3.hashCode(), callsite3b.hashCode());
}
// ------------------------------------------------------------------------
// equals
// ------------------------------------------------------------------------
@Test
public void testEqualsReflexivity() {
assertTrue("equals", fCallsite1.equals(fCallsite1));
assertTrue("equals", fCallsite2.equals(fCallsite2));
assertFalse("equals", fCallsite1.equals(fCallsite2));
assertFalse("equals", fCallsite2.equals(fCallsite1));
assertFalse("equals", fCallsite1.equals(fCallsite4));
assertFalse("equals", fCallsite4.equals(fCallsite1));
}
@Test
public void testEqualsSymmetry() {
final ITmfCallsite callsite1 = new TmfCallsite(fCallsite1);
final ITmfCallsite callsite2 = new TmfCallsite(fCallsite2);
assertTrue("equals", callsite1.equals(fCallsite1));
assertTrue("equals", fCallsite1.equals(callsite1));
assertTrue("equals", callsite2.equals(fCallsite2));
assertTrue("equals", fCallsite2.equals(callsite2));
}
@Test
public void testEqualsTransivity() {
final ITmfCallsite callsite1 = new TmfCallsite(fCallsite1);
final ITmfCallsite callsite2 = new TmfCallsite(fCallsite1);
final ITmfCallsite callsite3 = new TmfCallsite(fCallsite1);
assertTrue("equals", callsite1.equals(callsite2));
assertTrue("equals", callsite2.equals(callsite3));
assertTrue("equals", callsite1.equals(callsite3));
}
@Test
public void testEqualsNull() {
assertFalse("equals", fCallsite1.equals(null));
assertFalse("equals", fCallsite2.equals(null));
assertFalse("equals", fCallsite3.equals(null));
}
@Test
public void testNonEqualClasses() {
assertFalse("equals", fCallsite1.equals(fCallsite1.getFileName()));
}
// ------------------------------------------------------------------------
// toString
// ------------------------------------------------------------------------
@Test
public void testToString() {
assertEquals("toString", "filename1:10", fCallsite1.toString());
assertEquals("toString", "filename2:25", fCallsite2.toString());
assertEquals("toString", "filename3:123", fCallsite3.toString());
}
}