public void EnvironmentRepositoryWriteSessionWithExistingFileExpectedOverwritesFile()
{
var path = EnvironmentRepository.GetEnvironmentsFilePath();
var bakPath = RetryUtility.RetryMethod(() => BackupFile(path), 15, 1000, null);
var c1 = CreateMockConnection();
var e1 = new EnvironmentModel(Guid.NewGuid(), c1.Object, new Mock<IResourceRepository>().Object, new Mock<IStudioResourceRepository>().Object);
var repo = new TestEnvironmentRespository(e1) { IsReadWriteEnabled = true };
// Create file
repo.WriteSession(new List<Guid> { Guid.NewGuid() });
var xml = XElement.Load(path);
var actual = xml.Descendants("Environment").Count();
Assert.AreEqual(1, actual);
// Overwrite file
repo.WriteSession(new List<Guid> { Guid.NewGuid(), Guid.NewGuid() });
xml = XElement.Load(path);
actual = xml.Descendants("Environment").Count();
Assert.AreEqual(2, actual);
// ReSharper disable ImplicitlyCapturedClosure
RetryUtility.RetryAction(() => DeleteFile(path), 15, 1000);
// ReSharper restore ImplicitlyCapturedClosure
RetryUtility.RetryAction(() => RestoreFile(path, bakPath), 15, 1000);
}