public void NextVersionCanHavePatch()
        {
            const string text = "next-version: 2.12.654651698";

            SetupConfigFileContent(text);
            var config = HgConfigurationProvider.Provide(repoPath, fileSystem);

            config.NextVersion.ShouldBe("2.12.654651698");
        }
        public void NextVersionCanHaveEnormousMinorVersion()
        {
            const string text = "next-version: 2.118998723";

            SetupConfigFileContent(text);
            var config = HgConfigurationProvider.Provide(repoPath, fileSystem);

            config.NextVersion.ShouldBe("2.118998723");
        }
        public void NextVersionCanBeInteger()
        {
            const string text = "next-version: 2";

            SetupConfigFileContent(text);
            var config = HgConfigurationProvider.Provide(repoPath, fileSystem);

            config.NextVersion.ShouldBe("2.0");
        }
 /// <summary>
 /// Creates an instance of <see cref="HgVersionContext"/>
 /// </summary>
 /// <param name="repository">Mercurial retpository</param>
 public HgVersionContext(IHgRepository repository)
 {
     Repository                 = repository;
     CurrentBranch              = repository.CurrentBranch();
     CurrentCommit              = repository.CurrentCommit();
     FileSystem                 = new FileSystem();
     FullConfiguration          = HgConfigurationProvider.Provide(repository, FileSystem);
     RepositoryMetadataProvider = new HgRepositoryMetadataProvider(repository, FullConfiguration);
     Configuration              = CalculateEffectiveConfiguration();
     CurrentCommitTaggedVersion = CalculateCurrentCommitTaggedVersion();
     IsCurrentCommitTagged      = CurrentCommitTaggedVersion != null;
 }
        public void RegexIsRequired()
        {
            const string text = @"
                next-version: 2.0.0
                branches:
                    bug:
                        tag: bugfix";

            SetupConfigFileContent(text);
            var ex = Should.Throw <ConfigurationException>(() => HgConfigurationProvider.Provide(repoPath, fileSystem));

            ex.Message.ShouldBe("Branch configuration 'bug' is missing required configuration 'regex'");
        }
        public void CanRemoveTag()
        {
            const string text = @"
                next-version: 2.0.0
                branches:
                    release:
                        tag: """"";

            SetupConfigFileContent(text);
            var config = HgConfigurationProvider.Provide(repoPath, fileSystem);

            config.NextVersion.ShouldBe("2.0.0");
            config.Branches["release"].Tag.ShouldBe(string.Empty);
        }
        public void NoWarnOnHgVersionYmlFile()
        {
            SetupConfigFileContent(string.Empty);

            var             s      = string.Empty;
            Action <string> action = info => { s = info; };

            using (Logger.AddLoggersTemporarily(action, action, action, action))
            {
                HgConfigurationProvider.Provide(repoPath, fileSystem);
            }

            s.Length.ShouldBe(0);
        }
        public void CanReadDefaultDocument()
        {
            const string text = "";

            SetupConfigFileContent(text);
            var config = HgConfigurationProvider.Provide(repoPath, fileSystem);

            config.AssemblyVersioningScheme.ShouldBe(AssemblyVersioningScheme.MajorMinorPatch);
            config.AssemblyFileVersioningScheme.ShouldBe(AssemblyFileVersioningScheme.MajorMinorPatch);
            config.AssemblyInformationalFormat.ShouldBe(null);
            config.Branches["develop"].Tag.ShouldBe("alpha");
            config.Branches["release"].Tag.ShouldBe("beta");
            config.TagPrefix.ShouldBe(HgConfigurationProvider.DefaultTagPrefix);
            config.NextVersion.ShouldBe(null);
        }
        public void CanUpdateAssemblyInformationalVersioningSchemeWithMultipleVariables()
        {
            const string text = @"
                assembly-versioning-scheme: MajorMinor
                assembly-file-versioning-scheme: MajorMinorPatch
                assembly-informational-format: '{Major}.{Minor}.{Patch}'";

            SetupConfigFileContent(text);

            var config = HgConfigurationProvider.Provide(repoPath, fileSystem);

            config.AssemblyVersioningScheme.ShouldBe(AssemblyVersioningScheme.MajorMinor);
            config.AssemblyFileVersioningScheme.ShouldBe(AssemblyFileVersioningScheme.MajorMinorPatch);
            config.AssemblyInformationalFormat.ShouldBe("{Major}.{Minor}.{Patch}");
        }
        public void CanProvideConfigForNewBranch()
        {
            const string text = @"
                next-version: 2.0.0
                branches:
                    bug:
                        regex: 'bug[/-]'
                        tag: bugfix
                        source-branches: []";

            SetupConfigFileContent(text);
            var config = HgConfigurationProvider.Provide(repoPath, fileSystem);

            config.Branches["bug"].Regex.ShouldBe("bug[/-]");
            config.Branches["bug"].Tag.ShouldBe("bugfix");
        }
        public void OverwritesDefaultsWithProvidedConfig()
        {
            var          defaultConfig = HgConfigurationProvider.Provide(repoPath, fileSystem);
            const string text          = @"
                next-version: 2.0.0
                branches:
                    develop:
                        mode: ContinuousDeployment
                        tag: dev";

            SetupConfigFileContent(text);
            var config = HgConfigurationProvider.Provide(repoPath, fileSystem);

            config.NextVersion.ShouldBe("2.0.0");
            config.Branches["develop"].Increment.ShouldBe(defaultConfig.Branches["develop"].Increment);
            config.Branches["develop"].VersioningMode.ShouldBe(defaultConfig.Branches["develop"].VersioningMode);
            config.Branches["develop"].Tag.ShouldBe("dev");
        }
        public void CanUpdateAssemblyInformationalVersioningSchemeWithFullSemVer()
        {
            const string text = @"
                assembly-versioning-scheme: MajorMinorPatch
                assembly-file-versioning-scheme: MajorMinorPatch
                assembly-informational-format: '{FullSemVer}'
                mode: ContinuousDelivery
                next-version: 5.3.0
                branches: {}";

            SetupConfigFileContent(text);

            var config = HgConfigurationProvider.Provide(repoPath, fileSystem);

            config.AssemblyVersioningScheme.ShouldBe(AssemblyVersioningScheme.MajorMinorPatch);
            config.AssemblyFileVersioningScheme.ShouldBe(AssemblyFileVersioningScheme.MajorMinorPatch);
            config.AssemblyInformationalFormat.ShouldBe("{FullSemVer}");
        }
Esempio n. 13
0
 public static Config ApplyDefaults(this Config config)
 {
     HgConfigurationProvider.ApplyDefaultsTo(config);
     return(config);
 }
        public void CanWriteOutEffectiveConfiguration()
        {
            var config = HgConfigurationProvider.GetEffectiveConfigAsString(repoPath, fileSystem);

            config.ShouldMatchApproved();
        }