From f21e818b2841ae174d18cd16f2c5d1d40a6abf50 Mon Sep 17 00:00:00 2001 From: Zac Gaetano Date: Thu, 7 May 2026 15:09:56 +0000 Subject: [PATCH] chore: scaffold WPF app and integration test projects - TeamsISO.App: hand-rolled net8.0-windows WPF csproj since the WPF template isn't shipped on linux-arm64 .NET SDK; UI is a placeholder for Phase C. - TeamsISO.Engine.IntegrationTests: cross-platform xunit project with a skipped scaffold fact tagged [Trait("requires", "ndi")] for Phase B. - TeamsISO.Linux.slnf: solution filter for non-Windows CI that excludes the WPF project (which can only build on Windows). --- TeamsISO.Linux.slnf | 11 +++++++ TeamsISO.sln | 14 +++++++++ src/TeamsISO.App/App.xaml | 6 ++++ src/TeamsISO.App/App.xaml.cs | 7 +++++ src/TeamsISO.App/MainWindow.xaml | 10 +++++++ src/TeamsISO.App/MainWindow.xaml.cs | 11 +++++++ src/TeamsISO.App/TeamsISO.App.csproj | 17 +++++++++++ .../IntegrationTestsScaffold.cs | 11 +++++++ .../TeamsISO.Engine.IntegrationTests.csproj | 29 +++++++++++++++++++ 9 files changed, 116 insertions(+) create mode 100644 TeamsISO.Linux.slnf create mode 100644 src/TeamsISO.App/App.xaml create mode 100644 src/TeamsISO.App/App.xaml.cs create mode 100644 src/TeamsISO.App/MainWindow.xaml create mode 100644 src/TeamsISO.App/MainWindow.xaml.cs create mode 100644 src/TeamsISO.App/TeamsISO.App.csproj create mode 100644 src/tests/TeamsISO.Engine.IntegrationTests/IntegrationTestsScaffold.cs create mode 100644 src/tests/TeamsISO.Engine.IntegrationTests/TeamsISO.Engine.IntegrationTests.csproj diff --git a/TeamsISO.Linux.slnf b/TeamsISO.Linux.slnf new file mode 100644 index 0000000..1bf2820 --- /dev/null +++ b/TeamsISO.Linux.slnf @@ -0,0 +1,11 @@ +{ + "solution": { + "path": "TeamsISO.sln", + "projects": [ + "src/TeamsISO.Engine/TeamsISO.Engine.csproj", + "src/TeamsISO.Engine.NdiInterop/TeamsISO.Engine.NdiInterop.csproj", + "src/tests/TeamsISO.Engine.Tests/TeamsISO.Engine.Tests.csproj", + "src/tests/TeamsISO.Engine.IntegrationTests/TeamsISO.Engine.IntegrationTests.csproj" + ] + } +} diff --git a/TeamsISO.sln b/TeamsISO.sln index 82462a4..a82d73c 100644 --- a/TeamsISO.sln +++ b/TeamsISO.sln @@ -13,6 +13,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{DBDF4A1D EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TeamsISO.Engine.Tests", "src\tests\TeamsISO.Engine.Tests\TeamsISO.Engine.Tests.csproj", "{F8DBD7AB-E160-4B75-88FC-BAECDD4D44E8}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TeamsISO.App", "src\TeamsISO.App\TeamsISO.App.csproj", "{80DCE039-3BBC-4D3F-B44B-51F324591C29}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TeamsISO.Engine.IntegrationTests", "src\tests\TeamsISO.Engine.IntegrationTests\TeamsISO.Engine.IntegrationTests.csproj", "{A85E331D-026E-4BDE-B89C-0CC4C95001CE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -34,11 +38,21 @@ Global {F8DBD7AB-E160-4B75-88FC-BAECDD4D44E8}.Debug|Any CPU.Build.0 = Debug|Any CPU {F8DBD7AB-E160-4B75-88FC-BAECDD4D44E8}.Release|Any CPU.ActiveCfg = Release|Any CPU {F8DBD7AB-E160-4B75-88FC-BAECDD4D44E8}.Release|Any CPU.Build.0 = Release|Any CPU + {80DCE039-3BBC-4D3F-B44B-51F324591C29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {80DCE039-3BBC-4D3F-B44B-51F324591C29}.Debug|Any CPU.Build.0 = Debug|Any CPU + {80DCE039-3BBC-4D3F-B44B-51F324591C29}.Release|Any CPU.ActiveCfg = Release|Any CPU + {80DCE039-3BBC-4D3F-B44B-51F324591C29}.Release|Any CPU.Build.0 = Release|Any CPU + {A85E331D-026E-4BDE-B89C-0CC4C95001CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A85E331D-026E-4BDE-B89C-0CC4C95001CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A85E331D-026E-4BDE-B89C-0CC4C95001CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A85E331D-026E-4BDE-B89C-0CC4C95001CE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {F0D24EAE-9225-4DC4-B3D2-6966077287A0} = {46E05E34-8A87-4986-87D3-FE0DE4E05F44} {E737E54B-73DE-4F74-909C-1F0F5CF82AC6} = {46E05E34-8A87-4986-87D3-FE0DE4E05F44} {DBDF4A1D-4215-42D5-B456-2CE7159DF848} = {46E05E34-8A87-4986-87D3-FE0DE4E05F44} {F8DBD7AB-E160-4B75-88FC-BAECDD4D44E8} = {DBDF4A1D-4215-42D5-B456-2CE7159DF848} + {80DCE039-3BBC-4D3F-B44B-51F324591C29} = {46E05E34-8A87-4986-87D3-FE0DE4E05F44} + {A85E331D-026E-4BDE-B89C-0CC4C95001CE} = {DBDF4A1D-4215-42D5-B456-2CE7159DF848} EndGlobalSection EndGlobal diff --git a/src/TeamsISO.App/App.xaml b/src/TeamsISO.App/App.xaml new file mode 100644 index 0000000..e703f02 --- /dev/null +++ b/src/TeamsISO.App/App.xaml @@ -0,0 +1,6 @@ + + + diff --git a/src/TeamsISO.App/App.xaml.cs b/src/TeamsISO.App/App.xaml.cs new file mode 100644 index 0000000..0b4da7d --- /dev/null +++ b/src/TeamsISO.App/App.xaml.cs @@ -0,0 +1,7 @@ +using System.Windows; + +namespace TeamsISO.App; + +public partial class App : Application +{ +} diff --git a/src/TeamsISO.App/MainWindow.xaml b/src/TeamsISO.App/MainWindow.xaml new file mode 100644 index 0000000..89319a7 --- /dev/null +++ b/src/TeamsISO.App/MainWindow.xaml @@ -0,0 +1,10 @@ + + + + + diff --git a/src/TeamsISO.App/MainWindow.xaml.cs b/src/TeamsISO.App/MainWindow.xaml.cs new file mode 100644 index 0000000..d32a3d7 --- /dev/null +++ b/src/TeamsISO.App/MainWindow.xaml.cs @@ -0,0 +1,11 @@ +using System.Windows; + +namespace TeamsISO.App; + +public partial class MainWindow : Window +{ + public MainWindow() + { + InitializeComponent(); + } +} diff --git a/src/TeamsISO.App/TeamsISO.App.csproj b/src/TeamsISO.App/TeamsISO.App.csproj new file mode 100644 index 0000000..faa8a54 --- /dev/null +++ b/src/TeamsISO.App/TeamsISO.App.csproj @@ -0,0 +1,17 @@ + + + + WinExe + net8.0-windows + true + TeamsISO.App + + false + + + + + + + + diff --git a/src/tests/TeamsISO.Engine.IntegrationTests/IntegrationTestsScaffold.cs b/src/tests/TeamsISO.Engine.IntegrationTests/IntegrationTestsScaffold.cs new file mode 100644 index 0000000..6d33330 --- /dev/null +++ b/src/tests/TeamsISO.Engine.IntegrationTests/IntegrationTestsScaffold.cs @@ -0,0 +1,11 @@ +namespace TeamsISO.Engine.IntegrationTests; + +public class IntegrationTestsScaffold +{ + [Fact(Skip = "Phase A: integration tests require NDI runtime — added in Phase B.")] + [Trait("requires", "ndi")] + public void ScaffoldFactSkipsCleanly() + { + Assert.True(true); + } +} diff --git a/src/tests/TeamsISO.Engine.IntegrationTests/TeamsISO.Engine.IntegrationTests.csproj b/src/tests/TeamsISO.Engine.IntegrationTests/TeamsISO.Engine.IntegrationTests.csproj new file mode 100644 index 0000000..b85c9ae --- /dev/null +++ b/src/tests/TeamsISO.Engine.IntegrationTests/TeamsISO.Engine.IntegrationTests.csproj @@ -0,0 +1,29 @@ + + + + net8.0 + enable + enable + + false + true + + + + + + + + + + + + + + + + + + + +