System.CodeDom.Tests.CSharpCodeGenerationTests.Conditionals C# (CSharp) Method

Conditionals() private method

private Conditionals ( ) : void
return void
        public void Conditionals()
        {
            CodeTypeDeclaration class1 = new CodeTypeDeclaration("ClassWithMethod");
            class1.IsClass = true;

            CodeMemberMethod retMethod = new CodeMemberMethod();
            retMethod.Name = "ReturnMethod";
            retMethod.Attributes = MemberAttributes.Public | MemberAttributes.Static;
            retMethod.ReturnType = new CodeTypeReference(typeof(int));
            retMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(int), "intInput"));
            retMethod.Statements.Add(
                new CodeConditionStatement(
                new CodeBinaryOperatorExpression(
                new CodeBinaryOperatorExpression(
                new CodeVariableReferenceExpression("intInput"),
                CodeBinaryOperatorType.LessThanOrEqual,
                new CodePrimitiveExpression(3)),
                CodeBinaryOperatorType.BooleanAnd,
                new CodeBinaryOperatorExpression(
                new CodeVariableReferenceExpression("intInput"),
                CodeBinaryOperatorType.ValueEquality,
                new CodePrimitiveExpression(2))),
                new CodeStatement[] { CreateVariableIncrementExpression("intInput", 16) },
                new CodeStatement[] { CreateVariableIncrementExpression("intInput", 1) }));
            retMethod.Statements.Add(new CodeConditionStatement(
                new CodeBinaryOperatorExpression(new CodeVariableReferenceExpression("intInput"), CodeBinaryOperatorType.LessThanOrEqual,
                new CodePrimitiveExpression(10)),
                new CodeAssignStatement(new CodeVariableReferenceExpression("intInput"),
                new CodeBinaryOperatorExpression(new CodeVariableReferenceExpression("intInput"),
                CodeBinaryOperatorType.Add, new CodePrimitiveExpression(11)))));
            retMethod.Statements.Add(new CodeMethodReturnStatement(new CodeVariableReferenceExpression("intInput")));
            class1.Members.Add(retMethod);

            AssertEqual(class1,
                @"public class ClassWithMethod {
                      public static int ReturnMethod(int intInput) {
                          if (((intInput <= 3)
                                      && (intInput == 2))) {
                              intInput = (intInput + 16);
                          }
                          else {
                              intInput = (intInput + 1);
                          }
                          if ((intInput <= 10)) {
                              intInput = (intInput + 11);
                          }
                          return intInput;
                      }
                  }");
        }