@@ -41,24 +41,24 @@ public static void tearDown() throws Exception {
4141 }
4242
4343 /**
44- * Test method for {@link ubu.gii.dass.c01.ReusablePool#getInstanceReusable()}.
44+ * Método de prueba para {@link ubu.gii.dass.c01.ReusablePool#getInstanceReusable()}.
4545 */
4646 @ Test
4747 @ DisplayName ("testGetInstance" )
4848 public void testGetInstance () {
4949 try {
5050 ReusablePool pool1 = ReusablePool .getInstance ();
5151 ReusablePool pool2 = ReusablePool .getInstance ();
52- assertNotNull (pool1 );
53- assertNotNull (pool2 );
54- assertEquals (pool1 , pool2 , "Ambas son identicas " );
52+ assertNotNull (pool1 , "La instancia pool1 no debería ser nula." );
53+ assertNotNull (pool2 , "La instancia pool2 no debería ser nula." );
54+ assertEquals (pool1 , pool2 , "Ambos deben ser idénticos " );
5555 } catch (Exception e ) {
56- fail ("Exception en testGetInstance " + e .getMessage ());
56+ fail ("Excepción en testGetInstance: " + e .getMessage ());
5757 }
5858 }
5959
6060 /**
61- * Test method for {@link ubu.gii.dass.c01.ReusablePool#acquireReusable()}.
61+ * Método de prueba para {@link ubu.gii.dass.c01.ReusablePool#acquireReusable()}.
6262 */
6363 @ Test
6464 @ DisplayName ("testAcquireReusable" )
@@ -67,6 +67,7 @@ public void testAcquireReusable() {
6767 // Se almacenan los reusables adquiridos para compararlos
6868 Reusable [] reusables = new Reusable [ReusablePoolTest .maxResources ];
6969
70+ // Adquirir el máximo de instancias disponibles
7071 for (int numReusable = 0 ; numReusable < ReusablePoolTest .maxResources ; numReusable ++) {
7172 try {
7273 reusables [numReusable ] = pool .acquireReusable ();
@@ -76,24 +77,32 @@ public void testAcquireReusable() {
7677 }
7778 }
7879
79- // Verifica que los reusables adquiridos sean distintos entre sí
80+ // Verificar que los reusables adquiridos sean distintos entre sí
8081 for (int i = 0 ; i < ReusablePoolTest .maxResources - 1 ; i ++) {
8182 for (int j = i + 1 ; j < ReusablePoolTest .maxResources ; j ++) {
8283 assertNotEquals (reusables [i ], reusables [j ], "Los reusables deben ser distintos." );
8384 }
8485 }
8586
8687 // Comprueba que una nueva adquisición lanza una excepción
87- try {
88+ assertThrows ( NotFreeInstanceException . class , () -> {
8889 pool .acquireReusable ();
89- fail ("Excepcion NotFreeInstanceException no se ha lanzado al adquirir una nueva instancia reusable" );
90- } catch (NotFreeInstanceException ex ) {
91- // Se espera una excepción, si llega hasta aquí, el código es correcto.
90+ }, "No se lanzó NotFreeInstanceException al intentar adquirir más instancias." );
91+
92+ // Caso límite adicional: Liberar una instancia y volver a adquirirla
93+ try {
94+ pool .releaseReusable (reusables [0 ]);
95+ Reusable reciclado = pool .acquireReusable ();
96+ assertNotNull (reciclado , "El reusable reciclado es nulo." );
97+ assertSame (reusables [0 ], reciclado , "El recurso debe ser reutilizado tras liberarlo" );
98+ pool .releaseReusable (reciclado );
99+ } catch (Exception ex ) {
100+ fail ("Error en el caso límite adicional de testAcquireReusable: " + ex .getMessage ());
92101 }
93102 }
94103
95104 /**
96- * Test method for {@link ubu.gii.dass.c01.ReusablePool#releaseReusable()}.
105+ * Método de prueba para {@link ubu.gii.dass.c01.ReusablePool#releaseReusable()}.
97106 */
98107 @ Test
99108 @ DisplayName ("testReleaseReusable" )
@@ -102,19 +111,32 @@ public void testReleaseReusable() {
102111 ReusablePool pool = ReusablePool .getInstance ();
103112 Reusable obj1 = pool .acquireReusable ();
104113
105- assertNotNull (obj1 , "No deberia ser null " );
114+ assertNotNull (obj1 , "El reusable no debería ser nulo. " );
106115 pool .releaseReusable (obj1 );
107116
108117 Reusable obj2 = pool .acquireReusable ();
109- assertSame (obj1 , obj2 , "Tiene que ser reusado " );
118+ assertSame (obj1 , obj2 , "El reusable debe ser reutilizado. " );
110119 pool .releaseReusable (obj2 );
111120
112- // Try to release the same object again to trigger DuplicatedInstanceException
121+ // Caso límite: Intentar liberar null debe lanzar excepción
122+ assertThrows (IllegalArgumentException .class , () -> {
123+ pool .releaseReusable (null );
124+ }, "No se lanzó IllegalArgumentException al intentar liberar null." );
125+
126+ // Caso límite: Liberar un objeto no gestionado por el pool
127+ // Suponemos que crear un objeto Reusable directamente no está permitido
128+ Reusable fakeReusable = new Reusable ();
129+ assertThrows (IllegalArgumentException .class , () -> {
130+ pool .releaseReusable (fakeReusable );
131+ }, "No se lanzó IllegalArgumentException al intentar liberar un objeto no adquirido previamente." );
132+
133+ // Caso límite adicional: Intentar liberar nuevamente el mismo objeto
134+ pool .releaseReusable (obj2 );
113135 assertThrows (DuplicatedInstanceException .class , () -> {
114136 pool .releaseReusable (obj2 );
115- });
137+ }, "No se lanzó DuplicatedInstanceException al intentar liberar dos veces el mismo objeto." );
116138 } catch (Exception e ) {
117- fail ("Excepcion en testReleaseReusable: " + e .getMessage ());
139+ fail ("Excepción en testReleaseReusable: " + e .getMessage ());
118140 }
119141 }
120142}
0 commit comments