本文整理汇总了PHP中Mage_Sales_Model_Quote::expects方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Quote::expects方法的具体用法?PHP Mage_Sales_Model_Quote::expects怎么用?PHP Mage_Sales_Model_Quote::expects使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Quote
的用法示例。
在下文中一共展示了Mage_Sales_Model_Quote::expects方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setUp
public function setUp()
{
// Mock session storage for previously collected quantity results
$this->_inventorySession = $this->getModelMockBuilder('ebayenterprise_inventory/session')->setMethods(['getQuantityResults', 'setQuantityResults', 'getResultsCollectedFor', 'setResultsCollectedFor'])->disableOriginalConstructor()->getMock();
// Mock of the sdk helper for getting new quantity results from the API
$this->_quantitySdkHelper = $this->getHelperMock('ebayenterprise_inventory/quantity_sdk', ['requestQuantityForItems']);
// A quantity results stub, expected to be returned by the session or
// sdk helper.
$this->_quantityResults = $this->getModelMockBuilder('ebayenterprise_inventory/quantity_results')->disableOriginalConstructor()->setMethods(['checkResultsApplyToItems'])->getMock();
// Stub quote object to collect quantity records for.
$this->_quote = $this->getModelMock('sales/quote', ['getAllItems']);
// Stub quote item that should be sent to the inventory service.
$this->_quoteItem = $this->getModelMock('sales/quote_item', []);
// Quote items and filtered quote items allow tests to distinguish
// between all items in the quote and just items that matter to the
// inventory service. All quote items includes an additional quote item
// that is not expected to be sent to the quantity API.
$this->_quoteItems = [$this->_quoteItem, $this->getModelMock('sales/quote_item', [])];
$this->_filteredQuoteItems = [$this->_quoteItem];
// Stub quote to return all quote items.
$this->_quote->expects($this->any())->method('getAllItems')->will($this->returnValue($this->_quoteItems));
// Stub filtering from the full quote items down to the filtered
// array of quote items. Tests that expect a list of items that matter
// to the inventory service can expect the filted quote items array
// instead of the unfiltered quote items array.
$this->_itemSelection = $this->getHelperMock('ebayenterprise_inventory/item_selection', ['selectFrom']);
$this->_itemSelection->expects($this->any())->method('selectFrom')->with($this->identicalTo($this->_quoteItems))->will($this->returnValue($this->_filteredQuoteItems));
// Mock helper for calculating item quantities.
$this->_quantityHelper = $this->getHelperMock('ebayenterprise_inventory/quantity', ['calculateTotalQuantitiesBySku']);
$this->_currentItemQuantityData = ['a-sku' => 100];
$this->_quantityHelper->expects($this->any())->method('calculateTotalQuantitiesBySku')->with($this->_filteredQuoteItems)->will($this->returnValue($this->_currentItemQuantityData));
$this->_quantityCollector = Mage::getModel('ebayenterprise_inventory/quantity_collector', ['quantity_sdk_helper' => $this->_quantitySdkHelper, 'quantity_helper' => $this->_quantityHelper, 'item_selection' => $this->_itemSelection, 'inventory_session' => $this->_inventorySession]);
}
示例2: testSubmitOrderSuccess
/**
* When an order is submitted, a new order should be created from the quote,
* saved with relevant data in a single DB transaction, and finally the new
* order should be returned.
*/
public function testSubmitOrderSuccess()
{
// Stub out dependencies to get through the basic flow of submitOrder.
$this->_stubForBasicOrderSubmitCompletion();
// Side-effect tests: assert required behaviors
// Ensure inherited methods are called - the behavior of these methods
// is taken as being correct so the methods are not tested, only that
// interactions with the methods is maintained.
$this->_serviceQuote->expects($this->once())->method('_deleteNominalItems')->will($this->returnSelf());
$this->_serviceQuote->expects($this->once())->method('_validate')->will($this->returnSelf());
$this->_serviceQuote->expects($this->once())->method('_inactivateQuote')->will($this->returnSelf());
// Ensure proper events are dispatched while submitting the order.
// Defer to the checkout dispatcher for ensuring the proper events happen,
// but still need to ensure the correct ones would be triggered when
// successfully creating an order.
$this->_checkoutDispatcher->expects($this->once())->method('dispatchBeforeOrderSubmit')->with($this->identicalTo($this->_quote), $this->identicalTo($this->_order))->will($this->returnSelf());
$this->_checkoutDispatcher->expects($this->once())->method('dispatchAfterOrderSubmit')->with($this->identicalTo($this->_quote), $this->identicalTo($this->_order))->will($this->returnSelf());
$this->_checkoutDispatcher->expects($this->once())->method('dispatchOrderSubmitSuccess')->with($this->identicalTo($this->_quote), $this->identicalTo($this->_order))->will($this->returnSelf());
$this->_checkoutDispatcher->expects($this->never())->method('dispatchOrderSubmitFailure');
// Ensure that an order is reserved for the quote.
$this->_quote->expects($this->once())->method('reserveOrderId')->will($this->returnSelf());
// Ensure that the transaction for order creation is saved successfully.
// This will result in the order being saved and "created".
$this->_transaction->expects($this->once())->method('save')->will($this->returnSelf());
// When all goes successfully, the newly created order object should be
// returned when submitting the order.
$this->assertSame($this->_order, $this->_serviceQuote->submitOrder());
}
示例3: testCheckQuoteInventoryParentItemMessages
/**
* When inventory errors are encountered for a child item, error info should
* be added to the parent item, child item and quote.
*/
public function testCheckQuoteInventoryParentItemMessages()
{
$itemSku = 'the-item';
$itemName = 'Item Name';
$itemQty = 5;
$itemId = 39;
// Force an error by setting available quantity to be less than requested quantity.
$availQty = 1;
// Error messages to be added to the quote and item.
$quoteErrorMessage = EbayEnterprise_Inventory_Model_Quantity_Service::QUOTE_INSUFFICIENT_STOCK_MESSAGE;
$itemErrorMessage = EbayEnterprise_Inventory_Model_Quantity_Service::ITEM_INSUFFICIENT_STOCK_MESSAGE;
// Create a parent item and a child item. Child item will be handled by
// the service but when errors are present, they need to also be added
// to the parent.
$parentQuoteItem = $this->_mockQuoteItem($itemSku, 1, 38, $itemName);
$quoteItem = $this->_mockQuoteItem($itemSku, $itemQty, $itemId, $itemName, $parentQuoteItem);
$quoteItems = [$quoteItem];
$this->_mockQuoteItemSelection($quoteItems);
// Mock the mechanism used to determine total quantity of an item,
// can return the expected quantity of the item requested.
$this->_quantityHelper->expects($this->any())->method('calculateTotalQuantityRequested')->with($this->identicalTo($quoteItem), $this->identicalTo($quoteItems))->will($this->returnValue($itemQty));
// item which will be returned from the quantity results
// model when getting the quantity result by sku using the
// item's sku or id when using the item's id.
$itemQuantityResult = $this->_createQuantity($availQty, $itemSku, $itemId);
$this->_mockQuantityResults([['sku' => $itemSku, 'item_id' => $itemId, 'quantity' => $itemQuantityResult]]);
// Side-effect tests: ensure that the item, parent item and
// the quote have error info added for the unavailable
// item.
$parentQuoteItem->expects($this->once())->method('addErrorInfo')->with($this->identicalTo(EbayEnterprise_Inventory_Model_Quantity_Service::ERROR_INFO_SOURCE), $this->identicalTo(EbayEnterprise_Inventory_Model_Quantity_Service::INSUFFICIENT_STOCK_ERROR_CODE), $this->identicalTo($itemErrorMessage))->will($this->returnSelf());
$quoteItem->expects($this->once())->method('addErrorInfo')->with($this->identicalTo(EbayEnterprise_Inventory_Model_Quantity_Service::ERROR_INFO_SOURCE), $this->identicalTo(EbayEnterprise_Inventory_Model_Quantity_Service::INSUFFICIENT_STOCK_ERROR_CODE), $this->identicalTo($itemErrorMessage))->will($this->returnSelf());
$this->_quote->expects($this->once())->method('addErrorInfo')->with($this->identicalTo(EbayEnterprise_Inventory_Model_Quantity_Service::ERROR_INFO_TYPE), $this->identicalTo(EbayEnterprise_Inventory_Model_Quantity_Service::ERROR_INFO_SOURCE), $this->identicalTo(EbayEnterprise_Inventory_Model_Quantity_Service::INSUFFICIENT_STOCK_ERROR_CODE), $this->identicalTo($quoteErrorMessage))->will($this->returnSelf());
$this->assertSame($this->_quantityService, $this->_quantityService->checkQuoteInventory($this->_quote));
}
示例4: setUp
public function setUp()
{
// Mock the log context helper to prevent session hits when
// getting log metadata.
$logContext = $this->getHelperMock('ebayenterprise_magelog/context', ['getMetaData']);
$logContext->expects($this->any())->method('getMetaData')->will($this->returnValue([]));
// SDK Payloads
$this->_taxResponsePayload = $this->getMockForAbstractClass('eBayEnterprise\\RetailOrderManagement\\Payload\\TaxDutyFee\\ITaxDutyFeeQuoteReply', ['getShipGroups']);
$this->_shipGroup = $this->getMockForAbstractClass('eBayEnterprise\\RetailOrderManagement\\Payload\\TaxDutyFee\\ITaxedShipGroup', ['getDestination']);
$this->_shipGroups = new ArrayIterator([$this->_shipGroup]);
$this->_shipDestination = $this->getMockForAbstractClass('eBayEnterprise\\RetailOrderManagement\\Payload\\TaxDutyFee\\IDestination', ['getId']);
// Link together the payloads.
$this->_taxResponsePayload->expects($this->any())->method('getShipGroups')->will($this->returnValue($this->_shipGroups));
$this->_shipGroup->expects($this->any())->method('getDestination')->will($this->returnValue($this->_shipDestination));
$this->_shipDestination->expects($this->any())->method('getId')->will($this->returnValue($this->_destinationId));
// Mocks needed to map ship groups to quote addresses.
$this->_quote = $this->getModelMock('sales/quote', ['getAddressesCollection']);
$this->_addressCollection = $this->getResourceModelMock('sales/quote_address_collection', ['getItemByColumnValue']);
$this->_address = Mage::getModel('sales/quote_address');
$this->_quote->expects($this->any())->method('getAddressesCollection')->will($this->returnValue($this->_addressCollection));
// The address collection should return the expected address when given
// the expected destination id. Otherwise, should return null.
$this->_addressCollection->expects($this->any())->method('getItemByColumnValue')->will($this->returnValueMap([['destination_id', $this->_destinationId, $this->_address]]));
// Mocks for building tax records for ship groups.
$this->_taxFactory = $this->getHelperMock('ebayenterprise_tax/factory', ['createResponseAddressParser']);
// Create an address response parser to synthesize extracting additional
// tax data from addresses. Constructor disabled to prevent needing to
// provide dependencies.
$this->_addressParser = $this->getModelMockBuilder('ebayenterprise_tax/response_parser_address')->disableOriginalConstructor()->setMethods(['getTaxRecords', 'getTaxDuties', 'getTaxFees'])->getMock();
// Create some mock tax data - record, duty and fee - to stand in for tax data
// extracted from an address. All constructors disabled to prevent needing to
// provide dependencies.
$this->_addressTaxRecord = $this->getModelMockBuilder('ebayenterprise_tax/record')->disableOriginalConstructor()->getMock();
$this->_addressTaxDuty = $this->getModelMockBuilder('ebayenterprise_tax/duty')->disableOriginalConstructor()->getMock();
$this->_addressTaxFee = $this->getModelMockBuilder('ebayenterprise_tax/fee')->disableOriginalConstructor()->getMock();
$this->_addressTaxRecords = [$this->_addressTaxRecord];
$this->_addressTaxDuties = [$this->_addressTaxDuty];
$this->_addressTaxFees = [$this->_addressTaxFee];
// Set the expected address parser to return the mocked up set of
// address tax records.
$this->_addressParser->expects($this->any())->method('getTaxRecords')->will($this->returnValue($this->_addressTaxRecords));
$this->_addressParser->expects($this->any())->method('getTaxDuties')->will($this->returnValue($this->_addressTaxDuties));
$this->_addressParser->expects($this->any())->method('getTaxFees')->will($this->returnValue($this->_addressTaxFees));
$this->_quoteParser = Mage::getModel('ebayenterprise_tax/response_parser_quote', ['quote' => $this->_quote, 'tax_response' => $this->_taxResponsePayload, 'tax_factory' => $this->_taxFactory, 'log_context' => $logContext]);
}
示例5: _makeQuoteValid
/**
* Set up the quote and billing address mocks to be considered
* valid by the tax collector.
*
* @return self
*/
protected function _makeQuoteValid()
{
$this->_billingAddress->expects($this->any())->method('getFirstname')->will($this->returnValue('Firstname'));
$this->_billingAddress->expects($this->any())->method('getLastname')->will($this->returnValue('Lastname'));
$this->_billingAddress->expects($this->any())->method('getStreetFull')->will($this->returnValue('Street Address'));
$this->_billingAddress->expects($this->any())->method('getCountryId')->will($this->returnValue('US'));
$this->_quote->expects($this->any())->method('getItemsCount')->will($this->returnValue(3));
return $this;
}
示例6: testHandleSalesQuoteCollectTotalsCollectFailure
/**
* When the tax collector fails to collect new tax data, the session should
* not get updated and quote totals should not be recollected.
*/
public function testHandleSalesQuoteCollectTotalsCollectFailure()
{
// Indicate new tax collection is required in the session flags.
$this->coreSession->expects($this->any())->method('isTaxUpdateRequired')->will($this->returnValue(true));
// Set the tax collector to fail to make the TDF request and throw
// an exception.
$this->taxCollector->expects($this->once())->method('collectTaxes')->will($this->throwException(Mage::exception('EbayEnterprise_Tax_Exception_Collector')));
// Ensure session quote data is not updated, flags are not reset and
// quote totals are not re-collected.
$this->coreSession->expects($this->never())->method('updateWithQuote');
$this->coreSession->expects($this->never())->method('resetTaxUpdateRequired');
$this->quote->expects($this->never())->method('collectTotals');
$this->taxObserver->handleSalesQuoteCollectTotalsAfter($this->eventObserver);
}
示例7: testCreateOrdersFailureWithExceptions
/**
* When creating a new order fails with an exception, the exception should
* be thrown from the multishipping checkout type's createOrders and
* any changes to the quote should not be saved.
*/
public function testCreateOrdersFailureWithExceptions()
{
$exceptionMessage = 'Some exception thrown while submitting order.';
$orderSubmitException = new Exception($exceptionMessage);
// If the order cannot be created, an exception may be thrown when
// submitting the order. Any such exceptions should not be caught and
// should prevent the quote from being saved.
$this->_quoteService->method('submitOrder')->will($this->throwException($orderSubmitException));
// Side-effect test: if the order was not created, do not save quote
// changes caused by creating the order.
$this->_quote->expects($this->never())->method('save');
// Expect that the exception thrown by submitOrder are not caught.
$this->setExpectedException('Exception', $exceptionMessage);
$this->_multishippingCheckout->createOrders();
}