virtual CartExtension.CartCalculateExecutorMock

Mock executor for the various calculators within Cart Calculate API. Should be used only for tests.

Constructors 

global CartCalculateExecutorMock() 


Methods 

global virtual void calculate(CartCalculateOrchestratorRequest request) 

This method should be overridden to mock the default Cart Calculate Orchestrator.

Example 

public class CartCalculateCallsSuper extends CartExtension.CartCalculate {
     public CartCalculateCallsSuper(){}
     public CartCalculateCallsSuper(CartExtension.CartCalculateExecutorMock mockExecutor) {
         super(mockExecutor);
     }
     public override void calculate(CartExtension.CartCalculateOrchestratorRequest request) {
         super.calculate(request);
     }
 }
 public class MockDefaultOrchestratorExecutor extends CartExtension.CartCalculateExecutorMock {
      public MockDefaultOrchestratorExecutor() {}
      public override void calculate(CartExtension.CartCalculateOrchestratorRequest request) {
          CartExtension.Cart cart = request.getCart();
          cart.setName(cart.getName() + ', OrchestratedByDefault');
      }
 }
 public static void testCanMockDefaultOrchestrator() {
     // Arrange
     CartExtension.Cart cart = CartExtension.CartTestUtil.createCart();
     CartCalculateCallsSuper cartCalculateCallsSuper = new CartCalculateCallsSuper(new MockDefaultOrchestratorExecutor());
     // Act
     Test.startTest();
     cartCalculateCallsSuper.calculate(new CartExtension.CartCalculateOrchestratorRequest(
                                                           cart,
                                                           new CartExtension.BuyerActionsMock(cart),
                                                           CartExtension.OptionalBuyerActionDetails.empty()));
     Test.stopTest();
     // Assert
     Assert.areEqual('My Cart, OrchestratedByDefault', cart.getName());
 }

global virtual void prices(CartCalculateCalculatorRequest request) 

This method should be overridden to mock the price calculations from the Orchestrator.

Example 

public class CartCalculateCallsPricing extends CartExtension.CartCalculate {
    public CartCalculateCallsPricing(){}
    public CartCalculateCallsPricing(CartExtension.CartCalculateExecutorMock mockExecutor) {
        super(mockExecutor);
    }
    public override void calculate(CartExtension.CartCalculateOrchestratorRequest request) {
        prices(new CartExtension.CartCalculateCalculatorRequest(request.getCart(), request.getOptionalBuyerActionDetails()));
    }
}
public class MockPricingCalculationsExecutor extends CartExtension.CartCalculateExecutorMock {
    public MockPricingCalculationsExecutor() {}
    public override void prices(CartExtension.CartCalculateCalculatorRequest request) {
        CartExtension.Cart cart = request.getCart();
        cart.setName(cart.getName() + ', pricesRecalculated');
    }
}
public static void testCanMockPricingWhenOrchestratorUnderTest() {
    // Arrange
    CartExtension.Cart cart = CartExtension.CartTestUtil.createCart();
    CartCalculateCallsPricing orchestrator = new CartCalculateCallsPricing(new MockPricingCalculationsExecutor());
    // Act
    Test.startTest();
    orchestrator.calculate(new CartExtension.CartCalculateOrchestratorRequest(
                                                                  cart,
                                                                  new CartExtension.BuyerActionsMock(cart),
                                                                  CartExtension.OptionalBuyerActionDetails.empty()));
    Test.stopTest();
    // Assert
    Assert.areEqual('My Cart, pricesRecalculated', cart.getName());
}

global virtual void defaultPrices(CartCalculateCalculatorRequest request) 

This method should be overridden to mock the default Price calculator.

Example 

public class PricingCalculatorCallsSuper extends CartExtension.PricingCartCalculator {
     public PricingCalculatorCallsSuper() {}
     public PricingCalculatorCallsSuper(CartExtension.CartCalculateExecutorMock mockExecutor) {
         super(mockExecutor);
     }
     public override void calculate(CartExtension.CartCalculateCalculatorRequest request) {
         super.calculate(request);
     }
 }
 public class MockDefaultPricingCalculatorExecutor extends CartExtension.CartCalculateExecutorMock {
     public MockDefaultPricingCalculatorExecutor() {}
     public override void defaultPrices(CartExtension.CartCalculateCalculatorRequest request) {
         CartExtension.Cart cart = request.getCart();
         cart.setName(cart.getName() + ', pricesRecalculated');
     }
 }
 public static void testCanMockDefaultPricingWhenCalculatorUnderTest() {
     // Arrange
     CartExtension.Cart cart = CartExtension.CartTestUtil.createCart();
     PricingCalculatorCallsSuper calculator = new PricingCalculatorCallsSuper(new MockDefaultPricingCalculatorExecutor());
     // Act
     Test.startTest();
     calculator.calculate(new CartExtension.CartCalculateCalculatorRequest(cart, CartExtension.OptionalBuyerActionDetails.empty()));
     Test.stopTest();
     // Assert
     Assert.areEqual('My Cart, pricesRecalculated', cart.getName());
 }
// Mock default Calculator when custom Cart Calculate Orchestrator in under test
public class CartCalculateCallsPricing extends CartExtension.CartCalculate {
    public CartCalculateCallsPricing(){}
    public CartCalculateCallsPricing(CartExtension.CartCalculateExecutorMock mockExecutor) {
        super(mockExecutor);
    }
    public override void calculate(CartExtension.CartCalculateOrchestratorRequest request) {
        prices(new CartExtension.CartCalculateCalculatorRequest(request.getCart(), request.getOptionalBuyerActionDetails()));
    }
}
public static void testCanMockDefaultPricingWhenOrchestratorUnderTest() {
    // Arrange
    CartExtension.Cart cart = createCart();
    // Register Apex class by creating RegisteredExternalService and link to the WebStore using StoreIntegratedService
    // Make sure that WebStore under test has OptionsCartCalculateEnabled=true
    setUpExtension(cart.getWebStoreId(), 'Commerce_Domain_Pricing_CartCalculator', 'PricingCalculatorCallsSuper', cart);
    CartCalculateCallsPricing orchestrator = new CartCalculateCallsPricing(new MockDefaultPricingCalculatorExecutor());
    // Act
    Test.startTest();
    orchestrator.calculate(new CartExtension.CartCalculateOrchestratorRequest(
                                                                  cart,
                                                                  new CartExtension.BuyerActionsMock(cart),
                                                                  CartExtension.OptionalBuyerActionDetails.empty()));
    Test.stopTest();
    // Assert
    Assert.areEqual('My Cart, pricesRecalculated', cart.getName());
}

global virtual void promotions(CartCalculateCalculatorRequest request) 

This method should be overridden to mock the promotions calculations from the Orchestrator. See prices() for usage example.

global virtual void defaultPromotions(CartCalculateCalculatorRequest request) 

This method should be overridden to mock the default Promotions calculator. See defaultPrices() for usage example.

global virtual void inventory(CartCalculateCalculatorRequest request) 

This method should be overridden to mock the inventory calculations from the Orchestrator. See prices() for usage example.

global virtual void defaultInventory(CartCalculateCalculatorRequest request) 

This method should be overridden to mock the default Inventory calculator. See defaultPrices() for usage example.

global virtual void shipping(CartCalculateCalculatorRequest request) 

This method should be overridden to mock the shipping calculations from the Orchestrator. See prices() for usage example.

global virtual void defaultShipping(CartCalculateCalculatorRequest request) 

This method should be overridden to mock the default Shipping calculator. See defaultPrices() for usage example.

global virtual void tax(CartCalculateCalculatorRequest request) 

This method should be overridden to mock the tax calculations from the Orchestrator. See prices() for usage example.

global virtual void defaultTax(CartCalculateCalculatorRequest request) 

This method should be overridden to mock the default Tax calculator. See defaultPrices() for usage example.

global virtual void postShipping(CartCalculateCalculatorRequest request) 

This method should be overridden to mock the post shipping calculations from the Orchestrator. See prices() for usage example.


Newer Version Available

This content describes an older version of this product. View Latest