From 6596df9a519b67d18568cd91da217458c26be991 Mon Sep 17 00:00:00 2001 From: Paul Stack Date: Wed, 26 Oct 2011 19:26:27 +0100 Subject: [PATCH 1/2] addition of tests to start to cover the MemberController --- .../GiveCRM.Web.Tests.csproj | 163 +++++++++--------- .../controllers/MemberController.Tests.cs | 68 ++++++++ .../controllers/SetUpController.Tests.cs | 64 +++---- .../Controllers/MemberController.cs | 2 +- 4 files changed, 183 insertions(+), 114 deletions(-) create mode 100644 src/GiveCRM.Web.Tests/controllers/MemberController.Tests.cs diff --git a/src/GiveCRM.Web.Tests/GiveCRM.Web.Tests.csproj b/src/GiveCRM.Web.Tests/GiveCRM.Web.Tests.csproj index c1e682e4..9b161890 100644 --- a/src/GiveCRM.Web.Tests/GiveCRM.Web.Tests.csproj +++ b/src/GiveCRM.Web.Tests/GiveCRM.Web.Tests.csproj @@ -1,88 +1,89 @@ - - - - Debug - x86 - 8.0.30703 - 2.0 - {F67701A2-8F3E-41B0-910E-7DF0874133AD} - Library - Properties - GiveCRM.Web.Tests - GiveCRM.Web.Tests - v4.0 - - - 512 - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - x86 - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - ..\packages\MvcContrib.Mvc3.TestHelper-ci.3.0.90.0\lib\MvcContrib.TestHelper.dll - - - ..\packages\NSubstitute.1.2.1.0\lib\NET40\NSubstitute.dll - - - ..\packages\NUnit.2.5.10.11092\lib\nunit.framework.dll - - - - - - - - - - - - - - - - - - - - - - - - {EF13BB24-17A9-4A39-BB5C-9A3B36519CB1} - GiveCRM.Models - - - {4BFCD2B3-0EF2-4770-994F-D563AEFFB90B} - GiveCRM.Web - - - + + + + Debug + x86 + 8.0.30703 + 2.0 + {F67701A2-8F3E-41B0-910E-7DF0874133AD} + Library + Properties + GiveCRM.Web.Tests + GiveCRM.Web.Tests + v4.0 + + + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + ..\packages\MvcContrib.Mvc3.TestHelper-ci.3.0.90.0\lib\MvcContrib.TestHelper.dll + + + ..\packages\NSubstitute.1.2.1.0\lib\NET40\NSubstitute.dll + + + ..\packages\NUnit.2.5.10.11092\lib\nunit.framework.dll + + + + + + + + + + + + + + + + + + + + + + + + + {EF13BB24-17A9-4A39-BB5C-9A3B36519CB1} + GiveCRM.Models + + + {4BFCD2B3-0EF2-4770-994F-D563AEFFB90B} + GiveCRM.Web + + + + --> \ No newline at end of file diff --git a/src/GiveCRM.Web.Tests/controllers/MemberController.Tests.cs b/src/GiveCRM.Web.Tests/controllers/MemberController.Tests.cs new file mode 100644 index 00000000..a6a90d9f --- /dev/null +++ b/src/GiveCRM.Web.Tests/controllers/MemberController.Tests.cs @@ -0,0 +1,68 @@ +using GiveCRM.Models; +using GiveCRM.Web.Controllers; +using GiveCRM.Web.Models.Members; +using GiveCRM.Web.Services; +using MvcContrib.TestHelper; +using NSubstitute; +using NUnit.Framework; + +namespace GiveCRM.Web.Tests.controllers +{ + [TestFixture] + public class MemberControllerTests + { + private IDonationsService _donationsService; + private IMemberService _memberService; + private ICampaignService _campaignService; + + [SetUp] + public void SetUp() + { + _campaignService = Substitute.For(); + _donationsService = Substitute.For(); + _memberService = Substitute.For(); + } + + [Test] + public void Index_Action_Returns_View() + { + var controller = new MemberController(_donationsService, _memberService, _campaignService); + var result = controller.Index(); + + result.AssertViewRendered(); + } + + [Test] + public void Add_Action_Returns_View_With_ViewModel() + { + var controller = new MemberController(_donationsService, _memberService, _campaignService); + var result = controller.Add(); + + result.AssertViewRendered().WithViewData(); + } + + [Test] + public void Edit_Action_Returns_Named_View_With_ViewModel() + { + _memberService.Get(1).Returns(new Member()); + + var controller = new MemberController(_donationsService, _memberService, _campaignService); + var result = controller.Edit(1); + + Assert.That(result.AssertViewRendered().ViewName == "Add"); + result.AssertViewRendered().WithViewData(); + } + + [Test] + public void Delete_Action_Returns_RedirectToAction() + { + _memberService.Get(1).Returns(new Member()); + _memberService.Update(new Member()); + + var controller = new MemberController(_donationsService, _memberService, _campaignService); + var result = controller.Delete(1); + + result.AssertActionRedirect().ToAction("Index"); + } + } +} diff --git a/src/GiveCRM.Web.Tests/controllers/SetUpController.Tests.cs b/src/GiveCRM.Web.Tests/controllers/SetUpController.Tests.cs index 846c40ae..589e4c1c 100644 --- a/src/GiveCRM.Web.Tests/controllers/SetUpController.Tests.cs +++ b/src/GiveCRM.Web.Tests/controllers/SetUpController.Tests.cs @@ -1,44 +1,44 @@ -using System.Collections.Generic; -using GiveCRM.Models; +using System.Collections.Generic; +using GiveCRM.Models; using GiveCRM.Web.Controllers; using GiveCRM.Web.Models.Facets; -using GiveCRM.Web.Services; -using MvcContrib.TestHelper; -using NSubstitute; -using NUnit.Framework; - -namespace GiveCRM.Web.Tests.controllers -{ - [TestFixture] - public class SetUpControllerTests +using GiveCRM.Web.Services; +using MvcContrib.TestHelper; +using NSubstitute; +using NUnit.Framework; + +namespace GiveCRM.Web.Tests.controllers +{ + [TestFixture] + public class SetUpControllerTests { - private IFacetsService _facetService; - - [SetUp] + private IFacetsService _facetService; + + [SetUp] public void SetUp() { _facetService = Substitute.For(); - } - - [Test] + } + + [Test] public void Index_Action_Returns_View() { var controller = new SetupController(_facetService); var result = controller.Index(); result.AssertViewRendered(); - } - - [Test] + } + + [Test] public void AddFacet_Action_Returns_View_With_A_Facet() { var controller = new SetupController(_facetService); var result = controller.AddFacet(); result.AssertViewRendered().ForView("EditFacet").WithViewData(); - } - - [Test] + } + + [Test] public void EditFacet_Action_Returns_View_With_A_Facet() { _facetService.Get(1).Returns(new Facet()); @@ -47,9 +47,9 @@ public void EditFacet_Action_Returns_View_With_A_Facet() var result = controller.AddFacet(); result.AssertViewRendered().ForView("EditFacet").WithViewData(); - } - - [Test] + } + + [Test] public void SaveFacet_Action_With_New_Facet_Inserts_And_Redirects_To_Action() { _facetService.Insert(new Facet()); @@ -72,9 +72,9 @@ public void SaveFacet_Action_With_Exsting_Facet_Inserts_And_Redirects_To_Action( }); result.AssertActionRedirect(); - } - - [Test] + } + + [Test] public void ListFacets_Action_Returns_View_With_A_ViewModel() { _facetService.All().Returns(new List()); @@ -83,6 +83,6 @@ public void ListFacets_Action_Returns_View_With_A_ViewModel() var result = controller.ListFacets(); result.AssertViewRendered().WithViewData(); - } - } -} + } + } +} diff --git a/src/GiveCRM.Web/Controllers/MemberController.cs b/src/GiveCRM.Web/Controllers/MemberController.cs index 1486e3e5..28876b5e 100644 --- a/src/GiveCRM.Web/Controllers/MemberController.cs +++ b/src/GiveCRM.Web/Controllers/MemberController.cs @@ -24,7 +24,7 @@ public MemberController(IDonationsService donationsService, IMemberService membe public ActionResult Index() { - return View("Index"); + return View(); } public ActionResult Add() From e03665f095814744d50ed6870d9d336fe1f1bac9 Mon Sep 17 00:00:00 2001 From: Paul Stack Date: Wed, 26 Oct 2011 19:32:39 +0100 Subject: [PATCH 2/2] tests to cover the Donation and Save Donation Actions of the MembersController --- .../controllers/MemberController.Tests.cs | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/GiveCRM.Web.Tests/controllers/MemberController.Tests.cs b/src/GiveCRM.Web.Tests/controllers/MemberController.Tests.cs index a6a90d9f..e84a773d 100644 --- a/src/GiveCRM.Web.Tests/controllers/MemberController.Tests.cs +++ b/src/GiveCRM.Web.Tests/controllers/MemberController.Tests.cs @@ -1,4 +1,5 @@ -using GiveCRM.Models; +using System.Collections.Generic; +using GiveCRM.Models; using GiveCRM.Web.Controllers; using GiveCRM.Web.Models.Members; using GiveCRM.Web.Services; @@ -64,5 +65,28 @@ public void Delete_Action_Returns_RedirectToAction() result.AssertActionRedirect().ToAction("Index"); } + + [Test] + public void Donate_Action_Returns_View_With_Model() + { + _memberService.Get(1).Returns(new Member()); + _campaignService.AllOpen().Returns(new List()); + + var controller = new MemberController(_donationsService, _memberService, _campaignService); + var result = controller.Donate(1); + + result.AssertViewRendered().WithViewData(); + } + + [Test] + public void QuickDonation_Action_RedirectsToAction() + { + _donationsService.QuickDonation(new Donation()); + + var controller = new MemberController(_donationsService, _memberService, _campaignService); + var result = controller.SaveDonation(new Donation()); + + result.AssertActionRedirect().ToAction("Index"); + } } }