using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Modify
{
    class Program
    {
        static void Main(string[] args)
        {
            IModify modifier =
              (IModify)new ToUpperProxy().GetTransparentProxy();

            // テスト1
            {
                string input = "hoge";
                string dest;
                bool result = modifier.Modify(input, out dest);
                Console.WriteLine("[TEST1] result:{0} in:{1} out:{2}",
                  result, input, dest ?? "(null)");
            }

            // テスト2
            {
                string dest;
                bool result = modifier.Modify(null, out dest);
                Console.WriteLine("[TEST2] result:{0} in:(null) out:{1}",
                  result, dest ?? "(null)");
            }

            Console.ReadKey();
        }
    }
}
