in sources/coffeeshop/orders-domain/src/main/java/solid/humank/coffeeshop/order/models/Order.java [157:165]
private void verifyStatus(OrderStatus previousStatus, OrderStatus targetStatus) throws StatusTransitionException {
if (this.status == targetStatus) return;
Specification specification = new StatusTransitionSpec(this.status, previousStatus, targetStatus);
if (specification.isSatisfy() == false) {
String errorMessage = String.format("Cant not transit order status from %s to %s", status, targetStatus);
throw new StatusTransitionException(errorMessage);
}
}