public void Read_ValidXml_SetsAllProperties()
        {
            const string userSettingsXml =
                @"<UserLexiconSettings>
  <WritingSystems>
    <WritingSystem id=""en-US"">
      <LocalKeyboard>en-US_English-IPA</LocalKeyboard>
      <KnownKeyboards>
        <KnownKeyboard>en-US_English</KnownKeyboard>
      </KnownKeyboards>
      <DefaultFontName>Times New Roman</DefaultFontName>
    </WritingSystem>
    <WritingSystem id=""fr-FR"">
      <DefaultFontSize>12</DefaultFontSize>
      <IsGraphiteEnabled>false</IsGraphiteEnabled>
    </WritingSystem>
  </WritingSystems>
</UserLexiconSettings>";

            var userSettingsDataMapper = new UserLexiconSettingsWritingSystemDataMapper(new MemorySettingsStore {
                SettingsElement = XElement.Parse(userSettingsXml)
            });

            var ws1 = new WritingSystemDefinition("en-US");

            userSettingsDataMapper.Read(ws1);

            Assert.That(ws1.LocalKeyboard.Id, Is.EqualTo("en-US_English-IPA"));
            Assert.That(ws1.KnownKeyboards[1].Id, Is.EqualTo("en-US_English"));
            Assert.That(ws1.DefaultFont.Name, Is.EqualTo("Times New Roman"));
            Assert.That(ws1.DefaultFontSize, Is.EqualTo(0));
            Assert.That(ws1.IsGraphiteEnabled, Is.True);

            var ws2 = new WritingSystemDefinition("fr-FR");

            userSettingsDataMapper.Read(ws2);

            Assert.That(ws2.LocalKeyboard, Is.EqualTo(Keyboard.Controller.DefaultKeyboard));
            Assert.That(ws2.DefaultFont, Is.Null);
            Assert.That(ws2.DefaultFontSize, Is.EqualTo(12));
            Assert.That(ws2.IsGraphiteEnabled, Is.False);

            var ws3 = new WritingSystemDefinition("es");

            userSettingsDataMapper.Read(ws3);

            Assert.That(ws3.LocalKeyboard, Is.EqualTo(Keyboard.Controller.DefaultKeyboard));
            Assert.That(ws3.DefaultFont, Is.Null);
            Assert.That(ws3.DefaultFontSize, Is.EqualTo(0));
            Assert.That(ws3.IsGraphiteEnabled, Is.True);
        }
		public void Read_ValidXml_SetsAllProperties()
		{
			const string userSettingsXml =
@"<UserLexiconSettings>
  <WritingSystems>
    <WritingSystem id=""en-US"">
      <LocalKeyboard>en-US_English-IPA</LocalKeyboard>
      <KnownKeyboards>
        <KnownKeyboard>en-US_English</KnownKeyboard>
      </KnownKeyboards>
      <DefaultFontName>Times New Roman</DefaultFontName>
    </WritingSystem>
    <WritingSystem id=""fr-FR"">
      <DefaultFontSize>12</DefaultFontSize>
      <IsGraphiteEnabled>false</IsGraphiteEnabled>
    </WritingSystem>
  </WritingSystems>
</UserLexiconSettings>";

			var userSettingsDataMapper = new UserLexiconSettingsWritingSystemDataMapper(new MemorySettingsStore {SettingsElement = XElement.Parse(userSettingsXml)});

			var ws1 = new WritingSystemDefinition("en-US");
			userSettingsDataMapper.Read(ws1);

			Assert.That(ws1.LocalKeyboard.Id, Is.EqualTo("en-US_English-IPA"));
			Assert.That(ws1.KnownKeyboards[1].Id, Is.EqualTo("en-US_English"));
			Assert.That(ws1.DefaultFont.Name, Is.EqualTo("Times New Roman"));
			Assert.That(ws1.DefaultFontSize, Is.EqualTo(0));
			Assert.That(ws1.IsGraphiteEnabled, Is.True);

			var ws2 = new WritingSystemDefinition("fr-FR");
			userSettingsDataMapper.Read(ws2);

			Assert.That(ws2.LocalKeyboard, Is.EqualTo(Keyboard.Controller.DefaultKeyboard));
			Assert.That(ws2.DefaultFont, Is.Null);
			Assert.That(ws2.DefaultFontSize, Is.EqualTo(12));
			Assert.That(ws2.IsGraphiteEnabled, Is.False);

			var ws3 = new WritingSystemDefinition("es");
			userSettingsDataMapper.Read(ws3);

			Assert.That(ws3.LocalKeyboard, Is.EqualTo(Keyboard.Controller.DefaultKeyboard));
			Assert.That(ws3.DefaultFont, Is.Null);
			Assert.That(ws3.DefaultFontSize, Is.EqualTo(0));
			Assert.That(ws3.IsGraphiteEnabled, Is.True);
		}
		public void Read_EmptyXml_NothingSet()
		{
			var userSettingsDataMapper = new UserLexiconSettingsWritingSystemDataMapper(new MemorySettingsStore());

			var ws1 = new WritingSystemDefinition("en-US");
			userSettingsDataMapper.Read(ws1);

			Assert.That(ws1.LocalKeyboard, Is.EqualTo(Keyboard.Controller.DefaultKeyboard));
			Assert.That(ws1.DefaultFont, Is.Null);
			Assert.That(ws1.DefaultFontSize, Is.EqualTo(0));
			Assert.That(ws1.IsGraphiteEnabled, Is.True);
		}
        public void Read_EmptyXml_NothingSet()
        {
            var userSettingsDataMapper = new UserLexiconSettingsWritingSystemDataMapper(new MemorySettingsStore());

            var ws1 = new WritingSystemDefinition("en-US");

            userSettingsDataMapper.Read(ws1);

            Assert.That(ws1.LocalKeyboard, Is.EqualTo(Keyboard.Controller.DefaultKeyboard));
            Assert.That(ws1.DefaultFont, Is.Null);
            Assert.That(ws1.DefaultFontSize, Is.EqualTo(0));
            Assert.That(ws1.IsGraphiteEnabled, Is.True);
        }