mardi 26 janvier 2016

How to unit test the controller?

I have the controller in ASP.NET Mvc 6.

    public class VendorManagementController : Controller
    {
        private readonly IVendorRespository _vendorRespository;

        public VendorManagementController(IVendorRespository vendorRespository)
        {
            _vendorRespository = vendorRespository;
        }

        [Microsoft.AspNet.Mvc.HttpGet]
        public dynamic GetVendorById(int pkey)
        {
            Vendor vendor = _vendorRespository.GetVendor(pkey);
            return vendor;
        }

        // GET 
        // USing JqGrid
        [Microsoft.AspNet.Mvc.HttpGet]
        public dynamic GetVendors(string sidx, string sortOrder, int page, int rows, int pkey)
        {
            var vendors = _vendorRespository.GetAllVendors().AsQueryable();
            var pageIndex = Convert.ToInt32(page) - 1;
            var pageSize = rows;
            var totalRecords = vendors.Count();
            var totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);
            return something
        }

        // POST
        [System.Web.Http.HttpPost]
        public string PostVendor(Vendor item)
        {
             _vendorRespository.AddVendor(item);
        }

The link provides an example to test the controller, but it uses HttpRequestMessage. It doesn't fit my case.

So if I want to test the return Vendors, how? Say I have the method:

 [Fact]
    public void GetAllVendors_ShouldReturnAllVendors()
    {
        var testVendors = GetTestVendors();
        var vendorRespository = new VendorRespository();
        var controller = new VendorManagementController(vendorRespository);
    }

Aucun commentaire:

Enregistrer un commentaire