public void TestImportWithEmptyFile() { try { m_stateMachine = new DynamicMock(typeof(IStateMachine)); ImportState import = new ImportState(); import.StateMachine = (IStateMachine)m_stateMachine.MockInstance; string pathToEmptyFile = Workshare.TestUtils.TestFileUtils.MakeRootPathAbsolute(@"\Projects\Hygiene\src\TestDocuments\empty.csv"); Assert.IsTrue(File.Exists(pathToEmptyFile), "The file should exist on disk."); XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance; IPolicyLanguageStore policyLanguageStore = catalogueStore.LanguageStore; string xmlLang = System.IO.File.ReadAllText(Workshare.TestUtils.TestFileUtils.MakeRootPathAbsolute(@"\projects\Hygiene\src\XMLPolicyStore.Tests\TestFiles\Sample\Languages\SamplePolicy.Language.xml")); Guid guid = policyLanguageStore.AddLanguage(xmlLang); import.FileName = pathToEmptyFile; Assert.IsTrue(string.IsNullOrEmpty(import.ErrorMessage), "set up failure - already an error message on the import state"); import.Enter(); Assert.AreEqual(Properties.Resources.INVALID_CSV_FILE, import.ErrorMessage, "Unexpected error message on the import state"); } finally { PolicyLanguageCache.Instance.Reset(); XmlPolicyLanguageStore.Instance.Reset(); } }
public void TestEnterImportStateWithExclusiveLockedFile() { try { m_stateMachine = new DynamicMock(typeof(IStateMachine)); ImportState import = new ImportState(); import.StateMachine = (IStateMachine)m_stateMachine.MockInstance; string exclusivelyLockedFilePath = Workshare.TestUtils.TestFileUtils.MakeRootPathAbsolute(@"\projects\Hygiene\src\XMLPolicyStore.Tests\TestFiles\Sample\en.csv"); Assert.IsTrue(File.Exists(exclusivelyLockedFilePath), "The file should exist on disk."); XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance; IPolicyLanguageStore policyLanguageStore = catalogueStore.LanguageStore; string xmlLang = System.IO.File.ReadAllText(Workshare.TestUtils.TestFileUtils.MakeRootPathAbsolute(@"\projects\Hygiene\src\XMLPolicyStore.Tests\TestFiles\Sample\Languages\SamplePolicy.Language.xml")); Guid guid = policyLanguageStore.AddLanguage(xmlLang); import.FileName = exclusivelyLockedFilePath; //open the file with no sharing permissions (as if the file was open in another editor) using (FileStream fs = new FileStream(exclusivelyLockedFilePath, FileMode.Open, FileAccess.ReadWrite, FileShare.None)) { import.Enter(); } Assert.IsFalse(String.IsNullOrEmpty(import.ErrorMessage), "After entering the import state, DoImport should have caught (and failed gracefully) with an error message, because the file was exclusively locked"); } finally { PolicyLanguageCache.Instance.Reset(); XmlPolicyLanguageStore.Instance.Reset(); } }