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
-~----------~----~----~----~------~----~------~--~---