public void FetchGivingSummaryTest(decimal contribution, string count, string comment, string total, string contribCount) { var username = RandomString(); var password = RandomString(); var user = CreateUser(username, password); var requestManager = FakeRequestManager.Create(); var membershipProvider = new MockCMSMembershipProvider { ValidUser = true }; var roleProvider = new MockCMSRoleProvider(); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); requestManager.CurrentHttpContext.Request.Headers["Authorization"] = BasicAuthenticationString(username, password); var year = DateTime.Now.Year; if (contribution > 0) { var c = new Contribution() { PeopleId = user.PeopleId, ContributionAmount = contribution, ContributionDate = new DateTime(year, 7, 2), ContributionStatusId = ContributionStatusCode.Recorded, ContributionTypeId = ContributionTypeCode.Online, CreatedDate = DateTime.Now, FundId = 1 }; db.Contributions.InsertOnSubmit(c); db.SubmitChanges(); } var controller = new MobileAPIv2Controller(requestManager); var message = new MobileMessage { argInt = 0 }; var data = message.ToString(); var result = controller.FetchGivingSummary(data) as MobileMessage; result.ShouldNotBeNull(); result.count.ShouldBe(1); result.error.ShouldBe(0); var summary = JsonConvert.DeserializeObject <MobileGivingSummary>(result.data); summary.Count.ShouldBe(1); var current = summary[$"{year}"]; current.ShouldNotBeNull(); current.title.ShouldBe($"{year}"); current.comment.ShouldBe(comment); current.count.ShouldBe(count); current.loaded.ShouldBe(1); current.total.ShouldBe(total); current.summary[0].title.ShouldBe("Contributions"); current.summary[0].comment.ShouldBe(comment); current.summary[0].count.ShouldBe(contribCount); current.summary[0].showAsPledge.ShouldBe(0); }
public void FetchGivingSummaryTest(decimal contribution, string count, string comment, string total, string prevTotal, string contribCount, int yearCount) { var username = RandomString(); var password = RandomString(); var user = CreateUser(username, password); var requestManager = FakeRequestManager.Create(); var membershipProvider = new MockCMSMembershipProvider { ValidUser = true }; var roleProvider = new MockCMSRoleProvider(); CMSMembershipProvider.SetCurrentProvider(membershipProvider); CMSRoleProvider.SetCurrentProvider(roleProvider); requestManager.CurrentHttpContext.Request.Headers["Authorization"] = BasicAuthenticationString(username, password); var Now = DateTime.Now; var year = Now.Year; var fund1Name = db.ContributionFunds.Where(c => c.FundId == 1).Select(c => c.FundName).Single(); if (contribution > 0) { GenerateContribution(contribution, user, Now); GenerateContribution(contribution * 4m, user, Now.AddYears(-1)); } var controller = new MobileAPIv2Controller(requestManager); var message = new MobileMessage { argInt = 0 }; var data = message.ToString(); var result = controller.FetchGivingSummary(data) as MobileMessage; result.ShouldNotBeNull(); result.count.ShouldBe(1); result.error.ShouldBe(0); var summary = JsonConvert.DeserializeObject <MobileGivingSummary>(result.data); summary.Count.ShouldBe(yearCount); var current = summary[$"{year}"]; current.ShouldNotBeNull(); current.title.ShouldBe($"{year}"); current.comment.ShouldBe(comment); current.count.ShouldBe(count); current.loaded.ShouldBe(1); current.total.ShouldBe(total); current.summary[0].title.ShouldBe("Contributions"); current.summary[0].comment.ShouldBe(comment); current.summary[0].count.ShouldBe(contribCount); current.summary[0].showAsPledge.ShouldBe(0); if (contribution > 0) { current.summary[0].funds[0].name.ShouldBe(fund1Name); current.summary[0].funds[0].given.ShouldBe(total); } message = new MobileMessage { argInt = Now.Year - 1 }; data = message.ToString(); result = controller.FetchGivingSummary(data) as MobileMessage; result.ShouldNotBeNull(); result.count.ShouldBe(1); result.error.ShouldBe(0); summary = JsonConvert.DeserializeObject <MobileGivingSummary>(result.data); summary.Count.ShouldBe(yearCount); if (contribution > 0) { var previous = summary[$"{year - 1}"]; previous.ShouldNotBeNull(); previous.title.ShouldBe($"{year - 1}"); previous.comment.ShouldBe(comment); previous.count.ShouldBe(count); previous.loaded.ShouldBe(1); previous.total.ShouldBe(prevTotal); previous.summary[0].title.ShouldBe("Contributions"); previous.summary[0].comment.ShouldBe(comment); previous.summary[0].count.ShouldBe(contribCount); previous.summary[0].showAsPledge.ShouldBe(0); previous.summary[0].funds[0].name.ShouldBe(fund1Name); previous.summary[0].funds[0].given.ShouldBe(prevTotal); } }