public void SimpleValueReplacement()
        {
            RepositoryInfoHub.Flush();
            var replacementTokenXmlHandler = new ReplacementTokenXmlHandler();

            var          attributes         = new Dictionary <string, string>();
            const string constantTokenValue = "constant text";

            attributes.Add("TokenName", "Foo");
            attributes.Add("Value", constantTokenValue);
            replacementTokenXmlHandler.ProcessStartElement("ReplacementToken", attributes);
            Assert.That(RepositoryInfoHub.Instance.ParseTokens("#Foo#"), Is.EqualTo(constantTokenValue));
        }
        public void RegExReplacementWithExistingTokenAsValue()
        {
            RepositoryInfoHub.Flush();
            var replacementTokenXmlHandler = new ReplacementTokenXmlHandler();

            var attributes = new Dictionary <string, string>();

            attributes.Add("TokenName", "Foo");
            attributes.Add("Value", "#logmessage#");
            attributes.Add("RegExPattern", @"\[Review #(\d+)\]");
            replacementTokenXmlHandler.ProcessStartElement("ReplacementToken", attributes);
            var repoChangeInfo = MockRepository.GenerateStub <IRepoChangeInfo>();

            repoChangeInfo.Expect(x => x.LogMessage).Return("This commit updates [Review #123] by fixing stuff");
            repoChangeInfo.Expect(x => x.AffectedItems).Return(new List <IRepoAffectedItem>());
            RepositoryInfoHub.Instance.RepoChangeInfo = repoChangeInfo;
            Assert.That(RepositoryInfoHub.Instance.ParseTokens("#Foo#"), Is.EqualTo("123"));
        }