/**
  * @magentoApiDataFixture Magento/Sales/_files/quote.php
  */
 public function testGetList()
 {
     $cart = $this->getCart('test01');
     // The following two filters are used as alternatives. The target cart does not match the first one.
     $grandTotalFilter = $this->filterBuilder->setField('grand_total')->setConditionType('gteq')->setValue(15)->create();
     $subtotalFilter = $this->filterBuilder->setField('subtotal')->setConditionType('eq')->setValue($cart->getSubtotal())->create();
     $yesterdayDate = (new \DateTime($cart->getCreatedAt()))->sub(new \DateInterval('P1D'))->format('Y-m-d');
     $tomorrowDate = (new \DateTime($cart->getCreatedAt()))->add(new \DateInterval('P1D'))->format('Y-m-d');
     $minCreatedAtFilter = $this->filterBuilder->setField('created_at')->setConditionType('gteq')->setValue($yesterdayDate)->create();
     $maxCreatedAtFilter = $this->filterBuilder->setField('created_at')->setConditionType('lteq')->setValue($tomorrowDate)->create();
     $this->searchCriteriaBuilder->addFilters([$grandTotalFilter, $subtotalFilter]);
     $this->searchCriteriaBuilder->addFilters([$minCreatedAtFilter]);
     $this->searchCriteriaBuilder->addFilters([$maxCreatedAtFilter]);
     /** @var SortOrder $sortOrder */
     $sortOrder = $this->sortOrderBuilder->setField('subtotal')->setDirection(SortOrder::SORT_ASC)->create();
     $this->searchCriteriaBuilder->setSortOrders([$sortOrder]);
     $searchCriteria = $this->searchCriteriaBuilder->create()->__toArray();
     $requestData = ['searchCriteria' => $searchCriteria];
     $serviceInfo = ['rest' => ['resourcePath' => '/V1/carts/search' . '?' . http_build_query($requestData), 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET], 'soap' => ['service' => 'quoteCartRepositoryV1', 'serviceVersion' => 'V1', 'operation' => 'quoteCartRepositoryV1GetList']];
     $searchResult = $this->_webApiCall($serviceInfo, $requestData);
     $this->assertArrayHasKey('total_count', $searchResult);
     $this->assertEquals(1, $searchResult['total_count']);
     $this->assertArrayHasKey('items', $searchResult);
     $this->assertCount(1, $searchResult['items']);
     $cartData = $searchResult['items'][0];
     $this->assertEquals($cart->getId(), $cartData['id']);
     $this->assertEquals($cart->getCreatedAt(), $cartData['created_at']);
     $this->assertEquals($cart->getUpdatedAt(), $cartData['updated_at']);
     $this->assertEquals($cart->getIsActive(), $cartData['is_active']);
     $this->assertContains('customer_is_guest', $cartData);
     $this->assertEquals(1, $cartData['customer_is_guest']);
 }
예제 #2
0
 /**
  * @magentoApiDataFixture Magento/Sales/_files/invoice.php
  */
 public function testAutoGeneratedGetList()
 {
     $this->getExpectedExtensionAttributes();
     /** @var SortOrder $sortOrder */
     $sortOrder = $this->sortOrderBuilder->setField('store_id')->setDirection(SearchCriteria::SORT_ASC)->create();
     $this->searchBuilder->setSortOrders([$sortOrder]);
     $this->searchBuilder->addFilters([$this->filterBuilder->setField('state')->setValue(2)->create()]);
     $searchCriteria = $this->searchBuilder->create()->__toArray();
     $requestData = ['criteria' => $searchCriteria];
     $restResourcePath = '/V1/invoices/';
     $soapService = 'salesInvoiceRepositoryV1';
     $expectedExtensionAttributes = $this->getExpectedExtensionAttributes();
     $serviceInfo = ['rest' => ['resourcePath' => $restResourcePath . '?' . http_build_query($requestData), 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET], 'soap' => ['service' => $soapService, 'operation' => $soapService . 'GetList']];
     $searchResult = $this->_webApiCall($serviceInfo, $requestData);
     $this->assertArrayHasKey('items', $searchResult);
     $itemData = array_pop($searchResult['items']);
     $this->assertArrayHasKey('extension_attributes', $itemData);
     $this->assertArrayHasKey('invoice_api_test_attribute', $itemData['extension_attributes']);
     $testAttribute = $itemData['extension_attributes']['invoice_api_test_attribute'];
     $this->assertEquals($expectedExtensionAttributes['firstname'], $testAttribute['first_name']);
     $this->assertEquals($expectedExtensionAttributes['lastname'], $testAttribute['last_name']);
     $this->assertEquals($expectedExtensionAttributes['email'], $testAttribute['email']);
 }
 /**
  * Test using multiple filters using GET
  */
 public function testSearchCustomersMultipleFiltersWithSortUsingGET()
 {
     $this->_markTestAsRestOnly('SOAP test is covered in testSearchCustomers');
     $builder = Bootstrap::getObjectManager()->create('Magento\\Framework\\Api\\FilterBuilder');
     $customerData1 = $this->_createCustomer();
     $customerData2 = $this->_createCustomer();
     $filter1 = $builder->setField(Customer::EMAIL)->setValue($customerData1[Customer::EMAIL])->create();
     $filter2 = $builder->setField(Customer::EMAIL)->setValue($customerData2[Customer::EMAIL])->create();
     $filter3 = $builder->setField(Customer::LASTNAME)->setValue($customerData1[Customer::LASTNAME])->create();
     $this->searchCriteriaBuilder->addFilters([$filter1, $filter2]);
     $this->searchCriteriaBuilder->addFilters([$filter3]);
     $this->searchCriteriaBuilder->setSortOrders([Customer::EMAIL => SortOrder::SORT_ASC]);
     $searchCriteria = $this->searchCriteriaBuilder->create();
     $searchData = $searchCriteria->__toArray();
     $requestData = ['searchCriteria' => $searchData];
     $searchQueryString = http_build_query($requestData);
     $serviceInfo = ['rest' => ['resourcePath' => self::RESOURCE_PATH . '/search?' . $searchQueryString, 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET]];
     $searchResults = $this->_webApiCall($serviceInfo);
     $this->assertEquals(2, $searchResults['total_count']);
     $this->assertEquals($customerData1[Customer::ID], $searchResults['items'][0][Customer::ID]);
     $this->assertEquals($customerData2[Customer::ID], $searchResults['items'][1][Customer::ID]);
 }