So is the only difference between what Patrick has on StackOverflow and what you need is randomness?
If that's the case just assign a random number where Patrick is assigning "1". Failing that - I'm not sure I understand the difference. On Thu, Dec 23, 2010 at 2:46 AM, Lieven Cardoen <[email protected]>wrote: > Maybe a small example can clarify what I need: > > Say there's a class with a method Save: > > public void Create(Entity entity) > { > //entity is saved to database > //entity.id is updated with the created id in database > } > > So, before the create, entity.id is -1, after the create it is > 0. > > Now, there's a service that uses this Create. Code contracts on this > service method say that before it is called, the entity must have an id > equal to -1, after it is called it must have an id > 0 (preconditions and > postconditions). > > So, what I need is something like this: > var entity = new Entity(); //id == -1 > Expect.Call(() => _instance.Create(entity); > //Now the entity.id should be a random number > 0. This is what I need, to > have Rhino Mocks update the id of entity to a given integer. Is this > possible? > > Thx, Lieven Cardoen > > On Wed, Dec 22, 2010 at 11:04 PM, Lieven Cardoen <[email protected] > > wrote: > >> No, it isn't, but the answer on stackoverflow you gave isn't what I'm >> searching for. >> >> >> On Wed, Dec 22, 2010 at 8:43 PM, Patrick Steele <[email protected] >> > wrote: >> >>> Is this different than the StackOverflow question I answered? >>> >>> >>> http://stackoverflow.com/questions/4387299/set-a-property-of-an-object-in-a-expect-call >>> >>> --- >>> Patrick Steele >>> http://weblogs.asp.net/psteele >>> >>> >>> >>> On Wed, Dec 8, 2010 at 5:25 AM, LievenCardoen <[email protected]> >>> wrote: >>> > I have next code: >>> > >>> > var schedule = ScheduleUtil.CreateScheduleDto(user, user); >>> > Expect.Call(() => _scheduleRepository.Save(schedule)); >>> > >>> > Now, what I need is that after the Save, the id of the schedule should >>> > be changed to a value bigger than 0. If it's created, it is -1. >>> > >>> > At the end of the test, _scheduleService.Create(schedule, channelId); >>> > is called. A precondition of code contracts is that the id of the >>> > schedule should be -1 at the beginning of the Save. A postcondition is >>> > that the id of the schedule should be bigger than 0 at the end of the >>> > Save. >>> > >>> > Is there a way to do this? To have not an Expect but to make a change >>> > in a certain object? >>> > >>> > Hard to explain. >>> > >>> > Full code: >>> > >>> > [Test] >>> > public void TestCreate() >>> > { >>> > var channelId = RandomizeUtil.Next(10000); >>> > var user = UserUtil.CreateRandomUserDto(); >>> > var schedule = ScheduleUtil.CreateScheduleDto(user, user); >>> > Expect.Call(() => _scheduleRepository.Save(schedule)); >>> > foreach (var userDto in schedule.users) >>> > { >>> > Expect.Call(() => _scheduleRepository.AddUser(schedule.id, >>> > userDto.id)); >>> > } >>> > foreach (var groupDto in schedule.groups) >>> > { >>> > Expect.Call(() => _scheduleRepository.AddGroup(schedule.id, >>> > groupDto.id)); >>> > } >>> > >>> > >>> Expect.Call(_managementConfigurator.RetrieveChannelManager(channelId)).Return(_channelManager); >>> > Expect.Call(() => _channelManager.HandleNewSchedule(schedule.id)); >>> > _mocks.ReplayAll(); >>> > _scheduleService.Create(schedule, channelId); >>> > schedule.id = 1; //Otherwise Contract Postcondition >>> > (scheduleDto.id > 0) fails >>> > _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%[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]<rhinomocks%[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]<rhinomocks%[email protected]> > . > 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 -- 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.
