public void TestProcedureTableAppend() { int index = procedureTable.GetFunctionBySignature(new ProcedureMatchOptions() { FunctionName = "missing", ParameterTypes = new List <ProtoCore.Type>() { new ProtoCore.Type() { Name = "example", UID = 10 } } }, out ProcedureNode procNodeMissing); Assert.AreEqual(index, Constants.kInvalidIndex); Assert.IsNull(procNodeMissing); procedureTable.Append(new ProcedureNode() { ID = 2, ClassID = 20, Name = "missing", ArgumentTypes = new List <ProtoCore.Type>() { new ProtoCore.Type() { Name = "example", UID = 10 } }, ArgumentInfos = new List <ArgumentInfo>() { new ArgumentInfo() { Name = "example0" } }, IsConstructor = false, IsStatic = false, IsAutoGeneratedThisProc = false }); index = procedureTable.GetFunctionBySignature(new ProcedureMatchOptions() { FunctionName = "missing", ParameterTypes = new List <ProtoCore.Type>() { new ProtoCore.Type() { Name = "example", UID = 10 } } }, out ProcedureNode procNodeFound); Assert.AreEqual(index, procedureTable.Procedures.Count - 1); Assert.IsNotNull(procNodeFound); Assert.AreEqual(procNodeFound.Name, "missing"); }
public void SetUp() { testCore = thisTest.SetupTestCore(); testRuntimeCore = new RuntimeCore(testCore.Heap, testCore.Options); testExecutive = new TestExecutive(testRuntimeCore); procedureTable = new ProcedureTable(-1); var procNodes = new List <ProcedureNode>() { new ProcedureNode() { ID = 0, ClassID = 20, Name = "Test0", ArgumentTypes = new List <ProtoCore.Type>() { new ProtoCore.Type() { Name = "int", UID = 10 }, new ProtoCore.Type() { Name = "int", UID = 11 }, new ProtoCore.Type() { Name = "double", UID = 12 } }, ArgumentInfos = new List <ArgumentInfo>() { new ArgumentInfo() { Name = "example0" }, new ArgumentInfo() { Name = "example1" }, new ArgumentInfo() { Name = "example1", DefaultExpression = new IdentifierNode() { } } }, IsConstructor = false, IsStatic = false, IsAutoGeneratedThisProc = false }, new ProcedureNode() { ID = 1, ClassID = 20, Name = "Test0", ArgumentTypes = new List <ProtoCore.Type>() { new ProtoCore.Type() { Name = "int", UID = 10 }, new ProtoCore.Type() { Name = "int", UID = 11 }, new ProtoCore.Type() { Name = "int", UID = 13 }, new ProtoCore.Type() { Name = "int", UID = 13 } }, ArgumentInfos = new List <ArgumentInfo>() { new ArgumentInfo() { Name = "example0" }, new ArgumentInfo() { Name = "example1", DefaultExpression = new IdentifierNode() { } }, new ArgumentInfo() { Name = "example2", DefaultExpression = new IdentifierNode() { } }, new ArgumentInfo() { Name = "example2", DefaultExpression = new IdentifierNode() { } } }, IsConstructor = false, IsStatic = false, IsAutoGeneratedThisProc = false }, new ProcedureNode() { ID = 2, ClassID = 20, Name = "Test1", ArgumentTypes = new List <ProtoCore.Type>() { }, ArgumentInfos = new List <ArgumentInfo>() { }, IsConstructor = false, IsStatic = false, IsAutoGeneratedThisProc = false }, new ProcedureNode() { ID = 3, ClassID = 20, Name = "Test2", ArgumentTypes = new List <ProtoCore.Type>() { new ProtoCore.Type() { Name = "int", UID = 10 } }, ArgumentInfos = new List <ArgumentInfo>() { new ArgumentInfo() { Name = "example0" } }, IsConstructor = false, IsStatic = false, IsAutoGeneratedThisProc = true }, new ProcedureNode() { ID = 4, ClassID = 20, Name = "Test2", ArgumentTypes = new List <ProtoCore.Type>() { }, ArgumentInfos = new List <ArgumentInfo>() { }, IsConstructor = false, IsStatic = false, IsAutoGeneratedThisProc = false }, new ProcedureNode() { ID = 5, ClassID = 20, Name = "Test4", ArgumentTypes = new List <ProtoCore.Type>() { }, ArgumentInfos = new List <ArgumentInfo>() { }, IsConstructor = false, IsStatic = true, IsAutoGeneratedThisProc = true } }; foreach (var proc in procNodes) { procedureTable.Append(proc); } Assert.AreEqual(procedureTable.Procedures.Count, procNodes.Count); }