| /* |
| * Copyright 2015-2022 the original author or authors. |
| * |
| * All rights reserved. This program and the accompanying materials are |
| * made available under the terms of the Eclipse Public License v2.0 which |
| * accompanies this distribution and is available at |
| * |
| * https://www.eclipse.org/legal/epl-v20.html |
| */ |
| |
| package org.junit.vintage.engine; |
| |
| import org.junit.platform.engine.UniqueId; |
| import org.junit.vintage.engine.descriptor.VintageTestDescriptor; |
| |
| /** |
| * Test data builder for building unique IDs for the {@link VintageTestEngine}. |
| * |
| * Used to decouple tests from concrete unique ID strings. |
| * |
| * @since 4.12 |
| */ |
| public class VintageUniqueIdBuilder { |
| |
| public static UniqueId uniqueIdForErrorInClass(Class<?> clazz, Class<?> failingClass) { |
| return uniqueIdForClasses(clazz).append(VintageTestDescriptor.SEGMENT_TYPE_TEST, |
| "initializationError(" + failingClass.getName() + ")"); |
| } |
| |
| public static UniqueId uniqueIdForClass(Class<?> clazz) { |
| return uniqueIdForClasses(clazz); |
| } |
| |
| public static UniqueId uniqueIdForClasses(Class<?> clazz, Class<?>... clazzes) { |
| var uniqueId = uniqueIdForClass(clazz.getName()); |
| for (var each : clazzes) { |
| uniqueId = uniqueId.append(VintageTestDescriptor.SEGMENT_TYPE_TEST, each.getName()); |
| } |
| return uniqueId; |
| } |
| |
| public static UniqueId uniqueIdForClass(String fullyQualifiedClassName) { |
| var containerId = engineId(); |
| return containerId.append(VintageTestDescriptor.SEGMENT_TYPE_RUNNER, fullyQualifiedClassName); |
| } |
| |
| public static UniqueId uniqueIdForMethod(Class<?> testClass, String methodName) { |
| return uniqueIdForClass(testClass).append(VintageTestDescriptor.SEGMENT_TYPE_TEST, |
| methodValue(testClass, methodName)); |
| } |
| |
| private static String methodValue(Class<?> testClass, String methodName) { |
| return methodName + "(" + testClass.getName() + ")"; |
| } |
| |
| public static UniqueId uniqueIdForMethod(Class<?> testClass, String methodName, String index) { |
| return uniqueIdForClass(testClass).append(VintageTestDescriptor.SEGMENT_TYPE_TEST, |
| methodValue(testClass, methodName) + "[" + index + "]"); |
| } |
| |
| public static UniqueId uniqueIdForMethod(UniqueId containerId, Class<?> testClass, String methodName) { |
| return containerId.append(VintageTestDescriptor.SEGMENT_TYPE_TEST, methodValue(testClass, methodName)); |
| } |
| |
| public static UniqueId engineId() { |
| return UniqueId.forEngine(VintageTestDescriptor.ENGINE_ID); |
| } |
| |
| } |