MessageConveyorReloadTest xref

View Javadoc

    1   /*
    2    * Copyright (c) 2009 QOS.ch All rights reserved.
    3    *
    4    * Permission is hereby granted, free of charge, to any person obtaining a copy
    5    * of this software and associated documentation files (the "Software"), to deal
    6    * in the Software without restriction, including without limitation the rights
    7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    8    * copies of the Software, and to permit persons to whom the Software is
    9    * furnished to do so, subject to the following conditions:
    10   *
    11   * The above copyright notice and this permission notice shall be included in
    12   * all copies or substantial portions of the Software.
    13   *
    14   * THE SOFTWARE IS PROVIDED "AS  IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    20   * SOFTWARE.
    21   */
    22
    23  package ch.qos.cal10n;
    24
    25  import static org.junit.Assert.assertNotNull;
    26  import static org.junit.Assert.assertTrue;
    27
    28  import java.io.File;
    29  import java.io.IOException;
    30  import java.net.URL;
    31  import java.util.Locale;
    32  import java.util.ResourceBundle;
    33
    34  import org.junit.Test;
    35
    36  import ch.qos.cal10n.sample.Colors;
    37  import ch.qos.cal10n.util.CAL10NResourceBundle;
    38  import ch.qos.cal10n.util.MiscUtil;
    39
    40  public class MessageConveyorReloadTest {
    41
    42
    43    @Test
    44    public void bundleReload() throws IOException, InterruptedException {
    45      ClassLoader classLoader = this.getClass().getClassLoader();
    46      String resourceCandidate =  "colors" + "_" + "en" + ".properties";
    47      URL url = classLoader.getResource(resourceCandidate);
    48      assertNotNull("the problem is in this test, not the code tested", url);
    49
    50      MessageConveyor mc = new MessageConveyor(new Locale("en"));
    51      mc.getMessage(Colors.BLUE);
    52
    53      CAL10NResourceBundle initalRB = mc.cache.get(Colors.BLUE.getDeclaringClass().getName());
    54      initalRB.resetCheckTimes();
    55      File file =  MiscUtil.urlToFile(url);
    56      file.setLastModified(System.currentTimeMillis()+60*60*1000);
    57      mc.getMessage(Colors.BLUE);
    58      ResourceBundle other = mc.cache.get(Colors.BLUE.getDeclaringClass().getName());
    59      assertTrue(initalRB != other);
    60    }
    61  }