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() {
CartExtension.Cart cart = CartExtension.CartTestUtil.createCart();
CartCalculateCallsSuper cartCalculateCallsSuper = new CartCalculateCallsSuper(new MockDefaultOrchestratorExecutor());
Test.startTest();
cartCalculateCallsSuper.calculate(new CartExtension.CartCalculateOrchestratorRequest(
cart,
new CartExtension.BuyerActionsMock(cart),
CartExtension.OptionalBuyerActionDetails.empty()));
Test.stopTest();
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() {
CartExtension.Cart cart = CartExtension.CartTestUtil.createCart();
CartCalculateCallsPricing orchestrator = new CartCalculateCallsPricing(new MockPricingCalculationsExecutor());
Test.startTest();
orchestrator.calculate(new CartExtension.CartCalculateOrchestratorRequest(
cart,
new CartExtension.BuyerActionsMock(cart),
CartExtension.OptionalBuyerActionDetails.empty()));
Test.stopTest();
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() {
CartExtension.Cart cart = CartExtension.CartTestUtil.createCart();
PricingCalculatorCallsSuper calculator = new PricingCalculatorCallsSuper(new MockDefaultPricingCalculatorExecutor());
Test.startTest();
calculator.calculate(new CartExtension.CartCalculateCalculatorRequest(cart, CartExtension.OptionalBuyerActionDetails.empty()));
Test.stopTest();
Assert.areEqual('My Cart, pricesRecalculated', cart.getName());
}
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() {
CartExtension.Cart cart = createCart();
setUpExtension(cart.getWebStoreId(), 'Commerce_Domain_Pricing_CartCalculator', 'PricingCalculatorCallsSuper', cart);
CartCalculateCallsPricing orchestrator = new CartCalculateCallsPricing(new MockDefaultPricingCalculatorExecutor());
Test.startTest();
orchestrator.calculate(new CartExtension.CartCalculateOrchestratorRequest(
cart,
new CartExtension.BuyerActionsMock(cart),
CartExtension.OptionalBuyerActionDetails.empty()));
Test.stopTest();
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.