// Listing 1-1 obejmuje całą zawartość pliku (oprócz komentarzy).
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace HelloWorld.Tests
{
    // Listing 1-11 zawiera trzy poniższe wiersze
    [TestClass]
    public class WhenProgramRuns
    {
        // Listing 1-13 zawiera poniższy wiersz
        private string _consoleOutput;

        // Pierwsza część listingu 1-12 obejmuje dwa poniższe wiersze.
        [TestInitialize]
        public void Initialize()
        {
            var w = new System.IO.StringWriter();
            Console.SetOut(w);

            // Listing 1-2 to poniższy wiersz
            Program.Main(new string[0]);

            _consoleOutput = w.GetStringBuilder().ToString().Trim();
        }

        // Druga część listingu 1-12 zawiera dwa poniższe wiersze.
        [TestMethod]
        public void SaysHelloWorld()
        {
            Assert.AreEqual("Witaj, świecie!", _consoleOutput);
        }
    }
}
