Commit | Line | Data |
---|---|---|
f47ed727 BH |
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 | } |