diff --git a/mocha-dotnet/src/lib/Mocha.Core/Oms.cs b/mocha-dotnet/src/lib/Mocha.Core/Oms.cs index 499a54b..52978bb 100644 --- a/mocha-dotnet/src/lib/Mocha.Core/Oms.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/Oms.cs @@ -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 parameterAssignments = GetRelatedInstances(methodOrMethodBinding, GetInstance(KnownRelationshipGuids.Method_Binding__has__Parameter_Assignment)); foreach (InstanceHandle parm in parameterAssignments) diff --git a/mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/MethodsModule.cs b/mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/MethodsModule.cs index 2774b58..4243539 100644 --- a/mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/MethodsModule.cs +++ b/mocha-dotnet/src/lib/Mocha.Core/OmsImplementations/Mini/Modules/MethodsModule.cs @@ -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[] diff --git a/mocha-dotnet/tests/Mocha.Core.Tests/MethodTests/MethodBindingTests.cs b/mocha-dotnet/tests/Mocha.Core.Tests/MethodTests/MethodBindingTests.cs new file mode 100644 index 0000000..ef1bb91 --- /dev/null +++ b/mocha-dotnet/tests/Mocha.Core.Tests/MethodTests/MethodBindingTests.cs @@ -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(); + } +}