mirror of
https://github.com/AtomUI/AtomUI.git
synced 2026-10-19 23:30:44 +08:00
79 lines
2.5 KiB
C#
79 lines
2.5 KiB
C#
using Shouldly;
|
|
using Xunit;
|
|
|
|
namespace AtomUI.Desktop.Controls.Tests.Theme;
|
|
|
|
public class DesktopControlsDataDisplayThemeScopeMigrationTests
|
|
{
|
|
private static readonly string[] ControlDirectories =
|
|
[
|
|
"src/AtomUI.Desktop.Controls/Avatar",
|
|
"src/AtomUI.Desktop.Controls/Badge",
|
|
"src/AtomUI.Desktop.Controls/Calendar",
|
|
"src/AtomUI.Desktop.Controls/Card",
|
|
"src/AtomUI.Desktop.Controls/Carousel",
|
|
"src/AtomUI.Desktop.Controls/Descriptions",
|
|
"src/AtomUI.Desktop.Controls/Empty",
|
|
"src/AtomUI.Desktop.Controls/Expander",
|
|
"src/AtomUI.Desktop.Controls/ImagePreviewer",
|
|
"src/AtomUI.Desktop.Controls/ListBox",
|
|
"src/AtomUI.Desktop.Controls/ListView",
|
|
"src/AtomUI.Desktop.Controls/QRCode",
|
|
"src/AtomUI.Desktop.Controls/Segmented",
|
|
"src/AtomUI.Desktop.Controls/Statistic",
|
|
"src/AtomUI.Desktop.Controls/Tag",
|
|
"src/AtomUI.Desktop.Controls/Timeline",
|
|
"src/AtomUI.Desktop.Controls/TreeView"
|
|
];
|
|
|
|
private static readonly string[] ThemeDirectories =
|
|
ControlDirectories.Select(static directory => $"{directory}/Themes").ToArray();
|
|
|
|
[Fact]
|
|
public void DataDisplay_Controls_Remove_Legacy_Token_Scope_Registration()
|
|
{
|
|
foreach (var relativeDirectory in ControlDirectories)
|
|
{
|
|
var codeFiles = Directory.GetFiles(
|
|
GetRepoFile(relativeDirectory),
|
|
"*.cs",
|
|
SearchOption.AllDirectories);
|
|
|
|
codeFiles.ShouldNotBeEmpty();
|
|
|
|
foreach (var codeFile in codeFiles)
|
|
{
|
|
var text = File.ReadAllText(codeFile);
|
|
text.ShouldNotContain("RegisterTokenResourceScope");
|
|
text.ShouldNotContain("ScopeProvider");
|
|
}
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void DataDisplay_Control_Themes_Use_Explicit_Token_Resources()
|
|
{
|
|
foreach (var relativeDirectory in ThemeDirectories)
|
|
{
|
|
ThemeAssetScopeAssertions.AssertDirectoryUsesExplicitTokenResources(relativeDirectory);
|
|
}
|
|
}
|
|
|
|
private static string GetRepoFile(string relativePath)
|
|
{
|
|
var directory = AppContext.BaseDirectory;
|
|
while (directory is not null)
|
|
{
|
|
var candidate = Path.Combine(directory, relativePath);
|
|
if (File.Exists(candidate) || Directory.Exists(candidate))
|
|
{
|
|
return candidate;
|
|
}
|
|
|
|
directory = Directory.GetParent(directory)?.FullName;
|
|
}
|
|
|
|
throw new FileNotFoundException(relativePath);
|
|
}
|
|
}
|