ドメインモデルの実装(3) ~implementing the method~
テストケースに対するアプリ側のコードを実装します。
public class PlaceOrderServiceImpl implements PlaceOrderService { private PendingOrderRepository pendingOrderRepository; public PlaceOrderService(PendingOederRepository repository) { this.pendingOrderRepository = repository; } public PlaceOrderServiceResult updateDeliveryInfo( String pendingOrderId, Addres deliveryAddress, Date deliveryTime) { PendingOeder pendingOrder = pendingOrderRepository.findOrCreatePendingOrder(pendingOederId); boolean success = pendingOrder.updateDeliveryInfo(deliveryAddress, deliveryTime); return new PlaceOedreServiceResult(success, pendingOrder) } }
PlaceOrderServiceは、PendingOrderRepositoryとPendingOrderClassとコラボレートします。
しかしこの時点では、まだ深入りしたくないので、モックを使用します。
jMockを使用するにあたり、PendingOrderRepositoryとPendingOrderの各インターフェース必要とします。
PendingOrderRepositoryは、findOrderCreatePendingOrder()を定義します。
public interface PendingOrderRepository { PendingOrder findOrCreatePendingOrder(String pendingOrderId); }
PendingOrderのupdateDeliveryInfo()は、とりあえずfalseを返します。
public interface PendingOrder { public boolean updateDeliveryInfo(Address deliveryAddress, Date deliveryTime) ; }