View Javadoc

1   // Copyright (C) 2004 - 2011 Philip Aston
2   // All rights reserved.
3   //
4   // This file is part of The Grinder software distribution. Refer to
5   // the file LICENSE which is part of The Grinder distribution for
6   // licensing details. The Grinder distribution is available on the
7   // Internet at http://grinder.sourceforge.net/
8   //
9   // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
10  // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
11  // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
12  // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
13  // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
14  // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
15  // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
16  // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18  // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
20  // OF THE POSSIBILITY OF SUCH DAMAGE.
21  
22  package net.grinder.common;
23  
24  import static java.util.Collections.singleton;
25  import static org.junit.Assert.assertEquals;
26  import static org.junit.Assert.assertNotNull;
27  import static org.junit.Assert.assertTrue;
28  import static org.junit.Assert.fail;
29  
30  import java.io.IOException;
31  import java.net.URL;
32  import java.util.Collections;
33  
34  import net.grinder.util.BlockingClassLoader;
35  
36  import org.junit.Test;
37  
38  
39  /**
40   * Unit tests for {@link GrinderBuild}.
41   *
42   * @author Philip Aston
43   */
44  public class TestGrinderBuild {
45  
46    @Test public void testGrinderBuildStrings() throws Exception {
47      final String expectedVersion = System.getProperty("grinder.version");
48  
49      if (expectedVersion != null) {
50        // Our build has told us what to expect.
51        assertEquals(expectedVersion, GrinderBuild.getVersionString());
52      }
53      else {
54        assertNotNull(GrinderBuild.getVersionString());
55      }
56  
57      assertTrue(GrinderBuild.getName().indexOf("The Grinder") >= 0);
58    }
59  
60    @Test public void testGrinderBuildExceptions() throws Exception {
61      final ClassLoader blockingLoader =
62        new BlockingClassLoader(Collections.<String>emptySet(),
63                                singleton(GrinderBuild.class.getName()),
64                                Collections.<String>emptySet(),
65                                false) {
66          @Override public URL getResource(String name) {
67            // Be evil.
68            return null;
69          }
70        };
71  
72      try {
73        Class.forName(GrinderBuild.class.getName(), true, blockingLoader);
74        fail("Expected ExceptionInInitializerError");
75      }
76      catch (ExceptionInInitializerError e) {
77        assertTrue(e.getCause().toString(), e.getCause() instanceof IOException);
78      }
79    }
80  
81    @Test(expected=UnsupportedOperationException.class)
82    public void coverConstructor() throws Exception {
83      new GrinderBuild();
84    }
85  }