Dreamine.FullKit.Wpf.Tests 1.0.0.0
Dreamine.FullKit.Wpf.Tests 기능을 검증하는 자동화 테스트 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
DreamineAppBuilderTests.cs
이 파일의 문서화 페이지로 가기
1using System;
2using System.Threading;
3using System.Windows;
4using System.Windows.Controls;
5using Dreamine.MVVM.Core;
6using Dreamine.MVVM.Interfaces.Navigation;
7using Dreamine.MVVM.Locators.Wpf;
8using Dreamine.MVVM.Wpf;
9
11
20public sealed class DreamineAppBuilderTests
21{
30 [Fact]
32 {
33 RunSta(() =>
34 {
35 DMContainer.Reset();
36 RegionBinder.Clear();
37
38 var firstRegion = new ContentControl();
39 RegionBinder.SetRegionName(firstRegion, "AppBuilder_Main");
40 var firstWindow = new Window { Content = firstRegion };
41
42 var secondRegion = new ContentControl();
43 RegionBinder.SetRegionName(secondRegion, "AppBuilder_Main");
44 var secondWindow = new Window { Content = secondRegion };
45
46 try
47 {
48 firstWindow.Show();
49 secondWindow.Show();
50
51 DreamineAppBuilder.RegisterNavigatorFromWindow(firstWindow, "AppBuilder_Main");
52 DreamineAppBuilder.RegisterNavigatorFromWindow(secondWindow, "AppBuilder_Main");
53
54 INavigator navigator = DMContainer.Resolve<INavigator>();
55 navigator.Navigate(new AppBuilderSampleViewModel());
56
57 Assert.Null(firstRegion.Content);
58 Assert.IsType<AppBuilderSampleView>(secondRegion.Content);
59 }
60 finally
61 {
62 firstWindow.Close();
63 secondWindow.Close();
64 RegionBinder.Clear();
65 DMContainer.Reset();
66 }
67 });
68 }
69
86 private static void RunSta(Action action)
87 {
88 Exception? exception = null;
89 var thread = new Thread(() =>
90 {
91 try
92 {
93 action();
94 }
95 catch (Exception ex)
96 {
97 exception = ex;
98 }
99 });
100
101 thread.SetApartmentState(ApartmentState.STA);
102 thread.Start();
103 thread.Join();
104
105 if (exception is not null)
106 {
107 throw exception;
108 }
109 }
110
111}
112
121public sealed class AppBuilderSampleViewModel
122{
123}
124
133public sealed class AppBuilderSampleView : UserControl
134{
135}