Skip to content

Commit 7b1459f

Browse files
committed
AC-6714:Automation tests for Elasticsearch 8.x
1 parent e304a6e commit 7b1459f

File tree

5 files changed

+927
-1
lines changed

5 files changed

+927
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
11+
<test name="StorefrontQuickSearchUsingElasticSearch8ByProductSkuTest">
12+
<annotations>
13+
<features value="Elasticsearch8"/>
14+
<stories value="Storefront Search"/>
15+
<title value="Check that AND query is performed when searching using ElasticSearch 8"/>
16+
<description value="Check that AND query is performed when searching using ElasticSearch 8"/>
17+
<severity value="CRITICAL"/>
18+
<testCaseId value="AC-6597"/>
19+
<useCaseId value="AC-6665"/>
20+
<group value="SearchEngine"/>
21+
<!-- <group value="pr_exclude"/>-->
22+
</annotations>
23+
<before>
24+
<magentoCLI command="config:set catalog/search/engine elasticsearch8" stepKey="setSearchEngine"/>
25+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
26+
<actionGroup ref="DeleteAllProductsUsingProductGridActionGroup" stepKey="deleteAllProducts"/>
27+
28+
<createData entity="VirtualProduct" stepKey="createFirstSimpleProduct"/>
29+
<createData entity="SimpleProductWithCustomSku24MB06" stepKey="createSecondSimpleProduct"/>
30+
<createData entity="SimpleProductWithCustomSku24MB04" stepKey="createThirdSimpleProduct"/>
31+
<createData entity="SimpleProductWithCustomSku24MB02" stepKey="createFourthSimpleProduct"/>
32+
<createData entity="SimpleProductWithCustomSku24MB01" stepKey="createFifthSimpleProduct"/>
33+
34+
<actionGroup ref="CliCacheCleanActionGroup" stepKey="cleanCache">
35+
<argument name="tags" value=""/>
36+
</actionGroup>
37+
<magentoCron groups="index" stepKey="reindex"/>
38+
</before>
39+
<after>
40+
<magentoCLI command="config:set catalog/search/engine elasticsearch7" stepKey="setSearchEngine"/>
41+
<deleteData createDataKey="createFirstSimpleProduct" stepKey="deleteProductOne"/>
42+
43+
<actionGroup ref="DeleteAllProductsUsingProductGridActionGroup" stepKey="deleteAllProductsAfterTest"/>
44+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logoutFromAdminPanel"/>
45+
</after>
46+
<actionGroup ref="StorefrontOpenHomePageActionGroup" stepKey="openStoreFrontHomePage"/>
47+
<actionGroup ref="StorefrontCheckQuickSearchStringActionGroup" stepKey="quickSearchByProductSku">
48+
<argument name="phrase" value="24 MB04"/>
49+
</actionGroup>
50+
51+
<see userInput="4" selector="{{StorefrontCatalogSearchMainSection.productCount}}" stepKey="assertSearchResultCount"/>
52+
53+
<actionGroup ref="StorefrontQuickSearchSeeProductByNameActionGroup" stepKey="assertSecondProductName">
54+
<argument name="productName" value="$createSecondSimpleProduct.name$"/>
55+
</actionGroup>
56+
<actionGroup ref="StorefrontQuickSearchSeeProductByNameActionGroup" stepKey="assertThirdProductName">
57+
<argument name="productName" value="$createThirdSimpleProduct.name$"/>
58+
</actionGroup>
59+
<actionGroup ref="StorefrontQuickSearchSeeProductByNameActionGroup" stepKey="assertFourthProductName">
60+
<argument name="productName" value="$createFourthSimpleProduct.name$"/>
61+
</actionGroup>
62+
<actionGroup ref="StorefrontQuickSearchSeeProductByNameActionGroup" stepKey="assertFifthProductName">
63+
<argument name="productName" value="$createFifthSimpleProduct.name$"/>
64+
</actionGroup>
65+
</test>
66+
</tests>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Elasticsearch8\Test\Unit\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver;
9+
10+
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeAdapter;
11+
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver\DefaultResolver
12+
as BaseDefaultResolver;
13+
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ConverterInterface
14+
as FieldTypeConverterInterface;
15+
use Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ResolverInterface
16+
as FieldTypeResolver;
17+
use Magento\Elasticsearch8\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver\DefaultResolver;
18+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
19+
use PHPUnit\Framework\TestCase;
20+
21+
/**
22+
* @SuppressWarnings(PHPMD)
23+
*/
24+
class DefaultResolverTest extends TestCase
25+
{
26+
/**
27+
* @var DefaultResolver
28+
*/
29+
private $resolver;
30+
31+
/**
32+
* @var FieldTypeResolver
33+
*/
34+
private $fieldTypeResolver;
35+
36+
/**
37+
* @var FieldTypeConverterInterface
38+
*/
39+
private $fieldTypeConverter;
40+
41+
/**
42+
* Set up test environment
43+
*
44+
* @return void
45+
*/
46+
protected function setUp(): void
47+
{
48+
$objectManager = new ObjectManagerHelper($this);
49+
$this->fieldTypeConverter = $this->getMockBuilder(FieldTypeConverterInterface::class)
50+
->disableOriginalConstructor()
51+
->setMethods(['convert'])
52+
->getMockForAbstractClass();
53+
$this->fieldTypeResolver = $this->getMockBuilder(FieldTypeResolver::class)
54+
->disableOriginalConstructor()
55+
->setMethods(['getFieldType'])
56+
->getMockForAbstractClass();
57+
58+
$baseResolver = $objectManager->getObject(
59+
BaseDefaultResolver::class,
60+
[
61+
'fieldTypeResolver' => $this->fieldTypeResolver,
62+
'fieldTypeConverter' => $this->fieldTypeConverter
63+
]
64+
);
65+
66+
$this->resolver = $objectManager->getObject(DefaultResolver::class, ['baseResolver' => $baseResolver]);
67+
}
68+
69+
/**
70+
* @dataProvider getFieldNameProvider
71+
* @param $fieldType
72+
* @param $attributeCode
73+
* @param $frontendInput
74+
* @param $isSortable
75+
* @param $context
76+
* @param $expected
77+
* @return void
78+
*/
79+
public function testGetFieldName(
80+
$fieldType,
81+
$attributeCode,
82+
$frontendInput,
83+
$isSortable,
84+
$context,
85+
$expected
86+
) {
87+
$attributeMock = $this->getMockBuilder(AttributeAdapter::class)
88+
->disableOriginalConstructor()
89+
->setMethods(['getAttributeCode', 'getFrontendInput', 'isSortable'])
90+
->getMock();
91+
$this->fieldTypeConverter->expects($this->any())
92+
->method('convert')
93+
->willReturn('string');
94+
$attributeMock->expects($this->any())
95+
->method('getFrontendInput')
96+
->willReturn($frontendInput);
97+
$attributeMock->expects($this->any())
98+
->method('getAttributeCode')
99+
->willReturn($attributeCode);
100+
$attributeMock->expects($this->any())
101+
->method('isSortable')
102+
->willReturn($isSortable);
103+
$this->fieldTypeResolver->expects($this->any())
104+
->method('getFieldType')
105+
->willReturn($fieldType);
106+
107+
$this->assertEquals(
108+
$expected,
109+
$this->resolver->getFieldName($attributeMock, $context)
110+
);
111+
}
112+
113+
/**
114+
* @return array
115+
*/
116+
public function getFieldNameProvider(): array
117+
{
118+
return [
119+
['', 'code', '', false, [], 'code'],
120+
['', 'code', '', false, ['type' => 'default'], 'code'],
121+
['string', '*', '', false, ['type' => 'default'], '_search'],
122+
['', 'code', '', false, ['type' => 'default'], 'code'],
123+
['', 'code', 'select', false, ['type' => 'default'], 'code'],
124+
['', 'code', '', true, ['type' => 'sort'], 'sort_code'],
125+
['', 'code', 'boolean', false, ['type' => 'default'], 'code'],
126+
];
127+
}
128+
}

0 commit comments

Comments
 (0)