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
1public class CartCalculateCallsSuper extends CartExtension.CartCalculate{2 public CartCalculateCallsSuper(){}3 public CartCalculateCallsSuper(CartExtension.CartCalculateExecutorMock mockExecutor){4 super(mockExecutor);5}6 public override void calculate(CartExtension.CartCalculateOrchestratorRequest request){7 super.calculate(request);8}9}10 public class MockDefaultOrchestratorExecutor extends CartExtension.CartCalculateExecutorMock{11 public MockDefaultOrchestratorExecutor(){}12 public override void calculate(CartExtension.CartCalculateOrchestratorRequest request){13 CartExtension.Cart cart = request.getCart();14 cart.setName(cart.getName() + ', OrchestratedByDefault');15}16}17 public static void testCanMockDefaultOrchestrator(){18 // Arrange19 CartExtension.Cart cart = CartExtension.CartTestUtil.createCart();20 CartCalculateCallsSuper cartCalculateCallsSuper = new CartCalculateCallsSuper(new MockDefaultOrchestratorExecutor());21 // Act22 Test.startTest();23 cartCalculateCallsSuper.calculate(new CartExtension.CartCalculateOrchestratorRequest(24 cart,25 new CartExtension.BuyerActionsMock(cart),26 CartExtension.OptionalBuyerActionDetails.empty()));27 Test.stopTest();28 // Assert29 Assert.areEqual('My Cart, OrchestratedByDefault', cart.getName());30}
global virtual void prices(CartCalculateCalculatorRequest request)
This method should be overridden to mock the price calculations from the Orchestrator.
Example
1public class CartCalculateCallsPricing extends CartExtension.CartCalculate{2 public CartCalculateCallsPricing(){}3 public CartCalculateCallsPricing(CartExtension.CartCalculateExecutorMock mockExecutor){4 super(mockExecutor);5}6 public override void calculate(CartExtension.CartCalculateOrchestratorRequest request){7 prices(new CartExtension.CartCalculateCalculatorRequest(request.getCart(), request.getOptionalBuyerActionDetails()));8}9}10public class MockPricingCalculationsExecutor extends CartExtension.CartCalculateExecutorMock{11 public MockPricingCalculationsExecutor(){}12 public override void prices(CartExtension.CartCalculateCalculatorRequest request){13 CartExtension.Cart cart = request.getCart();14 cart.setName(cart.getName() + ', pricesRecalculated');15}16}17public static void testCanMockPricingWhenOrchestratorUnderTest(){18 // Arrange19 CartExtension.Cart cart = CartExtension.CartTestUtil.createCart();20 CartCalculateCallsPricing orchestrator = new CartCalculateCallsPricing(new MockPricingCalculationsExecutor());21 // Act22 Test.startTest();23 orchestrator.calculate(new CartExtension.CartCalculateOrchestratorRequest(24 cart,25 new CartExtension.BuyerActionsMock(cart),26 CartExtension.OptionalBuyerActionDetails.empty()));27 Test.stopTest();28 // Assert29 Assert.areEqual('My Cart, pricesRecalculated', cart.getName());30}
global virtual void defaultPrices(CartCalculateCalculatorRequest request)
This method should be overridden to mock the default Price calculator.
Example
1public class PricingCalculatorCallsSuper extends CartExtension.PricingCartCalculator{2 public PricingCalculatorCallsSuper(){}3 public PricingCalculatorCallsSuper(CartExtension.CartCalculateExecutorMock mockExecutor){4 super(mockExecutor);5}6 public override void calculate(CartExtension.CartCalculateCalculatorRequest request){7 super.calculate(request);8}9}10 public class MockDefaultPricingCalculatorExecutor extends CartExtension.CartCalculateExecutorMock{11 public MockDefaultPricingCalculatorExecutor(){}12 public override void defaultPrices(CartExtension.CartCalculateCalculatorRequest request){13 CartExtension.Cart cart = request.getCart();14 cart.setName(cart.getName() + ', pricesRecalculated');15}16}17 public static void testCanMockDefaultPricingWhenCalculatorUnderTest(){18 // Arrange19 CartExtension.Cart cart = CartExtension.CartTestUtil.createCart();20 PricingCalculatorCallsSuper calculator = new PricingCalculatorCallsSuper(new MockDefaultPricingCalculatorExecutor());21 // Act22 Test.startTest();23 calculator.calculate(new CartExtension.CartCalculateCalculatorRequest(cart, CartExtension.OptionalBuyerActionDetails.empty()));24 Test.stopTest();25 // Assert26 Assert.areEqual('My Cart, pricesRecalculated', cart.getName());27}28// Mock default Calculator when custom Cart Calculate Orchestrator in under test29public class CartCalculateCallsPricing extends CartExtension.CartCalculate{30 public CartCalculateCallsPricing(){}31 public CartCalculateCallsPricing(CartExtension.CartCalculateExecutorMock mockExecutor){32 super(mockExecutor);33}34 public override void calculate(CartExtension.CartCalculateOrchestratorRequest request){35 prices(new CartExtension.CartCalculateCalculatorRequest(request.getCart(), request.getOptionalBuyerActionDetails()));36}37}38public static void testCanMockDefaultPricingWhenOrchestratorUnderTest(){39 // Arrange40 CartExtension.Cart cart = createCart();41 // Register Apex class by creating RegisteredExternalService and link to the WebStore using StoreIntegratedService42 // Make sure that WebStore under test has OptionsCartCalculateEnabled=true43 setUpExtension(cart.getWebStoreId(), 'Commerce_Domain_Pricing_CartCalculator', 'PricingCalculatorCallsSuper', cart);44 CartCalculateCallsPricing orchestrator = new CartCalculateCallsPricing(new MockDefaultPricingCalculatorExecutor());45 // Act46 Test.startTest();47 orchestrator.calculate(new CartExtension.CartCalculateOrchestratorRequest(48 cart,49 new CartExtension.BuyerActionsMock(cart),50 CartExtension.OptionalBuyerActionDetails.empty()));51 Test.stopTest();52 // Assert53 Assert.areEqual('My Cart, pricesRecalculated', cart.getName());54}
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.