public IList <IWcfAction> GetServiceActions(IWcfServerSource source) { var methods = GetServiceMethods(source.EndpointUrl); var actionList = new List <IWcfAction>(); foreach (var method in methods) { var action = new WcfAction { FullName = method.Key.Name, Method = method.Key.Name, Inputs = new List <IServiceInput>() }; foreach (var paramater in method.Value) { action.Inputs.Add(new ServiceInput { Name = paramater.Name, TypeName = paramater.ParameterType.FullName }); } actionList.Add(action); } return(actionList); }
public void DsfWcfEndPointActivity_Equals_InstancesWithSameParams_NotSame_Expect_False() { //-----------------------Arrange--------------------- var mockOutputDescription = new Mock <IOutputDescription>(); var wcfSource = new WcfSource(new FakeWcfProxyService()) { Name = "WcfSource", EndpointUrl = "TestUrl" }; var wcfAction = new WcfAction() { FullName = "MethodName", Method = "MethodName", }; var dsfWcfEndPointActivity = new DsfWcfEndPointActivity() { Method = wcfAction, OutputDescription = mockOutputDescription.Object, Source = wcfSource, }; //-----------------------Act------------------------- var equals = dsfWcfEndPointActivity.Equals(new DsfWcfEndPointActivity() { Method = wcfAction, OutputDescription = mockOutputDescription.Object, Source = wcfSource, }); //-----------------------Assert---------------------- Assert.IsFalse(equals); }
public void DsfWcfEndPointActivity_GetHashCode_MethodOutputDescriptionSource_NotNull_Expect_IsNotNull() { //-----------------------Arrange--------------------- var mockOutputDescription = new Mock <IOutputDescription>(); var wcfSource = new WcfSource(new FakeWcfProxyService()) { Name = "WcfSource", EndpointUrl = "TestUrl" }; var wcfAction = new WcfAction() { FullName = "MethodName", Method = "MethodName", }; var dsfWcfEndPointActivity = new DsfWcfEndPointActivity() { Method = wcfAction, OutputDescription = mockOutputDescription.Object, Source = wcfSource, }; //-----------------------Act------------------------- var hashCode = dsfWcfEndPointActivity.GetHashCode(); //-----------------------Assert---------------------- Assert.IsNotNull(hashCode); }
public static ActionExecutor GetExecutor(WcfAction action) { if (action != null) { return GetExecutor(action.Name); } return null; }
public static void ExecuteAction(ExecuteResultSet rlt, WcfAction action) { ActionExecutor exe = GetExecutor(action); if (exe != null) { rlt.Add(exe.Execute(action)); } }
public void DsfWcfEndPointActivity_ExecutionImpl_Catch_GetResource_IsNull_Expect_Error() { //-----------------------Arrange--------------------- var mockEsbChannel = new Mock <IEsbChannel>(); var mockResourceCatalog = new Mock <IResourceCatalog>(); var mockDSFDataObject = new Mock <IDSFDataObject>(); var mockOutputDescription = new Mock <IOutputDescription>(); var mockPath = new Mock <IPath>(); var wcfSource = new WcfSource(new FakeWcfProxyService()) { Name = "WcfSource", EndpointUrl = "TestUrl" }; var wcfAction = new WcfAction() { FullName = "MethodName", Method = "MethodName", }; Thread.CurrentPrincipal = null; var identity = new GenericIdentity("User"); var currentPrincipal = new GenericPrincipal(identity, new[] { "Role1", "Roll2" }); Thread.CurrentPrincipal = currentPrincipal; Common.Utilities.ServerUser = currentPrincipal; var dataListID = Guid.NewGuid(); var environment = new ExecutionEnvironment(); var outputs = new List <IServiceOutputMapping> { new ServiceOutputMapping() }; var dsfWcfEndPointActivity = new TestDsfWcfEndPointActivity() { ResourceCatalog = mockResourceCatalog.Object, Method = wcfAction, Inputs = new List <IServiceInput>() { new ServiceInput("[[a]]", "asa") }, Outputs = outputs, OutputDescription = mockOutputDescription.Object, Source = wcfSource, }; mockOutputDescription.Setup(o => o.Format).Returns(OutputFormats.ShapedXML).Verifiable(); mockDSFDataObject.Setup(o => o.Environment).Returns(environment).Verifiable(); //-----------------------Act------------------------- dsfWcfEndPointActivity.TestExecutionImpl(mockEsbChannel.Object, mockDSFDataObject.Object, "TestInput", "TestOutput", out ErrorResultTO errorResult, 0); //-----------------------Assert---------------------- mockDSFDataObject.VerifyAll(); mockOutputDescription.VerifyAll(); mockResourceCatalog.Verify(o => o.GetResource <WcfSource>(It.IsAny <Guid>(), It.IsAny <Guid>())); Assert.AreEqual(1, errorResult.FetchErrors().Count); Assert.AreEqual("Object reference not set to an instance of an object.", errorResult.FetchErrors()[0]); }
public void WcfAction_Validate_Default() { const string expectedFullName = "FullName"; const string expectedMethod = "Method"; var mockServiceInput = new Mock <IServiceInput>(); var expectedInputs = new List <IServiceInput> { mockServiceInput.Object }; var expectedReturnType = typeof(string); var expectedVariables = new List <INameValue> { new NameValue("name", "") }; var wcfAction = new WcfAction { FullName = expectedFullName, Method = expectedMethod, Inputs = expectedInputs, ReturnType = expectedReturnType, Variables = expectedVariables }; Assert.AreEqual(expectedFullName, wcfAction.FullName); Assert.AreEqual(expectedMethod, wcfAction.Method); Assert.AreEqual(expectedInputs, wcfAction.Inputs); Assert.AreEqual(1, wcfAction.Inputs.Count); Assert.AreEqual(expectedReturnType, wcfAction.ReturnType); Assert.AreEqual(expectedVariables, wcfAction.Variables); Assert.AreEqual(1, wcfAction.Variables.Count); Assert.AreEqual(expectedFullName + expectedMethod, wcfAction.GetHashCodeBySource()); }
public virtual ExecuteResult Execute(WcfAction action) { ExecuteResult result = new ExecuteResult(); if (action != null && execmappings.ContainsKey(action.Name) && methodmappings.ContainsKey(action.Name)) { MethodInfo mi = methodmappings[action.Name]; ActionExecutor instance = execmappings[action.Name]; Logger.Log("Action {0} begin -------------------------\r\nParameter: \r\n{1}", action.Name, action.Parameters.ToXml()); try { result.ActionName = action.Name; if (mi.ReturnType != null) { result.Result = mi.Invoke(instance, action.Parameters); } else { result.Result = null; } } catch (Exception e) { Logger.Log(e.Message); } Logger.Log("Action {0} end -------------------------\r\n", action.Name); } return result; }