I just tried this again and it worked for Read Only and then I managed
to get it working in my production code. I think the problem may have
been not calling .Repeat.Any()

On Oct 9, 9:03 am, Ryan Vice <[EMAIL PROTECTED]> wrote:
> I got it to work with the much simpler test shown below which uses a
> read write bool property. I can't get it to work yet for a ready only
> bool property which is the problem that I have to solve in my
> production code from my original post. Please advise on how to get
> this to work.
>
> --------------------------------------------
> Working simplified test that uses a ready write property
> ---------------------------------------------
>
>       [Test]
>       public void Test()
>       {
>          ITest mockTest;
>          using (_mockRepository.Record())
>          {
>             mockTest = _mockRepository.DynamicMock<ITest>();
>             Expect.Call(mockTest.Test).IgnoreArguments()
>                .Do(new
> BoolPropertyDelegate(GetSourceGroupEnabled)).Repeat.Any();
>          }
>
>          using (_mockRepository.Playback())
>          {
>             bool res = mockTest.Test;
>             _sourceGroupEnabled = true;
>             res = mockTest.Test;
>          }
>       }
>
>    public interface ITest
>    {
>       bool Test { get; set;}
>    }
>
> On Oct 9, 8:27 am, Ryan Vice <[EMAIL PROTECTED]> wrote:
>
>
>
> > I'm trying to have a mocked boolean property return different values
> > at different times during my test and I was told in this thread:
>
> >http://groups.google.com/group/RhinoMocks/browse_thread/thread/9367c1...
>
> > to use the Do() function to achieve this. I reviewed the documentation
> > and I can't get it to work. I've put my code below.
>
> > -----------------------------------------------------------------
> > Code
> > -----------------------------------------------------------------
>
> >    #region UnableToShoot
>
> >    /// <summary>
> >    /// Class for testing DynamiteShooterStateMachine UnableToShoot
> > transitions
> >    /// </summary>
> >    [TestFixture]
> >    public class UnableToShoot : DynamiteShooterStateMachineTestsBase
> >    {
> >       bool _sourceGroupEnabled;
> >       delegate bool BoolPropertyDelegate();
>
> >       [Test]
> >       public void
> > SourceGroupEnabledWithDecoder_ShooterEnabled_UnableToShoot()
> >       {
> >          _sourceGroupEnabled = false;
>
> >          using (_mockRepository.Record())
> >          {
> >             _sourceGroup =
> > _mockRepository.DynamicMock<ISourceGroup>();
> >             _sourcePoint = null;  // Type is ISourcePoint
> >             _dynamiteShooterSm =
>
> > _mockRepository.PartialMock<DynamiteShooterStateMachineTestHarness>
> >                                  (_sourceGroup, _sourcePoint);  //
> > This creates a mock DynamiteShooterStateMachine that returns the
> > source group mock
>
> > SetupResult.For(_sourceGroup.Name).Return("TestingGroup");
> >             Expect.Call(_sourceGroup.Enabled).IgnoreArguments()
> >                .Do(new
> > BoolPropertyDelegate(GetSourceGroupEnabled));  //
> > _sourceGroup.Enabled
> > is a bool property
> >             SetupResult.For(_sourceGroup.EnabledWithDecoders)
> >                .Return(false);
> >          }
>
> >          using (_mockRepository.Playback())
> >          {
> >             _dynamiteShooterSm.Init();
>
> > AssertThatCurrentStateIs(_dynamiteShooterSm.qUnableToShoot);
> >             _sourceGroupEnabled = true;
> >             DynamiteShooterStateMachineEvent shooterEnabled
> >                = new DynamiteShooterStateMachineEvent
> >                (DynamiteShooterStateMachineSignal.ShooterEnabled,
> > _sourceGroup);
> >             _dynamiteShooterSm.Dispatch(shooterEnabled);
>
> > AssertThatCurrentStateIs(_dynamiteShooterSm.qAbleToShoot);
> >          }
> >       }
>
> >       protected bool GetSourceGroupEnabled()
> >       {
> >          return _sourceGroupEnabled;
> >       }
>
> >    }
>
> > -----------------------------------------------------------------
> > ISourceGroup
> > -----------------------------------------------------------------
>
> >    /// <summary>
> >    /// Defines the minimum set of properties/methods/events to be
> > implemented by a source group (ie, fleet, etc).
> >    /// </summary>
> >    public interface ISourceGroup : IParameters
> >    {
> >       /// <summary>
> >       /// If this source group is a vibrator fleet, this will be the
> > logical number for this fleet (NOT the database ID).  For any other
> > source type, this will be -1.
> >       /// </summary>
> >       sbyte FleetNumber { get; }
>
> >       /// <summary>
> >       /// Indicates whether or not this SourceGroup is ready to shoot
> >       /// </summary>
> >       /// TODO: Ryan - should this be renamed to ReadyToShoot?
> >       bool Enabled { get; }
>
> >       /// <summary>
> >       /// Indicates that Source Group is both enabled and has a source
> > unit (ShotPro decoder for dynamite)
> >       /// assigned to it
> >       /// </summary>
> >       bool EnabledWithDecoders { get; }
>
> >       /// <summary>
> >       /// Indicates that this fleet is not a real fleet, but an
> > abstraction that means "any fleet."
> >       /// It is used when source point can be shot by any fleet. This
> > source point is associated
> >       /// with "any armed" fleet instead of concrete fleet
> >       /// </summary>
> >       bool AnyArmed { get; }
>
> >       ///// <summary>
> >       ///// Returns a bit array of decoder numbers which have been
> > associated with this source group.  For dynamite crews, this will only
> >       ///// contain 1 number.
> >       ///// </summary>
> >       //uint DecoderNumbersAsBitArray { get; }
>
> >       /// <summary>
> >       /// The type of technology used by this source group to generate
> > a seismic source.
> >       /// </summary>
> >       SourceType SourceType { get; }
>
> >       /// <summary>
> >       /// Returns a dictionary of ISourceControllers which are
> > assigned to this source group.
> >       /// </summary>
> >       Dictionary<int, ISourceController> SourceControllers { get; }
> >    }- 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to