File tree Expand file tree Collapse file tree 2 files changed +65
-3
lines changed
app/code/Magento/Elasticsearch
SearchAdapter/Query/ValueTransformer
Test/Unit/SearchAdapter/Query/ValueTransformer Expand file tree Collapse file tree 2 files changed +65
-3
lines changed Original file line number Diff line number Diff line change @@ -20,14 +20,16 @@ class IntegerTransformer implements ValueTransformerInterface
20
20
public function transform (string $ value ): ?int
21
21
{
22
22
return (\is_numeric ($ value ) &&
23
- $ this ->validateIntegerTypesWithInRange ($ value )) ? (int ) $ value : null ;
23
+ $ this ->validateIntegerTypesWithInRange (( int ) $ value )) ? (int ) $ value : null ;
24
24
}
25
25
26
26
/**
27
- * @param $value
27
+ * Validate integer value is within the range of 32 bytes as per elasticsearch.
28
+ *
29
+ * @param int $value
28
30
* @return bool
29
31
*/
30
- public function validateIntegerTypesWithInRange ($ value ): bool
32
+ public function validateIntegerTypesWithInRange (int $ value ): bool
31
33
{
32
34
return (abs ($ value ) & 0x7FFFFFFF ) === abs ($ value );
33
35
}
Original file line number Diff line number Diff line change
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 \Elasticsearch \Test \Unit \SearchAdapter \Query \ValueTransformer ;
9
+
10
+ use Magento \Elasticsearch \SearchAdapter \Query \ValueTransformer \IntegerTransformer ;
11
+ use Magento \Framework \TestFramework \Unit \Helper \ObjectManager as ObjectManagerHelper ;
12
+ use PHPUnit \Framework \TestCase ;
13
+
14
+ /**
15
+ * Test value transformer
16
+ */
17
+ class IntegerTransformerTest extends TestCase
18
+ {
19
+ /**
20
+ * @var IntegerTransformer
21
+ */
22
+ protected $ model ;
23
+
24
+ /**
25
+ * Setup method
26
+ * @return void
27
+ */
28
+ public function setUp (): void
29
+ {
30
+ $ objectManagerHelper = new ObjectManagerHelper ($ this );
31
+ $ this ->model = $ objectManagerHelper ->getObject (
32
+ IntegerTransformer::class
33
+ );
34
+ }
35
+
36
+ /**
37
+ * Test integer transform value
38
+ * @param string $value
39
+ * @param int|null $expected
40
+ * @return void
41
+ * @dataProvider valuesDataProvider
42
+ */
43
+ public function testIntegerTransform (string $ value , ?int $ expected ): void
44
+ {
45
+ $ this ->assertEquals ($ expected , $ this ->model ->transform ($ value ));
46
+ }
47
+
48
+ /**
49
+ * Values data provider
50
+ *
51
+ * @return array
52
+ */
53
+ public function valuesDataProvider (): array
54
+ {
55
+ return [
56
+ ['12345 ' , 12345 ],
57
+ ['3310042623 ' ,null ]
58
+ ];
59
+ }
60
+ }
You can’t perform that action at this time.
0 commit comments