public void CreateFunctionMetaData_ShouldReturnIRfcFunctionMetaData() { var connection = new RfcConnection(_interopMock.Object, RfcConfigurationOption); RfcErrorInfo errorInfo; _interopMock .Setup(x => x.GetFunctionDesc(It.IsAny <IntPtr>(), It.IsAny <string>(), out errorInfo)) .Returns(FunctionDescriptionHandle); var functionName = "TEST"; IRfcFunctionMetaData functionMetaData = connection.CreateFunctionMetaData(functionName); functionMetaData.Should().NotBeNull(); }
public List <ParameterMetaData> ReadFunctionMetaData(string name) { using IRfcConnection rfcConnection = GetConnection(); IRfcFunctionMetaData functionMetaData = rfcConnection.CreateFunctionMetaData(name); List <RfcParameterDescription> parameters = functionMetaData.GetParameterDescriptions(); List <FieldMetaData> GetFields(IntPtr parameterTypeDescriptionHandler) { return(functionMetaData.GetFieldDescriptions(parameterTypeDescriptionHandler) ?.Select(s => new FieldMetaData { Name = s.Name, Decimals = s.Decimals, NucLength = s.NucLength, NucOffset = s.NucOffset, UcLength = s.UcLength, UcOffset = s.UcOffset, Type = s.Type.ToString() }) ?.ToList()); } return(parameters.Select(parameter => new ParameterMetaData() { Name = parameter.Name, Description = parameter.ParameterText, DefaultValue = parameter.DefaultValue, Direction = parameter.Direction.ToString(), Decimals = parameter.Decimals, NumericLength = parameter.NucLength, Optional = parameter.Optional, Type = parameter.Type.ToString(), UcLength = parameter.UcLength, Fields = GetFields(parameter.TypeDescHandle) }) .ToList()); }