This repository has been archived on 2020-08-02. You can view files and clone it, but cannot push or open issues or pull requests.
e-commerce/prototype/src/test/java/org/hso/ecommerce/action/warehouse/CreateManualBookingTest.java

89 lines
3.6 KiB
Java

package org.hso.ecommerce.action.warehouse;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.Optional;
import org.hso.ecommerce.action.warehouse.CreateManuelBookingAction.ArticleSlotConstraintFailedException;
import org.hso.ecommerce.entities.shop.Article;
import org.hso.ecommerce.entities.warehouse.Slot;
import org.hso.ecommerce.entities.warehouse.WarehouseBooking;
import org.hso.ecommerce.entities.warehouse.WarehouseBookingPositionSlotEntry;
import org.junit.jupiter.api.Test;
class CreateManualBookingTest {
@Test
void testIncrease() throws ArticleSlotConstraintFailedException {
Article article = new Article();
article.warehouseUnitsPerSlot = 20;
article.id = 1;
Article previousArticle = new Article();
previousArticle.id = 2;
WarehouseBookingPositionSlotEntry destinationSlot = new WarehouseBookingPositionSlotEntry();
destinationSlot.slot = new Slot();
destinationSlot.slot.slotNum = 5;
destinationSlot.article = previousArticle;
Optional<WarehouseBookingPositionSlotEntry> optSourceSlot = Optional.empty();
WarehouseBooking result = new CreateManuelBookingAction(article, 17, optSourceSlot, Optional.of(destinationSlot), "some reason").finish();
assertEquals(17, result.positions.get(0).amount);
assertEquals(17, result.positions.get(0).slotEntry.newSumSlot);
assertEquals(5, result.positions.get(0).slotEntry.slot.slotNum);
assertTrue(result.reason.isManuel);
assertEquals("some reason", result.reason.comment);
}
@Test
void testDecrease() throws ArticleSlotConstraintFailedException {
Article article = new Article();
article.warehouseUnitsPerSlot = 20;
article.id = 1;
WarehouseBookingPositionSlotEntry sourceSlot = new WarehouseBookingPositionSlotEntry();
sourceSlot.article = article;
sourceSlot.slot = new Slot();
sourceSlot.slot.slotNum = 8;
sourceSlot.newSumSlot = 17;
Optional<WarehouseBookingPositionSlotEntry> optDestinationSlot = Optional.empty();
WarehouseBooking result = new CreateManuelBookingAction(article, 13, Optional.of(sourceSlot), optDestinationSlot, "some other reason").finish();
assertEquals(-13, result.positions.get(0).amount);
assertEquals(4, result.positions.get(0).slotEntry.newSumSlot);
assertEquals(8, result.positions.get(0).slotEntry.slot.slotNum);
assertTrue(result.reason.isManuel);
assertEquals("some other reason", result.reason.comment);
}
@Test
void testTransfer() throws ArticleSlotConstraintFailedException {
Article article = new Article();
article.warehouseUnitsPerSlot = 20;
article.id = 1;
WarehouseBookingPositionSlotEntry sourceSlot = new WarehouseBookingPositionSlotEntry();
sourceSlot.article = article;
sourceSlot.slot = new Slot();
sourceSlot.slot.slotNum = 11;
sourceSlot.newSumSlot = 17;
WarehouseBookingPositionSlotEntry destinationSlot = new WarehouseBookingPositionSlotEntry();
destinationSlot.article = article;
destinationSlot.slot = new Slot();
destinationSlot.slot.slotNum = 15;
destinationSlot.newSumSlot = 2;
WarehouseBooking result = new CreateManuelBookingAction(article, 14, Optional.of(sourceSlot), Optional.of(destinationSlot), "transfer").finish();
assertEquals(-14, result.positions.get(0).amount);
assertEquals(3, result.positions.get(0).slotEntry.newSumSlot);
assertEquals(11, result.positions.get(0).slotEntry.slot.slotNum);
assertEquals(14, result.positions.get(1).amount);
assertEquals(16, result.positions.get(1).slotEntry.newSumSlot);
assertEquals(15, result.positions.get(1).slotEntry.slot.slotNum);
assertTrue(result.reason.isManuel);
assertEquals("transfer", result.reason.comment);
}
}