package org.apache.lucene.util.junitcompat; import java.util.*; import org.apache.lucene.util.TestUtil; import org.junit.*; import org.junit.rules.RuleChain; import org.junit.rules.TestRule; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import com.carrotsearch.randomizedtesting.RandomizedContext; import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule; /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ public class TestSameRandomnessLocalePassedOrNot extends WithNestedTests { @ClassRule public static TestRule solrClassRules = RuleChain.outerRule(new SystemPropertiesRestoreRule()); @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule()); public TestSameRandomnessLocalePassedOrNot() { super(true); } public static class Nested extends WithNestedTests.AbstractNestedTest { public static String pickString; public static Locale defaultLocale; public static TimeZone defaultTimeZone; public static String seed; @BeforeClass public static void setup() { seed = RandomizedContext.current().getRunnerSeedAsString(); Random rnd = random(); pickString = TestUtil.randomSimpleString(rnd); defaultLocale = Locale.getDefault(); defaultTimeZone = TimeZone.getDefault(); } public void testPassed() { System.out.println("Picked locale: " + defaultLocale); System.out.println("Picked timezone: " + defaultTimeZone.getID()); } } @Test public void testSetupWithoutLocale() { Result runClasses = JUnitCore.runClasses(Nested.class); Assert.assertEquals(0, runClasses.getFailureCount()); String s1 = Nested.pickString; System.setProperty("tests.seed", Nested.seed); System.setProperty("tests.timezone", Nested.defaultTimeZone.getID()); System.setProperty("tests.locale", Nested.defaultLocale.toString()); JUnitCore.runClasses(Nested.class); String s2 = Nested.pickString; Assert.assertEquals(s1, s2); } }