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

Arrays_WithinArrays_Empty_NonPrimitiveTypes() private method

private Arrays_WithinArrays_Empty_NonPrimitiveTypes ( ) : void
return void
        public void Arrays_WithinArrays_Empty_NonPrimitiveTypes()
        {
            var arrayMethod = new CodeMemberMethod();
            arrayMethod.Name = "MoreArrayTests";
            arrayMethod.Attributes = (arrayMethod.Attributes & ~MemberAttributes.AccessMask) | MemberAttributes.Public;
            arrayMethod.ReturnType = new CodeTypeReference(typeof(int));
            arrayMethod.Parameters.Add(new CodeParameterDeclarationExpression(typeof(int), "i"));
                arrayMethod.Statements.Add(new CodeVariableDeclarationStatement(new CodeTypeReference(typeof(int[][])),
                            "arrayOfArrays", new CodeArrayCreateExpression(typeof(int[][]),
                            new CodeArrayCreateExpression(typeof(int[]), new CodePrimitiveExpression(3), new CodePrimitiveExpression(4)),
                            new CodeArrayCreateExpression(typeof(int[]), new CodePrimitiveExpression(1)), new CodeArrayCreateExpression(typeof(int[])))));
            arrayMethod.Statements.Add(new CodeVariableDeclarationStatement(
                new CodeTypeReference("System.Int32", 1), "array2",
                new CodeArrayCreateExpression(typeof(int[]), new CodePrimitiveExpression(0))));
            arrayMethod.Statements.Add(new CodeVariableDeclarationStatement(new CodeTypeReference("Class2", 1),
                "arrayType", new CodeArrayCreateExpression(new CodeTypeReference("Class2", 1), new CodePrimitiveExpression(2))));
            arrayMethod.Statements.Add(new CodeAssignStatement(new CodeArrayIndexerExpression(new CodeVariableReferenceExpression("arrayType"),
                        new CodePrimitiveExpression(1)), new CodeObjectCreateExpression(new CodeTypeReference("Class2"))));
            arrayMethod.Statements.Add(new CodeAssignStatement(new CodeFieldReferenceExpression
                        (new CodeArrayIndexerExpression(new CodeVariableReferenceExpression("arrayType"),
                        new CodePrimitiveExpression(1)), "number"),
                        new CodeBinaryOperatorExpression(new CodeArrayIndexerExpression(
                        new CodeArrayIndexerExpression(new CodeVariableReferenceExpression("arrayOfArrays"), new CodePrimitiveExpression(0)), new CodePrimitiveExpression(1)),
                        CodeBinaryOperatorType.Add, new CodeVariableReferenceExpression("i"))));
            arrayMethod.Statements.Add(new CodeMethodReturnStatement(new CodeFieldReferenceExpression
                        (new CodeArrayIndexerExpression(new CodeVariableReferenceExpression("arrayType"),
                        new CodePrimitiveExpression(1)), "number")));

            AssertEqual(arrayMethod,
                @"public int MoreArrayTests(int i)
                  {
                      int[][] arrayOfArrays = new int[][] { new int[] { 3,
                                                      4},
                                              new int[1],
                                              new int[0]};
                      int[] array2 = new int[0];
                      Class2[] arrayType = new Class2[2];
                      arrayType[1] = new Class2();
                      arrayType[1].number = (arrayOfArrays[0][1] + i);
                      return arrayType[1].number;
                  }");
        }