import { Quantity } from "./Quantity"; // Asegúrate de importar correctamente la clase Quantity. describe("Quantity Value Object", () => { // Prueba la creación de una cantidad válida. it("Should create a valid quantity (number)", () => { const validQuantity = Quantity.create(5); expect(validQuantity.isSuccess).toBe(true); expect(validQuantity.object.toNumber()).toBe(5); }); it("Should create a valid quantity (string)", () => { const validQuantity = Quantity.create("99"); expect(validQuantity.isSuccess).toBe(true); expect(validQuantity.object.toNumber()).toBe(99); }); it("Should create a valid quantity (null)", () => { const validQuantity = Quantity.create(null); expect(validQuantity.isSuccess).toBe(true); expect(validQuantity.object.isNull).toBeTruthy(); }); // Prueba la creación de una cantidad nula. it("Should create a valid null quantity", () => { const nullQuantity = Quantity.create(null); expect(nullQuantity.isSuccess).toBe(true); expect(nullQuantity.object.isNull()).toBe(true); }); // Prueba la creación de una cantidad válida a partir de una cadena. it("Should create a valid quantity from string", () => { const validQuantityFromString = Quantity.create("10"); expect(validQuantityFromString.isSuccess).toBe(true); expect(validQuantityFromString.object.toNumber()).toBe(10); }); // Prueba la creación de una cantidad con una cadena no válida. it("Should fail to create quantity from invalid string", () => { const invalidQuantityFromString = Quantity.create("invalid"); expect(invalidQuantityFromString.isFailure).toBe(true); }); // Prueba la conversión a número. it("Should convert to number", () => { const quantity = Quantity.create(7).object; const result = quantity.toNumber(); expect(result).toBe(7); }); // Prueba la conversión a cadena. it("Should convert to string", () => { const quantity = Quantity.create(15).object; const result = quantity.toString(); expect(result).toBe("15"); }); // Prueba la operación de incremento. it("Should increment quantity", () => { const quantity = Quantity.create(5).object; const incrementedQuantity = quantity.increment(3).object; expect(incrementedQuantity.toNumber()).toBe(8); }); // Prueba la operación de decremento. it("Should decrement quantity", () => { const quantity = Quantity.create(10).object; const decrementedQuantity = quantity.decrement(4).object; expect(decrementedQuantity.toNumber()).toBe(6); }); });