View Javadoc

1   package uba.db.testhelpers;
2   
3   import java.io.File;
4   import java.io.IOException;
5   import java.util.List;
6   
7   import junit.framework.Assert;
8   
9   /***
10   * Esta clase contiene algunos métodos utilitarios para simplificar la escritura
11   * de tests.
12   * 
13   * @version $Revision: 1.3 $
14   */
15  public final class TestUtils {
16      private TestUtils() {}
17  
18      /***
19       * Asserts para verificar una implementacion de equals (tambien se hace
20       * assert sobre el hashCode).
21       * 
22       * @param object
23       *            una instancia
24       * @param sameObject
25       *            una instancia igual a la primera
26       * @param other
27       *            otra instancia distinta a las anteriores
28       */
29      public static void assertEqualsImplementation(Object object, Object sameObject,
30              Object other) {
31          Assert.assertEquals(object, sameObject);
32          Assert.assertFalse(object.equals(other));
33          Assert.assertEquals(object.hashCode(), sameObject.hashCode());
34          Assert.assertFalse(object.equals(null));
35      }
36  
37      /***
38       * Muchas veces en los tests es necesario crear listas. La sintaxis de Java
39       * hace que para esta tarea haya que escribir muchisimo. Estos metodos
40       * "list" son para aliviar esta tarea.
41       * 
42       * @param elem1
43       *            un elemento de la lista
44       * 
45       * @return una lista con el elemento elem1
46       */
47      public static List list(Object elem1) {
48          return new ListBuilder().add(elem1).build();
49      }
50  
51      /***
52       * @see #list(Object)
53       */
54      public static List list(Object elem1, Object elem2) {
55          return new ListBuilder().add(elem1).add(elem2).build();
56      }
57  
58      /***
59       * @see #list(Object)
60       */
61      public static List list(Object elem1, Object elem2, Object elem3) {
62          return new ListBuilder().add(elem1).add(elem2).add(elem3).build();
63      }
64  
65      /***
66       * @see #list(Object)
67       */
68      public static List list(Object elem1, Object elem2, Object elem3, Object elem4) {
69          return new ListBuilder().add(elem1).add(elem2).add(elem3).add(elem4).build();
70      }
71  
72      /***
73       * Retorna el directorio temporal del sistema.
74       * 
75       * @throws IOException
76       *             si ocurrio un error al obtener el directorio temporal
77       */
78      public static File tempDirectory() throws IOException {
79          // esto es un poco bizarro pero es la forma más facil de obtener un
80          // directorio
81          // temporal, ya que para acceder a la propiedad de entorno
82          // java.io.tmp.dir se
83          // necesita ejecutar una accion privilegiada (y la clase File ya hace
84          // todo ese
85          // trabajo).
86          File tempFile = File.createTempFile("test", ".tmp");
87          File tempDirectory = tempFile.getParentFile();
88          tempFile.delete();
89          return tempDirectory;
90      }
91  }