/*******************************************************************************
* 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.trace;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Set;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.tracecompass.ctf.core.CTFException;
import org.eclipse.tracecompass.ctf.core.event.types.IDeclaration;
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.CTFStreamInput;
import org.eclipse.tracecompass.ctf.core.trace.CTFTrace;
import org.eclipse.tracecompass.internal.ctf.core.event.EventDeclaration;
import org.eclipse.tracecompass.internal.ctf.core.event.metadata.ParseException;
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>StreamTest</code> contains tests for the class
* <code>{@link CTFStream}</code>.
*
* @author ematkho
* @version $Revision: 1.0 $
*/
@SuppressWarnings("javadoc")
public class CTFStreamTest {
private static final CtfTestTrace testTrace = CtfTestTrace.KERNEL;
private CTFStream fixture;
private CTFStreamInput fInput;
/**
* Perform pre-test initialization.
*
* @throws CTFException
*/
@Before
public void setUp() throws CTFException {
fixture = new CTFStream(CtfTestTraceUtils.getTrace(testTrace));
fixture.setEventContext(new StructDeclaration(1L));
fixture.setPacketContext(new StructDeclaration(1L));
fixture.setEventHeader(new StructDeclaration(1L));
fixture.setId(1L);
fInput = new CTFStreamInput(new CTFStream(CtfTestTraceUtils.getTrace(testTrace)), createFile());
fixture.addInput(fInput);
}
private static @NonNull File createFile() throws CTFException {
File path = new File(CtfTestTraceUtils.getTrace(testTrace).getPath());
final File[] listFiles = path.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.contains("hann")) {
return true;
}
return false;
}
});
assertNotNull(listFiles);
final File returnFile = listFiles[0];
assertNotNull(returnFile);
return returnFile;
}
/**
* Run the Stream(CTFTrace) constructor test.
*
* @throws CTFException
*/
@Test
public void testStream() throws CTFException {
CTFTrace trace = CtfTestTraceUtils.getTrace(testTrace);
CTFStream result = new CTFStream(trace);
assertNotNull(result);
}
/**
* Run the void addEvent(EventDeclaration) method test with the basic event.
*
* @throws ParseException
*/
@Test
public void testAddEvent_base() throws ParseException {
EventDeclaration event = new EventDeclaration();
fixture.addEvent(event);
}
/**
* Run the boolean eventContextIsSet() method test.
*/
@Test
public void testEventContextIsSet() {
assertTrue(fixture.isEventContextSet());
}
/**
* Run the boolean eventContextIsSet() method test.
*/
@Test
public void testToString() {
assertNotNull(fixture.toString());
}
/**
* Run the boolean eventHeaderIsSet() method test.
*/
@Test
public void testEventHeaderIsSet() {
assertTrue(fixture.isEventHeaderSet());
}
/**
* Run the StructDeclaration getEventContextDecl() method test.
*/
@Test
public void testGetEventContextDecl() {
assertNotNull(fixture.getEventContextDecl());
}
/**
* Run the StructDeclaration getEventHeaderDecl() method test.
*/
@Test
public void testGetEventHeaderDecl() {
IDeclaration eventHeaderDecl = fixture.getEventHeaderDeclaration();
assertNotNull(eventHeaderDecl);
}
/**
* Run the HashMap<Long, EventDeclaration> getEvents() method test.
*/
@Test
public void testGetEvents() {
assertNotNull(fixture.getEventDeclarations());
}
/**
* Run the Long getId() method test.
*/
@Test
public void testGetId() {
Long result = fixture.getId();
assertNotNull(result);
}
/**
* Run the StructDeclaration getPacketContextDecl() method test.
*/
@Test
public void testGetPacketContextDecl() {
StructDeclaration result = fixture.getPacketContextDecl();
assertNotNull(result);
}
/**
* Run the Set<StreamInput> getStreamInputs() method test.
*/
@Test
public void testGetStreamInputs() {
Set<CTFStreamInput> result = fixture.getStreamInputs();
assertNotNull(result);
}
/**
* Run the CTFTrace getTrace() method test.
*/
@Test
public void testGetTrace() {
CTFTrace result = fixture.getTrace();
assertNotNull(result);
}
/**
* Run the boolean idIsSet() method test.
*/
@Test
public void testIdIsSet() {
boolean result = fixture.isIdSet();
assertTrue(result);
}
/**
* Run the boolean packetContextIsSet() method test.
*/
@Test
public void testPacketContextIsSet() {
boolean result = fixture.isPacketContextSet();
assertTrue(result);
}
/**
* Run the void setEventContext(StructDeclaration) method test.
*/
@Test
public void testSetEventContext() {
StructDeclaration eventContext = new StructDeclaration(1L);
fixture.setEventContext(eventContext);
}
/**
* Run the void setEventHeader(StructDeclaration) method test.
*/
@Test
public void testSetEventHeader() {
StructDeclaration eventHeader = new StructDeclaration(1L);
fixture.setEventHeader(eventHeader);
}
/**
* Run the void setId(long) method test.
*/
@Test
public void testSetId() {
long id = 1L;
fixture.setId(id);
}
/**
* Run the void setPacketContext(StructDeclaration) method test.
*/
@Test
public void testSetPacketContext() {
StructDeclaration packetContext = new StructDeclaration(1L);
fixture.setPacketContext(packetContext);
}
}