tmf: Generalize the support for call sites and model URIs
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / event / lookup / TmfCallsiteTest.java
1 /*******************************************************************************
2 * Copyright (c) 2013 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Bernd Hufmann - Initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.tmf.core.tests.event.lookup;
14
15 import static org.junit.Assert.assertEquals;
16 import static org.junit.Assert.assertFalse;
17 import static org.junit.Assert.assertTrue;
18
19 import org.eclipse.linuxtools.tmf.core.event.lookup.ITmfCallsite;
20 import org.eclipse.linuxtools.tmf.core.event.lookup.TmfCallsite;
21 import org.junit.Test;
22
23 /**
24 * Test suite for the TmfCallsite class.
25 */
26 @SuppressWarnings("javadoc")
27 public class TmfCallsiteTest {
28
29 // ------------------------------------------------------------------------
30 // Variables
31 // ------------------------------------------------------------------------
32 private final static String fFileName1 = "filename1";
33 private final static String fFunctionName1 = "func1";
34 private final static long fLine1 = 10;
35
36 private final static String fFileName2 = "filename2";
37 private final static String fFunctionName2 = "func2";
38 private final static long fLine2 = 25;
39
40 private final static String fFileName3 = "filename3";
41 private final static String fFunctionName3 = null;
42 private final static long fLine3 = 123;
43
44 private final static ITmfCallsite fCallsite1 = new TmfCallsite(fFileName1, fFunctionName1, fLine1);
45 private final static ITmfCallsite fCallsite2 = new TmfCallsite(fFileName2, fFunctionName2, fLine2);
46 private final static ITmfCallsite fCallsite3 = new TmfCallsite(fFileName3, fFunctionName3, fLine3);
47
48 // ------------------------------------------------------------------------
49 // Constructors
50 // ------------------------------------------------------------------------
51
52 @Test
53 public void testDefaultConstructor() {
54 assertEquals(fFileName1, fCallsite1.getFileName());
55 assertEquals(fFunctionName1, fCallsite1.getFunctionName());
56 assertEquals(fLine1, fCallsite1.getLineNumber());
57 }
58
59 @Test
60 public void testCallsiteCopy() {
61 TmfCallsite copy = new TmfCallsite(fCallsite1);
62
63 assertEquals(fFileName1, copy.getFileName());
64 assertEquals(fFunctionName1, copy.getFunctionName());
65 assertEquals(fLine1, copy.getLineNumber());
66 }
67
68 @Test(expected=IllegalArgumentException.class)
69 public void testCallsiteCopy2() {
70 new TmfCallsite(null);
71 }
72
73 @Test(expected=IllegalArgumentException.class)
74 public void testCallsiteCopy3() {
75 new TmfCallsite(new ITmfCallsite() {
76 @Override
77 public long getLineNumber() {
78 return 0;
79 }
80
81 @Override
82 public String getFunctionName() {
83 return null;
84 }
85
86 @Override
87 public String getFileName() {
88 return null;
89 }
90 });
91 }
92
93 @Test(expected=IllegalArgumentException.class)
94 public void testCallsiteFileNull() {
95 new TmfCallsite(null, fFunctionName1, fLine1);
96 }
97
98 // ------------------------------------------------------------------------
99 // hashCode
100 // ------------------------------------------------------------------------
101
102 @Test
103 public void testHashCode() {
104 final ITmfCallsite callsite1b = new TmfCallsite(fCallsite1);
105 final ITmfCallsite callsite2b = new TmfCallsite(fCallsite2);
106
107 assertTrue("hashCode", fCallsite1.hashCode() == callsite1b.hashCode());
108 assertTrue("hashCode", fCallsite2.hashCode() == callsite2b.hashCode());
109
110 assertTrue("hashCode", fCallsite1.hashCode() != fCallsite2.hashCode());
111 assertTrue("hashCode", fCallsite2.hashCode() != fCallsite1.hashCode());
112 }
113
114 // ------------------------------------------------------------------------
115 // equals
116 // ------------------------------------------------------------------------
117
118 @Test
119 public void testEqualsReflexivity() {
120 assertTrue("equals", fCallsite1.equals(fCallsite1));
121 assertTrue("equals", fCallsite2.equals(fCallsite2));
122
123 assertFalse("equals", fCallsite1.equals(fCallsite2));
124 assertFalse("equals", fCallsite2.equals(fCallsite1));
125 }
126
127 @Test
128 public void testEqualsSymmetry() {
129 final ITmfCallsite callsite1 = new TmfCallsite(fCallsite1);
130 final ITmfCallsite callsite2 = new TmfCallsite(fCallsite2);
131
132 assertTrue("equals", callsite1.equals(fCallsite1));
133 assertTrue("equals", fCallsite1.equals(callsite1));
134
135 assertTrue("equals", callsite2.equals(fCallsite2));
136 assertTrue("equals", fCallsite2.equals(callsite2));
137 }
138
139 @Test
140 public void testEqualsTransivity() {
141 final ITmfCallsite callsite1 = new TmfCallsite(fCallsite1);
142 final ITmfCallsite callsite2 = new TmfCallsite(fCallsite1);
143 final ITmfCallsite callsite3 = new TmfCallsite(fCallsite1);
144
145 assertTrue("equals", callsite1.equals(callsite2));
146 assertTrue("equals", callsite2.equals(callsite3));
147 assertTrue("equals", callsite1.equals(callsite3));
148 }
149
150 @Test
151 public void testEqualsNull() {
152 assertFalse("equals", fCallsite1.equals(null));
153 assertFalse("equals", fCallsite2.equals(null));
154 assertFalse("equals", fCallsite3.equals(null));
155 }
156
157 @Test
158 public void testNonEqualClasses() {
159 assertFalse("equals", fCallsite1.equals(fCallsite1.getFileName()));
160 }
161
162 @Test
163 public void testNullElements() {
164 ITmfCallsite callsite = new TmfCallsite(fFileName1, null, fLine1);
165 assertFalse("equals", fCallsite1.equals(callsite));
166 assertFalse("equals", callsite.equals(fCallsite1));
167 }
168
169 // ------------------------------------------------------------------------
170 // toString
171 // ------------------------------------------------------------------------
172
173 @Test
174 public void testToString() {
175 assertEquals("toString", "filename1:10 func1()", fCallsite1.toString());
176 assertEquals("toString", "filename2:25 func2()", fCallsite2.toString());
177 assertEquals("toString", "filename3:123", fCallsite3.toString());
178 }
179 }
This page took 0.034415 seconds and 5 git commands to generate.