public void ItShouldPossibleToInvokeStringFormat()
        {
            const string expected =
                @"public System.String Call(System.String par1, System.String par2)
{
  System.String result;
  result = System.String.Format(""{0}-{1}"", par1, par2);
  return result;
}";

            var newExpression = Function.Create()
                                .WithParameter <string>("par1")
                                .WithParameter <string>("par2")
                                .WithBody(
                CodeLine.CreateVariable <string>("result"),
                CodeLine.Assign(Operation.Variable("result"),
                                StringOperation.Format(
                                    "{0}-{1}",
                                    Operation.Variable("par1"),
                                    Operation.Variable("par2")))
                )
                                .Returns("result");

            AssertString.AreEqual(expected, newExpression.ToString());

            var lambda = newExpression.ToLambda <Func <string, string, string> >();

            Assert.IsNotNull(lambda);
            var result = lambda("a", "b");

            Assert.AreEqual("a-b", result);
        }