public override void SetUp()
 {
     _tempFolder        = new TemporaryFolder();
     _persistedFilePath = _tempFolder.GetTemporaryFile();
     LiftFileInitializer.MakeFile(_persistedFilePath);
     DataMapperUnderTest = LiftRepositoryStateUnitializedTests.CreateDataMapper(_persistedFilePath);
 }
        public void Constructor_FileDoesNotExist_EmptyLiftFileIsCreated()
        {
            string nonExistentFileToBeCreated = Path.GetTempPath() + Path.GetRandomFileName();

            using (LiftRepositoryStateUnitializedTests.CreateDataMapper(nonExistentFileToBeCreated))
            {
            }
            XmlDocument dom = new XmlDocument();

            dom.Load(nonExistentFileToBeCreated);
            Assert.AreEqual(2, dom.ChildNodes.Count);
            Assert.AreEqual("lift", dom.ChildNodes[1].Name);
            Assert.AreEqual(0, dom.ChildNodes[1].ChildNodes.Count);
            File.Delete(nonExistentFileToBeCreated);
        }
        public void Constructor_FileIsEmpty_MakeFileAnEmptyLiftFile()
        {
            string emptyFileToBeFilled = Path.GetTempFileName();

            using (LiftRepositoryStateUnitializedTests.CreateDataMapper(emptyFileToBeFilled))
            {
            }
            XmlDocument doc = new XmlDocument();

            doc.Load(emptyFileToBeFilled);
            XmlNode root = doc.DocumentElement;

            Assert.AreEqual("lift", root.Name);
            File.Delete(emptyFileToBeFilled);
        }
        public void UnlockedLiftFile_ConstructorDoesNotThrow()
        {
            string persistedFilePath = _tempFolder.GetTemporaryFile();

            persistedFilePath = Path.GetFullPath(persistedFilePath);

            // Confirm that the file is writable.
            FileStream fileStream = File.OpenWrite(persistedFilePath);

            Assert.IsTrue(fileStream.CanWrite);

            // Close it before creating the LiftDataMapper.
            fileStream.Close();

            // LiftDataMapper constructor shouldn't throw an IOException.
            using (LiftDataMapper liftDataMapper = LiftRepositoryStateUnitializedTests.CreateDataMapper(persistedFilePath))
            {
            }
            Assert.IsTrue(true);             // Constructor didn't throw.
            File.Delete(persistedFilePath);
        }
 public void LockedFile_Throws()
 {
     Assert.IsTrue(_fileStream.CanWrite);
     Assert.Throws <IOException>(() =>
                                 LiftRepositoryStateUnitializedTests.CreateDataMapper(_persistedFilePath));
 }
 protected override void RepopulateRepositoryFromPersistedData()
 {
     DataMapperUnderTest.Dispose();
     DataMapperUnderTest = LiftRepositoryStateUnitializedTests.CreateDataMapper(_persistedFilePath);
 }