c# - How do you use Moq to mock a simple interface? -


okay, have business logic class this:

note: context, vendor briefs simple entities describe "download" pdf document.

/// <summary> /// houses business level functions dealing vendor briefs. /// </summary> public class vendorbriefcontroller : ivendorbriefcontroller {     /// <summary>     /// vendor brief controller requires instance of ivendorbriefrepository.     /// </summary>     ivendorbriefrepository _vendorbriefrepository;      /// <summary>     /// initializes instance of vendorbriefcontroller.     /// </summary>     public vendorbriefcontroller(ivendorbriefrepository vendorbriefrepository)     {         _vendorbriefrepository = vendorbriefrepository;     }      /// <summary>     /// list of string filters vendor briefs.     /// </summary>     /// <returns>a list of string filters.</returns>     public dynamic getfilters()     {         list<string> filters = new list<string>         {             "all",             "active",             "inactive"         };         return filters;     }      /// <summary>     /// retrieve vendor brief entity repository unique id.     /// </summary>     /// <param name="id">the unique id of vendor brief.</param>     /// <returns>a vendor brief entity.</returns>     public vendorbrief getvendorbriefforediting(int id)     {         var vendorbrief = _vendorbriefrepository.getvendorbrief(id);         return vendorbrief;     }      /// <summary>     /// dynamic list of vendor briefs repository based on supplied filter.     /// </summary>     /// <param name="filter">the filter used when retrieving vendor briefs.</param>     /// <returns>a dynamic sorted & filtered list of vendor briefs displayed in grid view.</returns>     public dynamic getvendorbrieflist(string filter)     {         ienumerable<vendorbrief> results = _vendorbriefrepository.getvendorbriefs();         switch (filter)         {             default:                 results = _vendorbriefrepository.getvendorbriefs();                 break;             case "active":                 results = _vendorbriefrepository.getvendorbriefs(true);                 break;             case "inactive":                 results = _vendorbriefrepository.getvendorbriefs(false);                 break;         }         return x in results                orderby x.displayorder                select new                {                    id = x.vendorbriefid,                    title = x.title,                    active = x.isactive,                    displayorder = x.displayorder                };     }      /// <summary>     /// save changes underlying repository in order persist changes made self-tracking vendor brief entities.     /// </summary>     /// <param name="vendorbrief"></param>     public void editvendorbrief(vendorbrief vendorbrief)     {         _vendorbriefrepository.savechanges();     }      /// <summary>     /// remove vendor brief underlying repository.     /// </summary>     /// <param name="vendorbrief">the vendor brief removed.</param>     public void deletevendorbrief(vendorbrief vendorbrief)     {         _vendorbriefrepository.deletevendorbrief(vendorbrief);         _vendorbriefrepository.savechanges();     }      /// <summary>     /// add vendor brief underlying repository.     /// </summary>     /// <param name="vendorbrief">the vendor brief added.</param>     public void addvendorbrief(vendorbrief vendorbrief)     {         _vendorbriefrepository.addvendorbrief(vendorbrief);         _vendorbriefrepository.savechanges();     } } 

i taking first steps unit testing , i'm learning moq. don't want whole unit test class written (unless feel of course :p) simple sample do. i'm assuming need "mock" ivendorbriefrepository can pass constructor when building controller (not confused mvc controllers), i'm not sure how it. sample using of own code me started.

thanks in advance!

something test deletevendorbrief, example.

mock<ivendorbriefrepository> mock = new mock<ivendorbriefrepository>();  vendorbriefcontroller controller = new vendorbriefcontroller(mock.object);  vendorbrief brief = new vendorbrief();  controller.deletevendorbrief(brief);  mock.verify(f=>f.deletevendorbrief(brief)); mock.verify(f=>f.savechanges()); 

Comments

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -