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);
        }