From 7f2e9ec2acf1335245a2813612d3324dbae75b74 Mon Sep 17 00:00:00 2001 From: Eykis Sambrano Date: Sun, 17 Jan 2021 19:04:18 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Se=20incluye=20codigo=20de=20implementaci?= =?UTF-8?q?=C3=B3n=20de=20Comparator=20para=20ordenar=20un=20cole?= =?UTF-8?q?cci=C3=B3n=20de=20productos=20por=20n=C3=BAmero=20de=20unidades?= =?UTF-8?q?=20(de=20mayor=20a=20menor)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/model/UnitsComparator.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/model/UnitsComparator.java diff --git a/src/main/java/model/UnitsComparator.java b/src/main/java/model/UnitsComparator.java new file mode 100644 index 0000000..4abdfd4 --- /dev/null +++ b/src/main/java/model/UnitsComparator.java @@ -0,0 +1,16 @@ +package model; + +import java.util.Comparator; + +public class UnitsComparator implements Comparator +{ + //https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#compare-T-T- + @Override + public int compare(Product o1, Product o2) + { + int num_o1= o1.getNumber(); + int num_o2= o2.getNumber(); + int resultado=num_o2-num_o1; //comparo + return resultado; + } +} \ No newline at end of file From 8ff4dfa01dfa28886eeb4ee776f11ecaa16db08f Mon Sep 17 00:00:00 2001 From: Eykis Sambrano Date: Mon, 18 Jan 2021 19:30:38 +0100 Subject: [PATCH 2/2] Se incluyen Test para UnitsComparator --- src/test/java/model/UnitsComparatorTest.java | 101 +++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/test/java/model/UnitsComparatorTest.java diff --git a/src/test/java/model/UnitsComparatorTest.java b/src/test/java/model/UnitsComparatorTest.java new file mode 100644 index 0000000..1b71ae8 --- /dev/null +++ b/src/test/java/model/UnitsComparatorTest.java @@ -0,0 +1,101 @@ +/** + * + */ +package model; + +import shopmanager.*; + +import static org.junit.jupiter.api.Assertions.*; + +import static org.mockito.Mockito.mockitoSession; + +import java.util.logging.Logger; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.mockito.junit.jupiter.MockitoExtension; + +import exceptions.NoEnoughStock; +import exceptions.NotInStock; +import exceptions.UnknownRepo; +import model.Product; +import model.Order; +import model.UnitsComparator; +import persistency.OrderRepository; +import shopManager.ProductTest; + +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; + + + +/** + * @author Elena Mosquera + * Clase para realizar los test a la clase UnitsComparator + * + */ +@ExtendWith(MockitoExtension.class) +class UnitsComparatorTest { + + //Se crean los mocks a utilizar (los dos productos que vamos a comprobar se ordenan correctamente) + @Mock(serializable = true) + private static Product producto1Mock= Mockito.mock(Product.class); + @Mock(serializable = true) + private static Product producto2Mock= Mockito.mock(Product.class); + + + //Inyecci�n de dependencias + //Los objetos contenidos en micestaTesteada son reemplazados autom�ticamente por los sustitutos (mocks) + @InjectMocks + private static UnitsComparator comparador; + + + /** + * Test para probar el método Compare {@link model.UnitsCompaator#compare()} + * Tres comprobaciones: producto1 > producto2, producto1=producto2, producto1 Producto 2") + void TestGreaterThan() { + Mockito.when(producto1Mock.getNumber()).thenReturn(4); + Mockito.when(producto2Mock.getNumber()).thenReturn(2); + + int result = comparador.compare(producto1Mock, producto2Mock); + assertTrue(result <= -1, "Se espera un número negativo (cantidad de producto 1 es mayor que la del 2)"); + } + + @Test + @Tag("unidad") + @DisplayName("Producto 1 < Producto 2") + void TestLessThan() { + Mockito.when(producto1Mock.getNumber()).thenReturn(1); + Mockito.when(producto2Mock.getNumber()).thenReturn(2); + + int result = comparador.compare(producto1Mock, producto2Mock); + assertTrue(result >= 1, "Se espera un número positivo (cantidad de producto 2 es mayor que la del 1)"); + } + + @Test + @Tag("unidad") + @DisplayName("Producto 1 = Producto 2") + void TestEqualThan() { + Mockito.when(producto1Mock.getNumber()).thenReturn(2); + Mockito.when(producto2Mock.getNumber()).thenReturn(2); + + int result = comparador.compare(producto1Mock, producto2Mock); + assertTrue(result == 0, "Se espera un 0 (cantidad de producto 2 es igual que la del 1)"); + } + + + + +}