001/* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018package org.apache.hadoop.hbase; 019 020import java.util.List; 021import org.junit.jupiter.api.extension.Extension; 022import org.junit.jupiter.api.extension.TestTemplateInvocationContext; 023import org.junit.jupiter.params.provider.Arguments; 024 025/** 026 * @see HBaseParameterizedTestTemplate 027 */ 028public class HBaseParameterizedInvocationContext implements TestTemplateInvocationContext { 029 030 private final Arguments arguments; 031 032 private final String namePattern; 033 034 HBaseParameterizedInvocationContext(Arguments arguments, String namePattern) { 035 this.arguments = arguments; 036 this.namePattern = namePattern; 037 } 038 039 @Override 040 public String getDisplayName(int invocationIndex) { 041 String result = namePattern.replace("{index}", String.valueOf(invocationIndex)); 042 043 Object[] args = arguments.get(); 044 for (int i = 0; i < args.length; i++) { 045 result = result.replace("{" + i + "}", String.valueOf(args[i])); 046 } 047 return result; 048 } 049 050 @Override 051 public List<Extension> getAdditionalExtensions() { 052 return List.of(new HBaseParameterizedParameterResolver(arguments)); 053 } 054}