public CoreWCF.Channels.Message Untyped_MethodReturns(CoreWCF.Channels.Message msgIn)
        {
            MessageVersion mv = MessageVersion.Soap11;

            if (null != msgIn)
            {
                string faultString = GetTestStrFromMsg(msgIn);
                switch (faultString)
                {
                case VarSomeFault:
                    return(CoreWCF.Channels.Message.CreateMessage(mv, CoreWCF.Channels.MessageFault.CreateFault(new FaultCode("Sender"), new FaultReason("Unspecified ServiceModel Fault"), (object)new ServiceContract.SomeFault(123456789, "SomeFault"),
                                                                                                                new System.Runtime.Serialization.DataContractSerializer(typeof(ServiceContract.SomeFault)), "", ""), "http://tempuri.org/ITestDataContractFault/Untyped_MethodReturnsSomeFaultFault"));

                case VarOuterFault:
                    ServiceContract.SomeFault  sf = new ServiceContract.SomeFault(123456789, "SomeFault as innerfault");
                    ServiceContract.OuterFault of = new ServiceContract.OuterFault();
                    of.InnerFault = sf;
                    return(CoreWCF.Channels.Message.CreateMessage(mv, CoreWCF.Channels.MessageFault.CreateFault(new FaultCode("Sender"), new FaultReason("Unspecified ServiceModel Fault"), (object)of,
                                                                                                                new System.Runtime.Serialization.DataContractSerializer(typeof(ServiceContract.OuterFault)), "", ""), "http://tempuri.org/ITestDataContractFault/Untyped_MethodReturnsOuterFaultFault"));

                case VarComplexFault:
                    ServiceContract.ComplexFault cf = GetComplexFault();
                    return(CoreWCF.Channels.Message.CreateMessage(mv, CoreWCF.Channels.MessageFault.CreateFault(new FaultCode("Sender"), new FaultReason("Unspecified ServiceModel Fault"), (object)cf,
                                                                                                                new System.Runtime.Serialization.DataContractSerializer(typeof(ServiceContract.ComplexFault)), "", ""), "http://tempuri.org/ITestDataContractFault/Untyped_MethodReturnsComplexFaultFault"));

                default:
                    throw new ApplicationException("Unknown value of FaultString specified: " + faultString);
                }
            }

            return(CoreWCF.Channels.Message.CreateMessage(mv, CoreWCF.Channels.MessageFault.CreateFault(new FaultCode("Sender"), new FaultReason("Unspecified ServiceModel Fault"), "unspecified",
                                                                                                        new System.Runtime.Serialization.DataContractSerializer(typeof(string)), "", ""), "http://www.w3.org/2005/08/addressing/fault"));
        }
Esempio n. 2
0
        private ServiceContract.ComplexFault GetComplexFault()
        {
            int    errorInt    = 50;
            string errorString = "This is a test error string for fault tests.";

            ServiceContract.SomeFault errorSomeFault = new ServiceContract.SomeFault(123456789, "SomeFault in complexfault");

            int[] errorIntArray = new int[]
            {
                int.MaxValue,
                int.MinValue,
                0,
                1,
                -1,
                50,
                -50
            };

            string[] errorStringArray = new string[]
            {
                string.Empty,
                null,
                "String Value"
            };

            byte[] errorByteArray = new byte[128];
            for (int i = 0; i < errorByteArray.Length; i++)
            {
                errorByteArray[i] = (byte)i;
            }

            ServiceContract.SomeFault[] errorSomeFaultArray = new ServiceContract.SomeFault[]
            {
                errorSomeFault,
                null,
                new ServiceContract.SomeFault(234, "Second somefault in complexfault")
            };

            ServiceContract.ComplexFault cf = new ServiceContract.ComplexFault
            {
                ErrorInt         = errorInt,
                ErrorString      = errorString,
                ErrorByteArray   = errorByteArray,
                SomeFault        = errorSomeFault,
                ErrorIntArray    = errorIntArray,
                ErrorStringArray = errorStringArray,
                SomeFaultArray   = errorSomeFaultArray
            };

            return(cf);
        }
        private void ThrowTestFault(string faultType)
        {
            //this.tenv.ExecutionEngine.Results.Write("Throwing Fault'[{0}]", faultToThrow);
            switch (faultType.ToLower())
            {
            case VarSomeFault:
                throw new FaultException <ServiceContract.SomeFault>(new ServiceContract.SomeFault(123456789, "SomeFault"));

            case VarOuterFault:
                ServiceContract.SomeFault  sf = new ServiceContract.SomeFault(123456789, "SomeFault as innerfault");
                ServiceContract.OuterFault of = new ServiceContract.OuterFault
                {
                    InnerFault = sf
                };
                throw new FaultException <ServiceContract.OuterFault>(of);

            case VarComplexFault:
                ServiceContract.ComplexFault cf = GetComplexFault();
                throw new FaultException <ServiceContract.ComplexFault>(cf);

            default:
                throw new ApplicationException("Unknown value of FaultString specified: " + faultType);
            }
        }