81 lines
2.5 KiB
TypeScript
81 lines
2.5 KiB
TypeScript
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);
|
|
});
|
|
});
|