public void ParseFootNoteId()
        {
            // act
            var actual = FootNoteFormatterState.ParseFootNoteId("fn42");

            // assert
            Assert.AreEqual(42, actual);
        }
        public void FormatFootNote()
        {
            // act
            var actual = FootNoteFormatterState.FormatFootNote(1, " style=\"color:red;\"");

            // assert
            Assert.AreEqual("<p id=\"fn1\" style=\"color:red;\"><sup>1</sup> ", actual);
        }
    public void ParseFootNoteId()
    {
        // arrange
        var input = "fn1{color:red}. This is the footnote";

        // act
        var actual = FootNoteFormatterState.ParseFootNoteId(input);

        // assert
        Assert.AreEqual(1, actual);
    }
        public void OnContextAcquired()
        {
            // arrange
            var output = new StringBuilderTextileFormatter();

            output.Begin();
            var fnfs = new FootNoteFormatterState(new TextileFormatter(output));

            fnfs.m_tag = "fn42";

            // act
            fnfs.OnContextAcquired();

            // assert
            Assert.AreEqual(42, fnfs.m_noteID);
        }
        public void Enter()
        {
            // arrange
            var output = new StringBuilderTextileFormatter();

            output.Begin();
            var fnfs = new FootNoteFormatterState(new TextileFormatter(output));

            fnfs.m_noteID   = 1;
            fnfs.m_alignNfo = String.Empty;
            fnfs.m_attNfo   = "{color:red}";

            // act
            fnfs.Enter();

            // assert
            Assert.AreEqual("<p id=\"fn1\" style=\"color:red;\"><sup>1</sup> ", output.GetFormattedText());
        }
        public void EnterAndOnContextAcquired()
        {
            // arrange
            var output = new StringBuilderTextileFormatter();

            output.Begin();
            var   fnfs       = new FootNoteFormatterState(new TextileFormatter(output));
            var   expression = SimpleBlockFormatterState.PatternBegin + @"fn[0-9]+" + SimpleBlockFormatterState.PatternEnd;
            var   input      = "fn1{color:red}. This is the footnote";
            Match m          = Regex.Match(input, expression);

            fnfs.Consume(input, m);

            // act
            // do nothing, since Consume() already caused OnContextAcquired() and Enter() to be called

            // assert
            Assert.AreEqual("<p id=\"fn1\" style=\"color:red;\"><sup>1</sup> ", output.GetFormattedText());
        }
    public void EnterAndOnContextAcquired()
    {
        // arrange
        var output     = new StringWriter();
        var fnfs       = new FootNoteFormatterState(output);
        var expression = @"^\s*(?<tag>fn[0-9]+)"
                         + @"(?:\{(?<atts>[^}]+)\})?"
                         + @"\.(?:\s+)?(?<content>.*)$";
        var   input = "fn1{color:red}. This is the footnote";
        Match m     = Regex.Match(input, expression);

        // act
        // Consume() causes OnContextAcquired()
        // and Enter() to be called
        fnfs.Consume(m);

        // assert
        Assert.AreEqual(
            "<p id=\"fn1\" style=\"color:red\"><sup>1</sup> ",
            output.ToString());
    }
public void EnterAndOnContextAcquired()
{
  // arrange
  var output = new StringWriter();
  var fnfs = new FootNoteFormatterState(output);
  var expression = @"^\s*(?<tag>fn[0-9]+)"
    + @"(?:\{(?<atts>[^}]+)\})?"
    + @"\.(?:\s+)?(?<content>.*)$";
  var input = "fn1{color:red}. This is the footnote";
  Match m = Regex.Match(input, expression);

  // act
  // Consume() causes OnContextAcquired()
  // and Enter() to be called
  fnfs.Consume(m);

  // assert
  Assert.AreEqual(
    "<p id=\"fn1\" style=\"color:red\"><sup>1</sup> ",
    output.ToString());
}