/*******************************************************************************
* Copyright (c) 2013, 2014 Ericsson
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Matthew Khouzam - Initial API and implementation
*******************************************************************************/
package org.eclipse.tracecompass.ctf.core.tests.types;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.eclipse.tracecompass.ctf.core.CTFException;
import org.eclipse.tracecompass.ctf.core.event.IEventDeclaration;
import org.eclipse.tracecompass.ctf.core.event.IEventDefinition;
import org.eclipse.tracecompass.ctf.core.event.scope.IDefinitionScope;
import org.eclipse.tracecompass.ctf.core.event.types.StructDeclaration;
import org.eclipse.tracecompass.ctf.core.tests.shared.CtfTestTraceUtils;
import org.eclipse.tracecompass.ctf.core.trace.CTFTrace;
import org.eclipse.tracecompass.ctf.core.trace.CTFTraceReader;
import org.eclipse.tracecompass.internal.ctf.core.event.EventDeclaration;
import org.eclipse.tracecompass.internal.ctf.core.event.LostEventDeclaration;
import org.eclipse.tracecompass.internal.ctf.core.trace.CTFStream;
import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace;
import org.junit.Before;
import org.junit.Test;
/**
* The class <code>EventDeclarationTest</code> contains tests for the class
* <code>{@link EventDeclaration}</code>.
*
* @author ematkho
* @version $Revision: 1.0 $
*/
@SuppressWarnings("javadoc")
public class EventDeclarationTest {
private static final CtfTestTrace testTrace = CtfTestTrace.KERNEL;
private EventDeclaration fixture;
/**
* Perform pre-test initialization.
*
* @throws CTFException
*/
@Before
public void setUp() throws CTFException {
fixture = new EventDeclaration();
fixture.setContext(new StructDeclaration(1L));
fixture.setId(1L);
fixture.setFields(new StructDeclaration(1L));
fixture.setStream(new CTFStream(CtfTestTraceUtils.getTrace(testTrace)));
fixture.setName("");
}
/**
* Run the EventDeclaration() constructor test.
*/
@Test
public void testEventDeclaration() {
EventDeclaration result = new EventDeclaration();
assertNotNull(result);
}
/**
* Run the boolean contextIsSet() method test.
*/
@Test
public void testContextIsSet() {
boolean result = fixture.contextIsSet();
assertTrue(result);
}
/**
* Run the boolean contextIsSet() method test.
*/
@Test
public void testContextIsSet_null() {
fixture.setContext((StructDeclaration) null);
boolean result = fixture.contextIsSet();
assertFalse(result);
}
/**
* Run the boolean equals(Object) method test.
*
* @throws CTFException
*/
@Test
public void testEquals() throws CTFException {
EventDeclaration obj = new EventDeclaration();
obj.setContext(new StructDeclaration(1L));
obj.setId(1L);
obj.setFields(new StructDeclaration(1L));
obj.setStream(new CTFStream(CtfTestTraceUtils.getTrace(testTrace)));
obj.setName("");
assertTrue(fixture.equals(fixture));
boolean result = fixture.equals(obj);
assertFalse(result);
}
/**
* Run the boolean equals(Object) method test.
*/
@Test
public void testEquals_null() {
Object obj = null;
boolean result = fixture.equals(obj);
assertFalse(result);
}
/**
* Run the boolean equals(Object) method test.
*/
@Test
public void testEquals_emptyObject() {
Object obj = new Object();
boolean result = fixture.equals(obj);
assertFalse(result);
}
/**
* Run the boolean equals(Object) method test.
*/
@Test
public void testEquals_other1() {
EventDeclaration obj = new EventDeclaration();
obj.setContext(fixture.getContext());
boolean result = fixture.equals(obj);
assertFalse(result);
}
/**
* Run the boolean equals(Object) method test.
*/
@Test
public void testEquals_other2() {
EventDeclaration obj = new EventDeclaration();
obj.setContext(new StructDeclaration(1L));
obj.setFields(new StructDeclaration(1L));
boolean result = fixture.equals(obj);
assertFalse(result);
}
/**
* Run the boolean equals(Object) method test.
*/
@Test
public void testEquals_other3() {
EventDeclaration obj = new EventDeclaration();
obj.setContext(new StructDeclaration(1L));
obj.setId(1L);
obj.setFields(new StructDeclaration(1L));
boolean result = fixture.equals(obj);
assertFalse(result);
}
/**
* Run the boolean equals(Object) method test.
*/
@Test
public void testEquals_other4() {
EventDeclaration obj = new EventDeclaration();
obj.setContext(new StructDeclaration(1L));
obj.setId(1L);
obj.setFields(new StructDeclaration(1L));
obj.setName("");
boolean result = fixture.equals(obj);
assertFalse(result);
}
/**
* Run the boolean fieldsIsSet() method test.
*/
@Test
public void testFieldsIsSet() {
boolean result = fixture.fieldsIsSet();
assertTrue(result);
}
/**
* Run the boolean fieldsIsSet() method test.
*/
@Test
public void testFieldsIsSet_null() {
fixture.setFields((StructDeclaration) null);
boolean result = fixture.fieldsIsSet();
assertFalse(result);
}
/**
* Run the StructDeclaration getFields() method test.
*/
@Test
public void testGetFields() {
StructDeclaration result = fixture.getFields();
assertNotNull(result);
}
/**
* Run the Long getId() method test.
*/
@Test
public void testGetId() {
assertEquals(1, fixture.id());
}
/**
* Run the String getName() method test.
*/
@Test
public void testGetName() {
String result = fixture.getName();
assertNotNull(result);
}
/**
* Run the Stream getStream() method test.
*/
@Test
public void testGetStream() {
CTFStream result = fixture.getStream();
assertNotNull(result);
}
/**
* Run the int hashCode() method test.
*/
@Test
public void testHashCode() {
int result = fixture.hashCode();
assertTrue(0 != result);
}
/**
* Run the int hashCode() method test.
*/
@Test
public void testHashCode_null() {
fixture.setStream((CTFStream) null);
fixture.setName((String) null);
int result = fixture.hashCode();
assertTrue(0 != result);
}
/**
* Run the boolean idIsSet() method test.
*/
@Test
public void testIdIsSet() {
boolean result = fixture.idIsSet();
assertTrue(result);
}
/**
* Run the boolean nameIsSet() method test.
*/
@Test
public void testNameIsSet() {
boolean result = fixture.nameIsSet();
assertTrue(result);
}
/**
* Run the boolean nameIsSet() method test.
*/
@Test
public void testNameIsSet_null() {
fixture.setName((String) null);
boolean result = fixture.nameIsSet();
assertFalse(result);
}
/**
* Run the boolean streamIsSet() method test.
*/
@Test
public void testStreamIsSet() {
boolean result = fixture.streamIsSet();
assertTrue(result);
}
/**
* Run the boolean streamIsSet() method test.
*/
@Test
public void testStreamIsSet_null() {
fixture.setStream((CTFStream) null);
boolean result = fixture.streamIsSet();
assertEquals(false, result);
}
/**
* Test for the EventDefinition class
*
* @throws CTFException
*/
@Test
public void testEventDefinition() throws CTFException {
CTFTrace trace = CtfTestTraceUtils.getTrace(testTrace);
IEventDefinition ed = null;
try (CTFTraceReader tr = new CTFTraceReader(trace);) {
tr.advance();
ed = tr.getCurrentEventDef();
}
assertTrue(ed instanceof IDefinitionScope);
IDefinitionScope ds = (IDefinitionScope)ed;
assertNotNull(ed);
assertNotNull(ds.getScopePath());
assertNotNull(ed.getDeclaration());
assertNotNull(ed.getFields());
assertNull(ed.getContext());
assertNotNull(ed.getPacketContext());
assertNotNull(ed.getCPU());
assertNull(ds.lookupDefinition("context"));
assertNotNull(ds.lookupDefinition("fields"));
assertNull(ds.lookupDefinition("other"));
assertNotNull(ed.toString());
}
IEventDeclaration e1;
IEventDeclaration e2;
@Test
public void testEquals1() {
e1 = new EventDeclaration();
assertFalse(e1.equals(null));
}
@Test
public void testEquals2() {
e1 = LostEventDeclaration.INSTANCE;
assertFalse(e1.equals(new Long(23L)));
}
@Test
public void testEquals3() {
e1 = LostEventDeclaration.INSTANCE;
assertEquals(e1, e1);
}
@Test
public void testEquals4() {
e1 = LostEventDeclaration.INSTANCE;
e2 = LostEventDeclaration.INSTANCE;
assertEquals(e1, e2);
}
@Test
public void testEquals5() {
e1 = LostEventDeclaration.INSTANCE;
e2 = new EventDeclaration();
assertFalse(e1.equals(e2));
}
}