public void Setup()
		{
			WeSayWordsProject.Project.RemoveCache();
			_tempFolder = new TemporaryFolder();
			_filePath = _tempFolder.GetTemporaryFile();
			_semanticDomainFilePath = _tempFolder.GetTemporaryFile();
			CreateSemanticDomainFile();

			_lexEntryRepository = new LexEntryRepository(_filePath);
			_viewTemplate = MakeViewTemplate("en");
			_task = new GatherBySemanticDomainTask(_semanticDomainFilePath,
												   _lexEntryRepository,
												   _viewTemplate);
		}
		public void ParseFrenchSemanticDomainFile_Localized()
		{
			string frenchSemanticDomainFilePath = Path.GetTempFileName();
			using (StreamWriter streamWriter = File.CreateText(frenchSemanticDomainFilePath))
			{
				streamWriter.Write(
						@"<?xml version='1.0' encoding='utf-8'?>
<semantic-domain-questions semantic-domain-type='DDP4' lang='fr'>
<semantic-domain guid='I63403699-07C1-43F3-A47C-069D6E4316E5' id='1 Universe, creation'>
<question>Quels sont les mots qui font référence à tout ce qu'on peut voir?</question>
</semantic-domain>
<semantic-domain guid='I999581C4-1611-4ACB-AE1B-5E6C1DFE6F0C' id='1.1 Sky'>
<question>Quels sont les mots qui signifient le ciel?</question>
<question>Quels sont les mots qui signifient l'endroit ou le pays au-delà du ciel?</question>
<question>Quels sont les mots qui décrivent l'aspect du ciel?</question>
<question>Quels sont les mots qui décrivent l'endroit où le ciel touche la terre?</question>
<question>Quel terme général fait référence aux objets dans le ciel?</question>
</semantic-domain></semantic-domain-type>");
			}

			ViewTemplate template = MakeViewTemplate("fr");
			GatherBySemanticDomainTask task = new GatherBySemanticDomainTask(frenchSemanticDomainFilePath,
																			 _lexEntryRepository,
																			 template);
			task.Activate();
			Assert.AreEqual("L'univers physique", task.DomainNames[0]);
			Assert.AreEqual("Ciel", task.DomainNames[1]);
			Assert.AreEqual("fr", task.SemanticDomainWritingSystemId);

			File.Delete(frenchSemanticDomainFilePath);
		}
		public void ParseEmptySemanticDomainFile()
		{
			string emptySemanticDomainFilePath = Path.GetTempFileName();
			using (StreamWriter streamWriter = File.CreateText(emptySemanticDomainFilePath))
			{
				streamWriter.Write("");
			}

			GatherBySemanticDomainTask task = new GatherBySemanticDomainTask(emptySemanticDomainFilePath,
																			 _lexEntryRepository,
																			 _viewTemplate);
			task.Activate();
			Assert.AreEqual(1, task.DomainKeys.Count);
			Assert.AreEqual(string.Empty, task.CurrentDomainKey);
			Assert.AreEqual(1, task.Questions.Count);
			Assert.AreEqual(string.Empty, task.CurrentQuestion);

			File.Delete(emptySemanticDomainFilePath);
		}