public GitArmorRepositoryConfig LoadOrCreate(string repositoryFolder) { var configFilePath = Path.Combine(repositoryFolder, @".git\gitarmor\config"); if (!m_files.Exists(configFilePath)) { if (!m_dirs.Exists(Path.Combine(repositoryFolder, @".git\gitarmor"))) { m_dirs.CreateDirectory(Path.Combine(repositoryFolder, @".git\gitarmor")); } var jsonConfig = m_serializer.Serialize(new GitArmorRepositoryConfig()); using (var fw = m_files.CreateText(configFilePath)) { fw.WriteLine(jsonConfig); } } string serializedJson = null; using (var fr = m_files.OpenText(configFilePath)) { serializedJson = fr.ReadToEnd(); } return(m_serializer.Deserialize <GitArmorRepositoryConfig>(serializedJson)); }
public void Save_ShouldUpdateIssueIntoFile() { var streamWriter = A.Fake <TextWriter>(); A.CallTo(() => m_file.CreateText($@"{m_repositoryDirectory}\.git\gitarmor\issuetracker\lastissue")).Returns(streamWriter); m_lastIssue.Save("123"); A.CallTo(() => streamWriter.WriteLine("123")).MustHaveHappened(); }
public void Save(string issue) { var directory = Path.GetDirectoryName(m_lastIssueFile); if (!m_directoryUtilities.Exists(directory)) { m_directoryUtilities.CreateDirectory(directory); } if (m_fileUtilities.Exists(m_lastIssueFile)) { m_fileUtilities.Delete(m_lastIssueFile); } using (var stream = m_fileUtilities.CreateText(m_lastIssueFile)) { stream.WriteLine(issue); } }