all Method Bindings should inherit from Method Binding class

This commit is contained in:
Michael Becker 2024-08-14 15:37:52 -04:00
parent 3c82a3a10c
commit dd91aac0db
3 changed files with 121 additions and 1 deletions

View File

@ -705,8 +705,12 @@ public abstract class Oms
public InstanceHandle Execute(OmsContext context, InstanceHandle methodOrMethodBinding, InstanceHandle? targetInstance = null)
{
InstanceHandle parentClass = GetParentClass(methodOrMethodBinding);
if (IsInstanceOf(methodOrMethodBinding, GetInstance(KnownInstanceGuids.Classes.MethodBinding)))
/*
if (IsInstanceOf(methodOrMethodBinding, GetInstance(KnownInstanceGuids.Classes.ReturnAttributeMethodBinding))
|| IsInstanceOf(methodOrMethodBinding, GetInstance(KnownInstanceGuids.Classes.ReturnInstanceSetMethodBinding)))
|| IsInstanceOf(methodOrMethodBinding, GetInstance(KnownInstanceGuids.Classes.ReturnInstanceSetMethodBinding))
|| IsInstanceOf(methodOrMethodBinding, GetInstance(KnownInstanceGuids.Classes.BuildResponseMethodBinding)))
*/
{
IEnumerable<InstanceHandle> parameterAssignments = GetRelatedInstances(methodOrMethodBinding, GetInstance(KnownRelationshipGuids.Method_Binding__has__Parameter_Assignment));
foreach (InstanceHandle parm in parameterAssignments)

View File

@ -65,10 +65,19 @@ public class MethodsModule : MiniOmsModule
c_Method = oms.CreateClass("Method", KnownInstanceGuids.Classes.Method);
c_MethodBinding = oms.CreateClass("Method Binding", KnownInstanceGuids.Classes.MethodBinding);
c_ReturnAttributeMethodBinding = oms.CreateClass("Return Attribute Method Binding", KnownInstanceGuids.Classes.ReturnAttributeMethodBinding);
oms.AddSuperClass(c_ReturnAttributeMethodBinding, c_MethodBinding);
c_ReturnInstanceSetMethodBinding = oms.CreateClass("Return Instance Set Method Binding", KnownInstanceGuids.Classes.ReturnInstanceSetMethodBinding);
oms.AddSuperClass(c_ReturnInstanceSetMethodBinding, c_MethodBinding);
c_ReturnElementMethodBinding = oms.CreateClass("Return Element Method Binding", KnownInstanceGuids.Classes.ReturnElementMethodBinding);
oms.AddSuperClass(c_ReturnElementMethodBinding, c_MethodBinding);
c_BuildResponseMethodBinding = oms.CreateClass("Build Response Method Binding", KnownInstanceGuids.Classes.BuildResponseMethodBinding);
oms.AddSuperClass(c_BuildResponseMethodBinding, c_MethodBinding);
// c_ReturnWorkDataMethodBinding = oms.CreateClass("Return Work Data Method Binding", KnownInstanceGuids.Classes.ReturnWorkDataMethodBinding);
c_AccumulationFunction = oms.CreateEnumeration(KnownInstanceGuids.Classes.AccumulationFunction, new Guid[]

View File

@ -0,0 +1,107 @@
using System;
using Mocha.Core.Oop;
namespace Mocha.Core.Tests.MethodTests;
public class MethodBindingTests : MethodTestsBase
{
[Test]
public void RSMBInheritsFromMethodBinding()
{
OmsMethodBuilder mb = new OmsMethodBuilder(Oms);
InstanceHandle c_MethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding);
WorkSet ws_1 = Oms.CreateWorkSet("Test Work Set 1");
MethodReturningInstanceSet dummy = mb.CreateGetSpecifiedInstancesMethod(c_TestClass, "get", "Test Class", ws_1, new InstanceHandle[] { c_TestClass });
InstanceHandle handle = mb.CreateReturnInstanceSetMethodBinding(dummy).Handle;
Assert.That(Oms.IsInstanceOf(handle, c_MethodBinding));
}
[Test]
public void RAMBInheritsFromMethodBinding()
{
OmsMethodBuilder mb = new OmsMethodBuilder(Oms);
InstanceHandle c_MethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding);
InstanceHandle a_Text = Oms.GetInstance(KnownAttributeGuids.Text.Value);
MethodReturningAttribute dummy = mb.CreateGetAttributeMethod(c_TestClass, "get", "Test Attribute", a_Text);
InstanceHandle handle = mb.CreateReturnAttributeMethodBinding(dummy).Handle;
Assert.That(Oms.IsInstanceOf(handle, c_MethodBinding));
}
[Test]
public void REMBInheritsFromMethodBinding()
{
/*
OmsMethodBuilder mb = new OmsMethodBuilder(Oms);
InstanceHandle c_MethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding);
InstanceHandle a_Text = Oms.GetInstance(KnownAttributeGuids.Text.Value);
MethodReturningAttribute dummy = mb.CreateGetAttributeMethod(c_TestClass, "get", "Test Attribute", a_Text);
InstanceHandle handle = mb.CreateReturnAttributeMethodBinding(dummy).Handle;
Assert.That(Oms.IsInstanceOf(handle, c_MethodBinding));
*/
Assert.Ignore();
}
[Test]
public void BRMBInheritsFromMethodBinding()
{
/*
OmsMethodBuilder mb = new OmsMethodBuilder(Oms);
InstanceHandle c_MethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding);
InstanceHandle a_Text = Oms.GetInstance(KnownAttributeGuids.Text.Value);
MethodReturningAttribute dummy = mb.CreateGetAttributeMethod(c_TestClass, "get", "Test Attribute", a_Text);
InstanceHandle handle = mb.CreateReturnAttributeMethodBinding(dummy).Handle;
Assert.That(Oms.IsInstanceOf(handle, c_MethodBinding));
*/
Assert.Ignore();
}
[Test]
public void RWMBInheritsFromMethodBinding()
{
/*
OmsMethodBuilder mb = new OmsMethodBuilder(Oms);
InstanceHandle c_MethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding);
InstanceHandle a_Text = Oms.GetInstance(KnownAttributeGuids.Text.Value);
MethodReturningAttribute dummy = mb.CreateGetAttributeMethod(c_TestClass, "get", "Test Attribute", a_Text);
InstanceHandle handle = mb.CreateReturnAttributeMethodBinding(dummy).Handle;
Assert.That(Oms.IsInstanceOf(handle, c_MethodBinding));
*/
Assert.Ignore();
}
[Test]
public void PUMBInheritsFromMethodBinding()
{
/*
OmsMethodBuilder mb = new OmsMethodBuilder(Oms);
InstanceHandle c_MethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding);
InstanceHandle a_Text = Oms.GetInstance(KnownAttributeGuids.Text.Value);
MethodReturningAttribute dummy = mb.CreateGetAttributeMethod(c_TestClass, "get", "Test Attribute", a_Text);
InstanceHandle handle = mb.CreateReturnAttributeMethodBinding(dummy).Handle;
Assert.That(Oms.IsInstanceOf(handle, c_MethodBinding));
*/
Assert.Ignore();
}
[Test]
public void EUMBInheritsFromMethodBinding()
{
/*
OmsMethodBuilder mb = new OmsMethodBuilder(Oms);
InstanceHandle c_MethodBinding = Oms.GetInstance(KnownInstanceGuids.Classes.MethodBinding);
InstanceHandle a_Text = Oms.GetInstance(KnownAttributeGuids.Text.Value);
MethodReturningAttribute dummy = mb.CreateGetAttributeMethod(c_TestClass, "get", "Test Attribute", a_Text);
InstanceHandle handle = mb.CreateReturnAttributeMethodBinding(dummy).Handle;
Assert.That(Oms.IsInstanceOf(handle, c_MethodBinding));
*/
Assert.Ignore();
}
}