public void Interface_Indexer() { const string code = @" public interface Interface1 { string this[int i] { get; set; } } "; CSharpParser parser = new CSharpParser(); parser.ParseCode(code); ICodeRoot codeRoot = parser.CreatedCodeRoot; Interface clazz = (Interface)codeRoot.WalkChildren()[0]; InterfaceIndexer inter = (InterfaceIndexer)clazz.WalkChildren()[0]; Assert.That(inter.DataType.ToString(), Is.EqualTo("string")); Assert.That(inter.GetAccessor, Is.Not.Null); Assert.That(inter.SetAccessor, Is.Not.Null); Assert.That(inter.Parameters, Has.Count(1)); Assert.That(inter.Parameters[0].Name, Is.EqualTo("i")); Assert.That(inter.Parameters[0].DataType, Is.EqualTo("int")); }
public void InterfaceIndexer() { Interface it = new Interface(controller, "Interface1"); InterfaceIndexer item = new InterfaceIndexer(controller, new DataType(controller, "int"), false); item.Parameters.Add(new Parameter(controller, "float", "f")); item.Parameters.Add(new Parameter(controller, "InputObject", "j")); Assert.That(item.FullyQualifiedDisplayName, Is.EqualTo("Indexer [float, InputObject]")); it.AddChild(item); Namespace ns = new Namespace(controller); ns.Name = "ns1"; ns.AddChild(it); Assert.That(item.FullyQualifiedDisplayName, Is.EqualTo("ns1.Interface1.Indexer [float, InputObject]")); }
public VBInterfaceIndexerPrinter(InterfaceIndexer obj) { this.obj = obj; }
public void InterfaceIndexer_Change_DataType() { InterfaceIndexer merged1 = new InterfaceIndexer(controller); InterfaceIndexer merged2 = new InterfaceIndexer(controller); InterfaceIndexer merged3 = new InterfaceIndexer(controller); DataType type1 = new DataType(controller, DataType1); DataType type2 = new DataType(controller, DataType2); const string expectedResult = DataType2 + " this []"; InterfaceIndexer unchanging = new InterfaceIndexer(controller, type1, false); InterfaceIndexer changing = new InterfaceIndexer(controller, type2, false); Merge_And_Assert(merged1, merged2, merged3, changing, unchanging, expectedResult); }
public void InterfaceIndexer_Add_HasNewKeyword() { InterfaceIndexer merged1 = new InterfaceIndexer(controller); InterfaceIndexer merged2 = new InterfaceIndexer(controller); InterfaceIndexer merged3 = new InterfaceIndexer(controller); DataType type1 = new DataType(controller, DataType1); const string expectedResult = "new " + DataType1 + " this []"; InterfaceIndexer unchanging = new InterfaceIndexer(controller, type1, false); InterfaceIndexer changing = new InterfaceIndexer(controller, type1, true); Merge_And_Assert(merged1, merged2, merged3, changing, unchanging, expectedResult); }
private void Process_Interace_Property_Declaration(InterfacePropertyDeclaration node) { if (node == null) throw new ArgumentNullException("node"); if (node.IsIndexer) { InterfaceIndexer inter = new InterfaceIndexer(controller); inter.DataType = FormatterUtility.GetDataTypeFromTypeReference(node.ReturnType, document, controller); foreach (ParameterDeclaration paramNode in node.Parameters) { inter.Parameters.Add(GetParameterFromParameterDeclaration(document, controller, paramNode)); } SetupBaseConstruct(node, inter); } else { InterfaceProperty inter = new InterfaceProperty(controller, node.Name.Text); inter.DataType = FormatterUtility.GetDataTypeFromTypeReference(node.ReturnType, document, controller); SetupBaseConstruct(node, inter); } }
public InterfaceIndexerPrinter(InterfaceIndexer obj) : base(obj) { this.obj = obj; }