예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
파일: Executor.cs 프로젝트: mind0n/hive
		public static ActionExecutor GetExecutor(WcfAction action)
		{
			if (action != null)
			{
				return GetExecutor(action.Name);
			}
			return null;
		}
예제 #5
0
파일: Executor.cs 프로젝트: mind0n/hive
		public static void ExecuteAction(ExecuteResultSet rlt, WcfAction action)
		{
			ActionExecutor exe = GetExecutor(action);
			if (exe != null)
			{
				rlt.Add(exe.Execute(action));
			}
		}
예제 #6
0
        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]);
        }
예제 #7
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());
        }
예제 #8
0
파일: Executor.cs 프로젝트: mind0n/hive
		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;
		}