/// <summary> /// Creates the class. /// </summary> /// <param name="testClass">The test class.</param> /// <returns></returns> internal static byte[] CreateClass(TestClassModel testClass) { var stringBuilder = new StringBuilder(); foreach (var requiredUsing in testClass.UsingStatements) { stringBuilder.AppendLine(requiredUsing); } stringBuilder.AppendLine(""); stringBuilder.Append("namespace "); stringBuilder.AppendLine(testClass.Namespace); stringBuilder.AppendLine("{"); stringBuilder.Append("\t"); stringBuilder.AppendLine( testClass.Attributes.TrimEnd('\r').TrimEnd('\n')); stringBuilder.AppendLine(String.Concat("\tpublic class ", testClass.Name)); stringBuilder.AppendLine("\t{"); foreach (var test in testClass.Tests) { stringBuilder.Append("\t\t"); stringBuilder.AppendLine(test.Attributes.TrimEnd('\n').TrimEnd('\r').TrimEnd('\n')); stringBuilder.Append("\t\tpublic void "); stringBuilder.Append(test.Name); stringBuilder.AppendLine("()"); stringBuilder.Append("\t\t{"); stringBuilder.AppendLine(test.Implementation); stringBuilder.AppendLine("\t\t}"); stringBuilder.AppendLine(""); } stringBuilder.Remove(stringBuilder.Length - 1, 1); stringBuilder.AppendLine("\t}"); // class stringBuilder.AppendLine("}"); // namespace return Encoding.UTF8.GetBytes(stringBuilder.ToString()); }
/// <summary> /// Creates the test class model. /// </summary> /// <param name="name">The name.</param> /// <returns></returns> public TestClassModel CreateTestClassModel(string name) { var testClass = new TestClassModel { Name = name, Namespace = Namespace, UsingStatements = RequiredUsings }; var classAttributeBuilder = new StringBuilder(); var counter = 0; foreach (var attribute in RequiredClassAttributes) { if (counter > 0) classAttributeBuilder.Append("\t"); classAttributeBuilder.Append(attribute); classAttributeBuilder.Append("\r\n"); counter++; } if (classAttributeBuilder.Length > 0) { classAttributeBuilder.Remove( classAttributeBuilder.Length - 2, 2); } testClass.Attributes = classAttributeBuilder.ToString(); return testClass; }