/****************************************************************************** * Copyright (c) 2016 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 *******************************************************************************/ package org.eclipse.tracecompass.tmf.core.tests.parsers.custom; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.util.List; import java.util.function.Predicate; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceImportException; import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceType; import org.eclipse.tracecompass.tmf.core.project.model.TraceTypeHelper; import org.junit.Test; /** * Common code for custom trace type extension points tests. */ public abstract class AbstractCustomTraceExtensionTest { /** * @return Get the extension Id that will provide the trace type to test. */ protected abstract String getExtensionId(); /** * @return Get the path of the trace to test with the trace type provided by * an extension. */ protected abstract String getTestTracePath(); /** * Verifies that a trace type provided by an extension is present. */ @Test public void testTraceTypePresence() { assertNotNull(TmfTraceType.getTraceType(getExtensionId())); } /** * Verifies that a trace type contributed by an extension can validate a valid trace. * * @throws TmfTraceImportException * on error */ @Test public void testValidate() throws TmfTraceImportException { final Predicate<TraceTypeHelper> predicateTracetypeIdEquals = (t) -> t.getTraceTypeId().equals(getExtensionId()); @NonNull List<TraceTypeHelper> traceTypes = TmfTraceType.selectTraceType(getTestTracePath(), getExtensionId()); String failureMessage = String.format("Could not find expected custom trace type %s in extensions", getExtensionId()); assertTrue(failureMessage, traceTypes.stream().anyMatch(predicateTracetypeIdEquals)); } }