public void Error_WrongXmlEncoding() { // Setup TestEnvironment.CopyFwProjectTo(TestLangProj, _lDSettings.WebWorkDirectory); TestEnvironment.CopyFwProjectTo(TestLangProj, _env.Settings.WebWorkDirectory); LanguageDepotMock.Server.Start(); var ldDirectory = Path.Combine(_lDSettings.WebWorkDirectory, TestLangProj); var oldHashOfLd = MercurialTestHelper.GetRevisionOfTip(ldDirectory); var fwdataPath = Path.Combine(_env.Settings.WebWorkDirectory, TestLangProj, TestLangProj + ".fwdata"); TestEnvironment.ChangeFileEncoding(fwdataPath, System.Text.Encoding.UTF8, System.Text.Encoding.UTF32); // Note that the XML file will still claim the encoding is UTF-8! // Execute _synchronizeAction.Run(_lfProject); // Verify string errors = _env.Logger.GetErrors(); Assert.That(errors, Does.Contain("System.Xml.XmlException: '.', hexadecimal value 0x00, is an invalid character.")); // Stack trace should also have been logged Assert.That(errors, Does.Contain("\n at Chorus.sync.Synchronizer.SyncNow (Chorus.sync.SyncOptions options)")); Assert.That(_lfProject.State.SRState, Is.EqualTo(ProcessingState.SendReceiveStates.SYNCING)); }