public void CloseOutputs() { MethodOutput.Close(); ClassOutput.Close(); EnumOutput.Close(); FieldOutput.Close(); }
public void MethodOutput_GivenIsNew_ShouldPassThrough() { //---------------Set up test pack------------------- var dev2Definition = new MethodOutput(); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- //---------------Test Result ----------------------- Assert.IsNotNull(dev2Definition); }
public void MethodOutput_GivenIsNewParameters_ShouldPassThrough() { //---------------Set up test pack------------------- var dev2Definition = new MethodOutput("a", "b", "c", false, "", false, "", false, "", false); //---------------Assert Precondition---------------- Assert.IsNotNull(dev2Definition); //---------------Execute Test ---------------------- //---------------Test Result ----------------------- Assert.AreEqual("a", dev2Definition.Name); Assert.AreEqual("b", dev2Definition.MapsTo); Assert.AreEqual("c", dev2Definition.Value); }
public override bool VisitCompilationUnit([NotNull] JavaParser.CompilationUnitContext context) { Methods = new List <string>(); ClassesInterfaces = new List <string>(); Enums = new List <string>(); Fields = new List <string>(); InField = false; base.VisitCompilationUnit(context); if (Methods.Count > 0) { MethodOutput.WriteLine("***"); MethodOutput.WriteLine(FileName); Methods.ForEach(line => MethodOutput.WriteLine(line)); } if (ClassesInterfaces.Count > 0) { ClassOutput.WriteLine("***"); ClassOutput.WriteLine(FileName); ClassesInterfaces.ForEach(line => ClassOutput.WriteLine(line)); } if (Enums.Count > 0) { EnumOutput.WriteLine("***"); EnumOutput.WriteLine(FileName); Enums.ForEach(line => EnumOutput.WriteLine(line)); } if (Fields.Count > 0) { FieldOutput.WriteLine("***"); FieldOutput.WriteLine(FileName); Fields.ForEach(line => FieldOutput.WriteLine(line)); } return(true); }
private static MethodOutput CallMethodInternal(MethodInput inputs) { //TODO: LOG var output = new MethodOutput(); if (inputs == null) { output.Error = "Inputs not found."; return(output); } if (ServiceConfigs.TokenIgnoreList.Contains($"{inputs.ServiceName}.{inputs.MethodName}") == false && ApiHelper.ValidateToken() == false) { output.Error = "Token is not valid."; return(output); } var service = Type.GetType($"{ServiceConfigs.Namespace}.{inputs.ServiceName}, {ServiceConfigs.AssemblyName}"); if (service == null) { output.Error = "Service not found."; return(output); } var method = service.GetMethod(inputs.MethodName); if (method == null) { output.Error = "Method not found."; return(output); } object obj; try { var ctor = service.GetConstructor(Type.EmptyTypes); var methodName = service.Name + "Ctor"; var dm = new DynamicMethod(methodName, service, Type.EmptyTypes, typeof(Activator), true); var lgen = dm.GetILGenerator(); lgen.Emit(OpCodes.Newobj, ctor ?? throw new InvalidOperationException()); lgen.Emit(OpCodes.Ret); obj = ((Func <object>)dm.CreateDelegate(typeof(Func <object>)))(); } catch (Exception e) { output.Error = $"Ctor not found. Error: {e.Message}"; return(output); } try { var parameters = method.GetParameters(); if (parameters.Length != inputs.Parameters.Length) { output.Error = "Parameters not matched"; return(output); } for (var i = 0; i < parameters.Length; i++) { var methodParamType = parameters[i].ParameterType; if (inputs.Parameters[i] == null) { continue; } var inputParamType = inputs.Parameters[i].GetType(); if (inputParamType == typeof(JObject)) { inputs.Parameters[i] = ((JObject)inputs.Parameters[i]).ToObject(methodParamType); } else if (inputParamType == typeof(JArray)) { inputs.Parameters[i] = ((JArray)inputs.Parameters[i]).ToObject(methodParamType); } else if (inputParamType != methodParamType) { var paramType = Nullable.GetUnderlyingType(methodParamType) ?? methodParamType; inputs.Parameters[i] = Convert.ChangeType(inputs.Parameters[i], paramType); } } } catch (Exception e) { output.Error = $"Parameters cast Failed. Error: {e.Message}"; return(output); } try { output.Result = method.Invoke(obj, inputs.Parameters); } catch (Exception e) { output.Error = e.InnerException == null ? $"Method invoke failed. Error: {e.Message}" : e.InnerException.Message; } return(output); }