-
Notifications
You must be signed in to change notification settings - Fork 832
Expand file tree
/
Copy pathCoreTests.cs
More file actions
103 lines (91 loc) · 3.59 KB
/
CoreTests.cs
File metadata and controls
103 lines (91 loc) · 3.59 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
namespace UniGetUI.Core.Data.Tests
{
public class CoreTests
{
public static object[][] Data =>
[
[CoreData.UniGetUIDataDirectory],
[CoreData.UniGetUIInstallationOptionsDirectory],
[CoreData.UniGetUICacheDirectory_Data],
[CoreData.UniGetUICacheDirectory_Icons],
[CoreData.UniGetUICacheDirectory_Lang],
[CoreData.UniGetUI_DefaultBackupDirectory],
];
[Theory]
[MemberData(nameof(Data))]
public void CheckDirectoryAttributes(string directory)
{
Assert.True(
Directory.Exists(directory),
$"Directory ${directory} does not exist, but it should have been created automatically"
);
}
[Fact]
public void CheckOtherAttributes()
{
Assert.NotEmpty(CoreData.VersionName);
Assert.NotEqual(0, CoreData.BuildNumber);
Assert.NotEqual(0, CoreData.UpdatesAvailableNotificationTag);
Assert.True(
Directory.Exists(CoreData.UniGetUIExecutableDirectory),
"Directory where the executable is located does not exist"
);
Assert.True(
File.Exists(CoreData.UniGetUIExecutableFile),
"The executable file does not exist"
);
}
[Fact]
public void ResolveInstallationDirectoryReturnsParentForBundledAvaloniaDirectory()
{
string installDirectory = Path.GetFullPath(Path.Join("install-root"));
string avaloniaDirectory = Path.Join(installDirectory, "Avalonia");
string classicExecutable = Path.Join(installDirectory, "UniGetUI.exe");
string resolvedDirectory = CoreData.ResolveInstallationDirectory(
avaloniaDirectory,
filePath => filePath == classicExecutable,
static _ => false
);
Assert.Equal(installDirectory, resolvedDirectory);
}
[Fact]
public void ResolveInstallationDirectoryKeepsStandaloneAvaloniaDirectory()
{
string avaloniaDirectory = Path.GetFullPath(Path.Join("standalone", "Avalonia"));
string resolvedDirectory = CoreData.ResolveInstallationDirectory(
avaloniaDirectory,
static _ => false,
static _ => false
);
Assert.Equal(avaloniaDirectory, resolvedDirectory);
}
[Theory]
[InlineData("3.3.7", "3.3.7")]
[InlineData("2026.1.2", "v2026.1.2")]
[InlineData("v2026.1.2", "v2026.1.2")]
public void CheckGitHubReleaseTag(string versionName, string expectedTag)
{
Assert.Equal(expectedTag, CoreData.GetGitHubReleaseTag(versionName));
}
[Fact]
public void CheckGitHubReleaseTagCandidatesForCalendarVersion()
{
Assert.Equal(
["v2026.1.2", "2026.1.2"],
CoreData.GetGitHubReleaseTagCandidates("2026.1.2")
);
}
[Fact]
public void CheckGitHubReleaseUrlsUseEscapedResolvedTag()
{
Assert.Equal(
"https://github.com/Devolutions/UniGetUI/releases/tag/v2026.1.2",
CoreData.GetGitHubReleasePageUrlFromTag(CoreData.GetGitHubReleaseTag("2026.1.2"))
);
Assert.Equal(
"https://api.github.com/repos/Devolutions/UniGetUI/releases/tags/3.3.7-beta1",
CoreData.GetGitHubReleaseApiUrlFromTag("3.3.7-beta1")
);
}
}
}