1 package org.jsoup; 2 3 import org.junit.jupiter.api.extension.AfterEachCallback; 4 import org.junit.jupiter.api.extension.ExtendWith; 5 import org.junit.jupiter.api.extension.ExtensionContext; 6 import org.junit.jupiter.params.ParameterizedTest; 7 import org.junit.jupiter.params.provider.Arguments; 8 import org.junit.jupiter.params.provider.ArgumentsProvider; 9 import org.junit.jupiter.params.provider.ArgumentsSource; 10 11 import java.lang.annotation.*; 12 import java.util.Locale; 13 import java.util.stream.Stream; 14 15 public class MultiLocaleExtension implements AfterEachCallback, ArgumentsProvider { 16 private final Locale defaultLocale = Locale.getDefault(); 17 18 @Override afterEach(ExtensionContext context)19 public void afterEach(ExtensionContext context) { 20 Locale.setDefault(defaultLocale); 21 } 22 23 @Override provideArguments(ExtensionContext extensionContext)24 public Stream<? extends Arguments> provideArguments(ExtensionContext extensionContext) { 25 return Stream.of(Arguments.of(Locale.ENGLISH), Arguments.arguments(new Locale("tr"))); 26 } 27 28 29 @Documented 30 @Target(ElementType.METHOD) 31 @Retention(RetentionPolicy.RUNTIME) 32 @ArgumentsSource(MultiLocaleExtension.class) 33 @ExtendWith(MultiLocaleExtension.class) 34 @ParameterizedTest 35 public @interface MultiLocaleTest { 36 } 37 38 } 39