Dreamine.FullKit.Wpf.Tests 1.0.0.0
Dreamine.FullKit.Wpf.Tests 기능을 검증하는 자동화 테스트 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
HangulComposerTests.cs
이 파일의 문서화 페이지로 가기
1using System.Reflection;
2using Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard;
3
5
15{
24 [Fact]
26 {
27 var composer = CreateComposer();
28
29 AssertEdit("ㄱ", 0, "ㄱ", composer, "");
30 AssertEdit("ㅏ", 1, "가", composer, "ㄱ");
31 AssertEdit("ㅁ", 1, "감", composer, "가");
32 }
33
42 [Fact]
44 {
45 var composer = CreateComposer();
46
47 AssertEdit("ㄱ", 0, "ㄱ", composer, "");
48 AssertEdit("ㅏ", 1, "가", composer, "ㄱ");
49 AssertEdit("ㄹ", 1, "갈", composer, "가");
50 AssertEdit("ㄱ", 1, "갉", composer, "갈");
51 }
52
69 private static object CreateComposer()
70 {
71 var type = typeof(DreamineVirtualKeyboard)
72 .Assembly
73 .GetType("Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.HangulComposer", throwOnError: true)!;
74
75 return Activator.CreateInstance(type, nonPublic: true)!;
76 }
77
126 private static void AssertEdit(string input, int replaceCount, string text, object composer, string textBeforeCaret)
127 {
128 var result = composer
129 .GetType()
130 .GetMethod("Input", [typeof(string), typeof(string)])!
131 .Invoke(composer, [input, textBeforeCaret])!;
132
133 Assert.Equal(replaceCount, (int)result.GetType().GetProperty("ReplaceCount")!.GetValue(result)!);
134 Assert.Equal(text, (string)result.GetType().GetProperty("Text")!.GetValue(result)!);
135 }
136}
static void AssertEdit(string input, int replaceCount, string text, object composer, string textBeforeCaret)