var argTree = _crosschargeRepository.GetArgumentsForCallsMadeOn(r => r.SaveOrUpdate(null));
var entity = (LegalEntity) argTree[0][0]; I might have messed up the format of the first call, but it returns a jagged array. argTree[0] is an object[] of the arguments passed on the first call to the method argTree[1] is an object[] of the arguments passed on the second call to the method etc... --- Patrick Steele http://weblogs.asp.net/psteele On Fri, Sep 9, 2011 at 9:35 AM, VG <[email protected]> wrote: > Hi, > > I am having a problem verifying the entity object that has been passed > to IRepository's saveorupdate method. > Here is the code snippet I am working upon : > > This is my Action in controller , it contains more code but I am > putting only the concerned code : > > [AcceptVerbs(HttpVerbs.Post)] > [Transaction] > public ActionResult EditContentFieldAnswer(int > symposiaEventId, int contentId, int contentFieldAnswerGroupId, > EventRegistrationPageInfo pageInfo) { > if (!string.IsNullOrEmpty(pageInfo.IsCrossCharge)) { //Create the > crosscharge record for this user. > try { > var legalEntity = > pageInfo.LegalEntityToCrossCharge; > legalEntity = string.IsNullOrEmpty(legalEntity) ? > "000" : legalEntity; //Default to 000 > var costCenterToCrossCredit = > pageInfo.CostCenterToCredit; > var crosscharge = > _crosschargeQueries.GetCrosschargeForUser(symposiaEventId, > > _sessionUserService.CurrentUser. > > UserId); > if (crosscharge != null) { // This could be null > if the user was registered for the event then the presenter turned > crosscharging on > crosscharge.LegalEntityToCredit = legalEntity; > crosscharge.CostCenterToCredit = > costCenterToCrossCredit; > using > (_crosschargeRepository.DbContext.BeginTransaction()) { > > _crosschargeRepository.SaveOrUpdate(crosscharge); > > _crosschargeRepository.DbContext.CommitTransaction(); > } > } > > } catch { > message = "A problem was encountered preventing > the crosscharge from being created."; > > _crosschargeRepository.DbContext.RollbackTransaction(); > } > } > } > > > This is my mock object : > > public static ICrosschargeQueries CreateMockCrossChargeQueries() > { > var mockedRepository = > MockRepository.GenerateMock<ICrosschargeQueries>(); > mockedRepository.Expect(mr => mr.GetCrosschargeForUser(1, > 1)).IgnoreArguments().Return(new Crosscharge()); > return mockedRepository; > } > > This is my Unit Test : > > [Test] > public void > CanEditContentFieldAnswerWhenLegalEntityToCrossChargeIsNull() > { > var pageInfo = > CreateTransientEventRegistrationPageInfoWithLegalEntityToCrossChargeSetNull(); > var result = _controller.EditContentFieldAnswer(1, 1, 0, > pageInfo).AssertViewRendered(); > > Assert.IsNotNull(result); > > Assert.IsInstanceOf<ContentFieldAnswerFormViewModel>(result.ViewData.Model); > _crosschargeRepository.AssertWasCalled(x => > x.SaveOrUpdate(null),y=>y.IgnoreArguments()); > } > > > This is my Transient Object for "EventRegistrationPageInfo" > > public static EventRegistrationPageInfo > CreateTransientEventRegistrationPageInfoWithLegalEntityToCrossChargeSetNull() > { > var eventRegistrationPageInfo = new > EventRegistrationPageInfo > { > CrossChargeId = "TestCrossChargeId", > IsCrossCharge = "true", > LegalEntityToCrossCharge = null, > SymposiaEventRegistrationId = "TestId", > IsRegistration = "true", > CostCenterToCredit = "TestCostCenterToCredit" > }; > return eventRegistrationPageInfo; > } > > If you look at the action code , just under the try block code I have > this line of code > legalEntity = string.IsNullOrEmpty(legalEntity) ? "000" : > legalEntity; //Default to 000 > > Which checks whether LegalEntityToCrossCharge property is null or > not, if its null the legalEntity property of CrossCharge is updated > "000" otherwise its assigned the value that was there in > EventRegistrationPageInfo object's LegalEntityToCrossCharge property. > > My concern is While unit testing I can verify whether saveorupdate was > called or not using this line of code > _crosschargeRepository.AssertWasCalled(x => > x.SaveOrUpdate(null),y=>y.IgnoreArguments()); > but how do I get the values of crosscharge entity that has been > saved .I had passed LegalEntityToCrossCharge as null which allows > legalEntity property to be updated to "000", I need to verify this in > my unit test. > How can I do this? > > -- > 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.
