public void SuggestionMultiCodePointToSingleCodePoint() { //Arrange var mockKeyStateService = new Mock<IKeyStateService>(); mockKeyStateService.Setup(x => x.KeyDownStates).Returns(new NotifyingConcurrentDictionary<KeyValue, KeyDownStates>()); var mockSuggestionService = new Mock<ISuggestionStateService>(); mockSuggestionService.Setup(x => x.Suggestions).Returns(new List<string> { singleCodePointString, multiCodePointString }); var mockPublishService = new Mock<IPublishService>(); var mockDictionaryService = new Mock<IDictionaryService>(); var keyboardOutputService = new KeyboardOutputService(mockKeyStateService.Object, mockSuggestionService.Object, mockPublishService.Object, mockDictionaryService.Object, x => { }); //Act keyboardOutputService.ProcessSingleKeyText("1"); keyboardOutputService.ProcessFunctionKey(FunctionKeys.Suggestion2); keyboardOutputService.ProcessFunctionKey(FunctionKeys.Suggestion1); //Assert Assert.AreEqual(singleCodePointString, keyboardOutputService.Text); }