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/9367c1cee412b651 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; } } --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
