mirror of
https://github.com/AtomUI/AtomUI.git
synced 2026-10-27 12:17:42 +08:00
69 lines
2.1 KiB
C#
69 lines
2.1 KiB
C#
using Shouldly;
|
|
using Xunit;
|
|
|
|
namespace AtomUI.Desktop.Controls.Tests.Theme;
|
|
|
|
public class DesktopControlsWindowOverlayThemeScopeMigrationTests
|
|
{
|
|
private static readonly string[] ControlDirectories =
|
|
[
|
|
"src/AtomUI.Desktop.Controls/AdornerLayer",
|
|
"src/AtomUI.Desktop.Controls/Dialog",
|
|
"src/AtomUI.Desktop.Controls/Drawer",
|
|
"src/AtomUI.Desktop.Controls/Flyouts",
|
|
"src/AtomUI.Desktop.Controls/Popup",
|
|
"src/AtomUI.Desktop.Controls/Window",
|
|
"src/AtomUI.Desktop.Controls/WindowTitleBar"
|
|
];
|
|
|
|
private static readonly string[] ThemeDirectories =
|
|
ControlDirectories.Select(static directory => $"{directory}/Themes").ToArray();
|
|
|
|
[Fact]
|
|
public void WindowOverlay_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 WindowOverlay_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);
|
|
}
|
|
}
|