xref: /aosp_15_r20/external/jsoup/src/test/java/org/jsoup/MultiLocaleExtension.java (revision 6da8f8c4bc310ad659121b84dd089062417a2ce2)
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