public static void AppendFormat(string original, IFormatProvider provider, string format, object[] values, string expected)
{
StringBuilder builder;
if (values != null)
{
if (values.Length == 1)
{
// Use AppendFormat(string, object) or AppendFormat(IFormatProvider, string, object)
if (provider == null)
{
// Use AppendFormat(string, object)
builder = new StringBuilder(original);
builder.AppendFormat(format, values[0]);
Assert.Equal(expected, builder.ToString());
}
// Use AppendFormat(IFormatProvider, string, object)
builder = new StringBuilder(original);
builder.AppendFormat(provider, format, values[0]);
Assert.Equal(expected, builder.ToString());
}
else if (values.Length == 2)
{
// Use AppendFormat(string, object, object) or AppendFormat(IFormatProvider, string, object, object)
if (provider == null)
{
// Use AppendFormat(string, object, object)
builder = new StringBuilder(original);
builder.AppendFormat(format, values[0], values[1]);
Assert.Equal(expected, builder.ToString());
}
// Use AppendFormat(IFormatProvider, string, object, object)
builder = new StringBuilder(original);
builder.AppendFormat(provider, format, values[0], values[1]);
Assert.Equal(expected, builder.ToString());
}
else if (values.Length == 3)
{
// Use AppendFormat(string, object, object, object) or AppendFormat(IFormatProvider, string, object, object, object)
if (provider == null)
{
// Use AppendFormat(string, object, object, object)
builder = new StringBuilder(original);
builder.AppendFormat(format, values[0], values[1], values[2]);
Assert.Equal(expected, builder.ToString());
}
// Use AppendFormat(IFormatProvider, string, object, object, object)
builder = new StringBuilder(original);
builder.AppendFormat(provider, format, values[0], values[1], values[2]);
Assert.Equal(expected, builder.ToString());
}
}
// Use AppendFormat(string, object[]) or AppendFormat(IFormatProvider, string, object[])
if (provider == null)
{
// Use AppendFormat(string, object[])
builder = new StringBuilder(original);
builder.AppendFormat(format, values);
Assert.Equal(expected, builder.ToString());
}
// Use AppendFormat(IFormatProvider, string, object[])
builder = new StringBuilder(original);
builder.AppendFormat(provider, format, values);
Assert.Equal(expected, builder.ToString());
}