Click here to Skip to main content
13,006,360 members (71,140 online)
Click here to Skip to main content
Articles » Web Development » ASP.NET » General » Downloads

Stats

35.6K views
1.1K downloads
29 bookmarked
Posted 23 Mar 2012

Basics of ASP.NET MVC 3: Part-III (Dependency Injection)

, 26 Mar 2012
Explains basic information and steps for creating an MVC3 application with the Dependency Injection (DI) pattern.
MVC3Demo
Library
Microsoft.Practices.Unity.dll
Local.testsettings
MVC3Demo
App_Code
Content
themes
base
images
ui-bg_flat_0_aaaaaa_40x100.png
ui-bg_flat_75_ffffff_40x100.png
ui-bg_glass_55_fbf9ee_1x400.png
ui-bg_glass_65_ffffff_1x400.png
ui-bg_glass_75_dadada_1x400.png
ui-bg_glass_75_e6e6e6_1x400.png
ui-bg_glass_95_fef1ec_1x400.png
ui-bg_highlight-soft_75_cccccc_1x100.png
ui-icons_222222_256x240.png
ui-icons_2e83ff_256x240.png
ui-icons_454545_256x240.png
ui-icons_888888_256x240.png
ui-icons_cd0a0a_256x240.png
Controllers
Factories
Global.asax
Models
MVC3Demo.csproj.user
Properties
Scripts
Views
Home
Product
Shared
MVC3Demo.Test
Properties
MVC3Demo.vsmdi
TraceAndTestImpact.testsettings
using MVC3Demo.Controllers;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting.Web;
using System.Web.Mvc;
using MVC3Demo.Models;
using System.Collections;
using System.Collections.Generic;

namespace MVC3Demo.Test
{


    /// <summary>
    ///This is a test class for ProductControllerTest and is intended
    ///to contain all ProductControllerTest Unit Tests
    ///</summary>
    [TestClass()]
    public class ProductControllerTest
    {


        private TestContext testContextInstance;

        /// <summary>
        ///Gets or sets the test context which provides
        ///information about and functionality for the current test run.
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }
       
        [TestMethod]
        public void ProductListTest()
        { 
            ProductModel actualProductModel = new ProductModel();
            ProductController target = new ProductController(actualProductModel);
           

            string strPrdCode = string.Empty;
            ActionResult actual;
            actual = target.ProductList();

            Assert.IsInstanceOfType(actual, typeof(PartialViewResult));

            PartialViewResult result = (PartialViewResult)actual;
            Assert.IsInstanceOfType(result.Model, typeof(IList<ProductModel>));

            IList<ProductModel> expectedProduct = (IList<ProductModel>)result.Model;
            IList<ProductModel> actualProduct = (IList<ProductModel>)actualProductModel.GetAllProducts();

            Assert.AreEqual(actualProduct.Count, expectedProduct.Count);
        }

        [TestMethod]
        public void ProductDetailTest()
        {
            ProductModel actualProductModel = new ProductModel();
            ProductController target = new ProductController(actualProductModel);
            
            ProductModel actualProduct = actualProductModel.GetAllProducts()[0];

            string strPrdCode = string.Empty;
            ActionResult actual;
            actual = target.ProductDetail(strPrdCode);

            Assert.IsInstanceOfType(actual, typeof(PartialViewResult));

            PartialViewResult result = (PartialViewResult)actual;
            Assert.IsInstanceOfType(result.Model, typeof(ProductModel));

            ProductModel expectedProduct = (ProductModel)result.Model;

            Assert.AreEqual(actualProduct.PrdCode, expectedProduct.PrdCode);
            Assert.AreEqual(actualProduct.Name, expectedProduct.Name);
            Assert.AreEqual(actualProduct.Price, expectedProduct.Price);
        }


    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Arthanarieaswaran
Technical Lead
India India
Artha is a Technical Lead in Windows Phone, WPF [MVVM, PRISM], ASP.NET [MVC 3.0 & 4.0], C#.NET, VB.NET and ASP.

Windows Phone

Microsoft Developer Network


Published Tools in Visual Studio Galleries


Published Source Codes in CodePlex


Microsoft Virtual Academy Profile


Published Articles in Code Project


Microsoft Certified Professional Developer (MCPD) Microsoft ASP.NET Developer 3.5 (070-564, 070-536, 070-562, 070 315)

You may also be interested in...

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170628.1 | Last Updated 26 Mar 2012
Article Copyright 2012 by Arthanarieaswaran
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid