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));
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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);
            }
        }