PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.22
ووسلام – همگام سازی ووکامرس و باسلام v1.10.22
1.10.22 1.10.21 1.10.19 1.10.20 1.10.18 1.10.17 1.10.15 1.10.14 1.10.13 1.10.12 1.10.10 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 1.10.4 1.10.3 1.10.2 1.10.1 1.10.0 1.9.2 1.9.1 1.9.0 1.8.8 All 55 releases
sync-basalam / tests / Services / ProductTitleMatcherTest.php

ProductTitleMatcherTest.php in ووسلام – همگام سازی ووکامرس و باسلام 1.10.22, at tests/Services/ProductTitleMatcherTest.php

81 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SyncBasalam\Tests\Services;
4
5 use PHPUnit\Framework\TestCase;
6 use SyncBasalam\Services\Products\ProductTitleMatcher;
7
8 require_once dirname(__DIR__, 2) . '/includes/Services/Products/ProductTitleMatcher.php';
9
10 class ProductTitleMatcherTest extends TestCase
11 {
12 public function testNormalizesArabicCharactersAndSeparators(): void
13 {
14 self::assertSame(
15 'قفسه ح�
16 ا�
17 کارین',
18 ProductTitleMatcher::normalize("قفسه‌ ح�
19 ا�
20 کارين")
21 );
22 }
23
24 public function testAcceptsAProductCodeSuffixAsTheSameTitle(): void
25 {
26 self::assertSame(
27 90,
28 ProductTitleMatcher::score(
29 'طی ز�
30 ین شوی کارین �
31 دل فانتزی کد 50',
32 'طی ز�
33 ین شوی کارین �
34 دل فانتزی'
35 )
36 );
37 }
38
39 public function testSelectsTheStrongestSearchResult(): void
40 {
41 $match = ProductTitleMatcher::bestMatch(
42 'طی ز�
43 ین شوی کارین �
44 دل فانتزی کد 50',
45 [
46 [
47 'id' => 100,
48 'title' => 'طی ز�
49 ین شوی کارین �
50 دل ساده',
51 ],
52 [
53 'id' => 200,
54 'title' => 'طی ز�
55 ین شوی کارین �
56 دل فانتزی',
57 ],
58 ]
59 );
60
61 self::assertSame(200, $match['id']);
62 }
63
64 public function testRejectsAWeakSearchResult(): void
65 {
66 self::assertNull(
67 ProductTitleMatcher::bestMatch(
68 'آب �
69 رکبات گیر دستی',
70 [
71 [
72 'id' => 100,
73 'title' => 'پنکه برقی و شارژی ری�
74 وت دار',
75 ],
76 ]
77 )
78 );
79 }
80 }
81