PackageSearchTests.cs
4.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
using System.Collections.Generic;
using NUnit.Framework;
namespace UnityEditor.PackageManager.UI.Tests
{
internal class PackageSearchTests : PackageBaseTests
{
private const string kName = "Test-Package";
private const string kCurrentVersion = "3.0.0";
private const string kPrerelease = "preview";
private const string kUpperPrerelease = "PREVIEW";
private const string kMixedPrerelease = "pReViEw";
private Package testPackage;
[SetUp]
public void Setup()
{
testPackage = new Package(kName, new List<PackageInfo>
{
PackageSets.Instance.Single(PackageSource.Registry, kName, kCurrentVersion + "-" + kPrerelease, true, true)
});
}
[TestCase(null)]
[TestCase("")]
[TestCase("\t")]
[TestCase(" ")]
[TestCase(" ")]
public void MatchCriteria_NullOrEmptyCriteria_ReturnsTrue(string criteria)
{
Assert.IsTrue(PackageFiltering.FilterByText(testPackage, criteria));
}
[TestCaseSource("GetAllPartialName")]
public void MatchCriteria_CriteriaMatchDisplayNamePartially_ReturnsTrue(string criteria)
{
Assert.IsTrue(PackageFiltering.FilterByText(testPackage, criteria));
}
[TestCaseSource("GetAllPartialVersions")]
public void MatchCriteria_CriteriaMatchCurrentVersion_ReturnsTrue(string criteria)
{
Assert.IsTrue(PackageFiltering.FilterByText(testPackage, criteria));
}
[TestCase(kPrerelease)]
[TestCase(kUpperPrerelease)]
[TestCase(kMixedPrerelease)]
public void MatchCriteria_CriteriaMatchCurrentVersionPreRelease_ReturnsTrue(string criteria)
{
Assert.IsTrue(PackageFiltering.FilterByText(testPackage, criteria));
}
[TestCase("p")]
[TestCase("pr")]
[TestCase("pre")]
[TestCase("prev")]
[TestCase("view")]
[TestCase("vie")]
[TestCase("vi")]
public void MatchCriteria_CriteriaPartialMatchCurrentVersionPreRelease_ReturnsTrue(string criteria)
{
Assert.IsTrue(PackageFiltering.FilterByText(testPackage, criteria));
}
[TestCase("-p")]
[TestCase("-pr")]
[TestCase("-pre")]
[TestCase("-prev")]
[TestCase("-previ")]
[TestCase("-previe")]
[TestCase("-preview")]
public void MatchCriteria_CriteriaPartialMatchCurrentVersionPreReleaseLeadingDash_ReturnsTrue(string criteria)
{
Assert.IsTrue(PackageFiltering.FilterByText(testPackage, criteria));
}
[TestCase("veri")]
[TestCase("verif")]
[TestCase("verifie")]
[TestCase("verified")]
[TestCase("erified")]
[TestCase("rified")]
[TestCase("ified")]
public void MatchCriteria_CriteriaPartialMatchVerified_ReturnsTrue(string criteria)
{
Assert.IsTrue(PackageFiltering.FilterByText(testPackage, criteria));
}
[TestCase("Test Package")]
[TestCase("Test -Package")]
[TestCase("Test - Package")]
[TestCase("Test- Package")]
[TestCase("NotFound")]
[TestCase("1.0.0-preview")]
[TestCase("5.0.0")]
[TestCase("beta")]
[TestCase("previewed")]
[TestCase("verify")]
[TestCase("experimental")]
public void MatchCriteria_CriteriaDoesntMatch_ReturnsFalse(string criteria)
{
Assert.IsFalse(PackageFiltering.FilterByText(testPackage, criteria));
}
private static IEnumerable<string> GetAllPartialVersions()
{
var versions = new List<string>();
for (var i = 1; i <= kCurrentVersion.Length; i++)
{
versions.Add(kCurrentVersion.Substring(0, i));
}
return versions;
}
private static IEnumerable<string> GetAllPartial(string str)
{
var names = new List<string>();
for (var i = 0; i < str.Length; i++)
{
var s1 = str.Substring(0, i + 1);
var s2 = str.Substring(i, str.Length - i);
names.Add(s1);
names.Add(s1.ToLower());
names.Add(s1.ToUpper());
names.Add(" " + s1);
names.Add(s1 + " ");
names.Add(" " + s1 + " ");
names.Add(s2);
names.Add(s2.ToLower());
names.Add(s2.ToUpper());
names.Add(" " + s2);
names.Add(s2 + " ");
names.Add(" " + s2 + " ");
}
return names;
}
private static IEnumerable<string> GetAllPartialName()
{
return GetAllPartial(kName);
}
}
}