Package pl.com.bottega.ecommerce.sales.domain.offer

Examples of pl.com.bottega.ecommerce.sales.domain.offer.Offer


   
    /*
     * Sample pattern: Aggregate generates Value Object using function<br>
     * Higher order function is closured by policy
     */
    Offer newOffer = reservation.calculateOffer(
                  discountFactory.create(loadClient()));
   
    /*
     * Sample pattern: Client Tier sends back old VOs, Server generates new VOs based on Aggregate state<br>
     * Notice that this VO is not stored in Repo, it's stored on the Client Tier.
     */
    if (! newOffer.sameAs(seenOffer, 5))//TODO load delta from conf.
      throw new OfferChangedExcpetion(reservation.getAggregateId(), seenOffer, newOffer);
   
    Client client = loadClient();//create per logged client, not reservation owner         
    Purchase purchase = purchaseFactory.create(reservation.getAggregateId(), client, seenOffer);
       
View Full Code Here


       
        unavailableItems.add(offerItem);
      }
    }
   
    return new Offer(availabeItems, unavailableItems);
  }
View Full Code Here

  @Test
  public void shouldPurchaseProducts(){
    AggregateId orderId = orderingService.createOrder();
    orderingService.addProduct(orderId, new AggregateId("p1"), 1);
    orderingService.addProduct(orderId, new AggregateId("p2"), 20);
    Offer offer = orderingService.calculateOffer(orderId);
   
    orderingService.confirm(orderId, new OrderDetailsCommand(), offer);
  }
View Full Code Here

  public void canNotPurchaseIfOfferChanged(){
    AggregateId orderId = orderingService.createOrder();
    orderingService.addProduct(orderId, new AggregateId("p1"), 1);
    orderingService.addProduct(orderId, new AggregateId("p2"), 20);
   
    Offer offer = orderingService.calculateOffer(orderId);
    //change order
    orderingService.addProduct(orderId, new AggregateId("p2"), 30);
    //confirm obsolete offer
    try{
      orderingService.confirm(orderId, new OrderDetailsCommand(), offer);
View Full Code Here

    AggregateId orderId = orderingService.createOrder();
   
    AddProdctCommand cmd = new AddProdctCommand(orderId, new AggregateId("p1"), 1);   
    gate.dispatch(cmd);
   
    Offer offer = orderingService.calculateOffer(orderId);
   
    orderingService.confirm(orderId, new OrderDetailsCommand(), offer);
  }
View Full Code Here

TOP

Related Classes of pl.com.bottega.ecommerce.sales.domain.offer.Offer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.