I don't see that in the tests...I will gladly write the test for you if you 
give me a scenario...

On Sep 9, 2010, at 10:01 AM, Edward <[email protected]> wrote:

> The error you get means that another proccess is running on 9090 port
> or that you do not have administrator rights.
> 
> The purpose is to test a component that uses WCF services. The
> component is an abstract class so i want to mock the abstract methods
> as well as the WCF services that it uses.
> 
> On Sep 8, 10:45 pm, Tim Barcz <[email protected]> wrote:
>> Can you explain the purpose of the test?  I see that in the test setup
>> (Setup()) you're calling .Open() after setting an endpoint 
>> tohttp://localhost:9090
>> 
>> This seems odd to me, but I don't know exactly what you're trying to test in
>> order to be able to give useful feedback.
>> 
>> If you give me more info I can dig in.
>> 
>> Tim
>> 
>> 
>> 
>> 
>> 
>> On Wed, Sep 8, 2010 at 2:36 PM, Tim Barcz <[email protected]> wrote:
>>> What error do you get, when I copy/paste the code above I get (is this what
>>> you're seeing):
>> 
>>> Test 'Rhino.Mocks.Tests.FieldsProblem.Tester.Test' failed:
>>> System.ServiceModel.AddressAccessDeniedException : HTTP could not register
>>> URL http://+:9090/. Your process does not have access rights to this
>>> namespace (seehttp://go.microsoft.com/fwlink/?LinkId=70353for details).
>>>   ----> System.Net.HttpListenerException : Access is denied
>>> TearDown : System.ServiceModel.CommunicationObjectFaultedException : The
>>> communication object, System.ServiceModel.ServiceHost, cannot be used for
>>> communication because it is in the Faulted state.
>>>  at System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
>>> at
>>> System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener
>>> channelListener)
>>>  at
>>> System.ServiceModel.Channels.TransportManagerContainer.Open(SelectTransport­ManagersCallback
>>> selectTransportManagerCallback)
>>> at System.ServiceModel.Channels.TransportChannelListener.OnOpen(TimeSpan
>>> timeout)
>>>  at System.ServiceModel.Channels.HttpChannelListener.OnOpen(TimeSpan
>>> timeout)
>>> at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
>>>  at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan
>>> timeout)
>>> at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
>>>  at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
>>> at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
>>>  at System.ServiceModel.Channels.CommunicationObject.Open()
>>> FieldsProblem\FieldProblem_ Edward.cs(85,0): at
>>> Rhino.Mocks.Tests.FieldsProblem.Tester.Setup()
>>>  --HttpListenerException
>>> at System.Net.HttpListener.AddAll()
>>> at System.Net.HttpListener.Start()
>>>  at System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
>>> --TearDown
>>>  at System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan
>>> timeout)
>>> at System.ServiceModel.Channels.CommunicationObject.Close()
>>>  FieldsProblem\FieldProblem_ Edward.cs(91,0): at
>>> Rhino.Mocks.Tests.FieldsProblem.Tester.TearDown()
>> 
>>> On Tue, Sep 7, 2010 at 5:16 AM, Edward <[email protected]> wrote:
>> 
>>>> Hi, i have the following problem: i want to test an abstract class
>>>> that contains a method that calls a wcf service. I mock the wcf
>>>> service and use a partial mock to mock the abstract class. The problem
>>>> is that the wcf service throws a timeout exception when i set an
>>>> expectation to the abstract class.The example below replicates the
>>>> issue.
>> 
>>>> using System;
>>>> using System.Collections.Generic;
>>>> using System.Linq;
>>>> using System.Text;
>>>> using NUnit.Framework;
>>>> using Rhino.Mocks;
>>>> using System.ServiceModel;
>>>> using Rhino.Mocks.Interfaces;
>>>> using System.ServiceModel.Channels;
>> 
>>>> namespace TestLib
>>>> {
>> 
>>>>  
>>>> //-------------------------------------------------------------------------
>>>>  ------
>> 
>>>>    [ServiceContract]
>>>>    public interface ICalculatorService
>>>>    {
>>>>        [OperationContract]
>>>>        [FaultContract(typeof(ArgumentNullException))]
>>>>        double Multiply(double x, double y);
>>>>    }
>> 
>>>>    public abstract class AbstractShape
>>>>    {
>>>>        protected internal abstract double CalculateArea();
>> 
>>>>        public double GetArea()
>>>>        {
>>>>            //Do some other stuff...
>>>>            return CalculateArea();
>>>>        }
>>>>    }
>> 
>>>>    public abstract class Circle : AbstractShape
>>>>    {
>>>>        //This method should be abstract, i made it virtual just to
>>>> see
>>>>        //that when not setting an expectation the test will pass.
>>>>        protected internal virtual double GetRadius()
>>>>        {
>>>>            return 15;
>>>>        }
>> 
>>>>        protected internal override double CalculateArea()
>>>>        {
>>>>            ICalculatorService client =
>>>> ChannelFactory<ICalculatorService>
>>>>                .CreateChannel(new BasicHttpBinding(), new
>>>> EndpointAddress("http://localhost:9090";));
>> 
>>>>            double radius = GetRadius();
>>>>            double result = client.Multiply(radius, radius);
>> 
>>>>            result = client.Multiply(Math.PI, result);
>> 
>>>>            ((IChannel)client).Close();
>> 
>>>>            return result;
>>>>        }
>>>>    }
>> 
>>>>  
>>>> //-------------------------------------------------------------------------
>>>>  ----------------------------
>> 
>>>>    [TestFixture]
>>>>    public class Tester
>>>>    {
>>>>        private MockRepository _mocks;
>>>>        private ICalculatorService _calculatorServiceMock;
>>>>        private ServiceHost _calculatorServiceHost;
>>>>        private Circle _circleMock;
>> 
>>>>        [SetUp]
>>>>        public void Setup()
>>>>        {
>> 
>>>> Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add(typeof(Serv­iceContractAttribute));
>> 
>>>> Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add(typeof(Oper­ationContractAttribute));
>> 
>>>>            _mocks = new MockRepository();
>>>>            _calculatorServiceMock =
>>>> _mocks.DynamicMock<ICalculatorService>();
>>>>            _circleMock = _mocks.PartialMock<Circle>();
>> 
>>>>            _calculatorServiceHost = new
>>>> ServiceHost(_calculatorServiceMock, new Uri[] { new Uri("http://
>>>> localhost:9090") });
>> 
>>>> _calculatorServiceHost.AddServiceEndpoint(typeof(ICalculatorService),
>>>> new BasicHttpBinding(), String.Empty);
>> 
>>>> _calculatorServiceHost.Description.Behaviors.Find<ServiceBehaviorAttribute>­().InstanceContextMode
>>>> = InstanceContextMode.Single;
>>>>            _calculatorServiceHost.Open();
>>>>        }
>> 
>>>>        [TearDown]
>>>>        public void TearDown()
>>>>        {
>>>>            _calculatorServiceHost.Close();
>>>>        }
>> 
>>>>        [Test]
>> 
>>>> [ExpectedException(typeof(FaultException<ArgumentNullException>))]
>>>>        public void Test()
>>>>        {
>>>>            using (_mocks.Record())
>>>>            {
>>>>                //If we don't set this expectation the test will pass.
>>>>                Expect.Call(_circleMock.GetRadius()).Return(17);
>> 
>>>>                Expect.Call(_calculatorServiceMock.Multiply(0,
>>>> 0)).IgnoreArguments()
>>>>                    .Throw(new
>>>> FaultException<ArgumentNullException>(new
>>>> ArgumentNullException("Forced Exception!")));
>>>>            }
>> 
>>>>            _mocks.ReplayAll();
>> 
>>>>            try
>>>>            {
>>>>                _circleMock.GetArea();
>>>>            }
>>>>            finally
>>>>            {
>>>>                _mocks.VerifyAll();
>>>>            }
>>>>        }
>>>>    }
>> 
>>>>  
>>>> //-------------------------------------------------------------------------
>>>>  --------------------------
>>>> }
>> 
>>>> --
>>>> You received this message because you are subscribed to the Google Groups
>>>> "Rhino.Mocks" group.
>>>> To post to this group, send email to [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected]<rhinomocks%2bunsubscr...@googlegrou
>>>>  ps.com>
>>>> .
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/rhinomocks?hl=en.
>> 
>>> --
>>> Tim Barcz
>>> Microsoft C# MVP
>>> Microsoft ASPInsider
>>> http://timbarcz.devlicio.us
>>> http://www.twitter.com/timbarcz
>> 
>> --
>> Tim Barcz
>> Microsoft C# MVP
>> Microsoft 
>> ASPInsiderhttp://timbarcz.devlicio.ushttp://www.twitter.com/timbarcz- Hide 
>> quoted text -
>> 
>> - Show quoted text -
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Rhino.Mocks" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/rhinomocks?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Rhino.Mocks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rhinomocks?hl=en.

Reply via email to