public void CanGetObjects() { PageInfo result = new PageInfo { CurrentPath = "basePath\\path", BrowserItems = new List <string> { "Games", "Software", "Music", "Films" } }; Mock <IBrowserHelper> mock = new Mock <IBrowserHelper>(); mock.Setup(m => m.GetItemsForSelectedPath("basePath\\path")).Returns(result); var controller = new BrowserController(mock.Object); controller.Request = new HttpRequestMessage(); controller.Configuration = new HttpConfiguration(); var response = controller.GetDirectoryItems("basePath", "path"); PageInfo pageInfo; Assert.IsTrue(response.TryGetContentValue <PageInfo>(out pageInfo)); Assert.AreEqual(result.BrowserItems[2], pageInfo.BrowserItems[2]); Assert.AreEqual(4, pageInfo.BrowserItems.Count); //Testing behavior of GetObjects method when it has parameters like GetObjects("C"\", "..") and must returns logical drives result = new PageInfo { CurrentPath = String.Empty, BrowserItems = new List <string> { "C:\\", "D:\\", "E:\\", } }; mock = new Mock <IBrowserHelper>(); mock.Setup(m => m.GetLogicalDrives()).Returns(result); controller = new BrowserController(mock.Object); controller.Request = new HttpRequestMessage(); controller.Configuration = new HttpConfiguration(); response = controller.GetDirectoryItems("C:\\", ".."); Assert.IsTrue(response.TryGetContentValue <PageInfo>(out pageInfo)); Assert.AreEqual(string.Empty, pageInfo.CurrentPath); Assert.AreEqual(3, pageInfo.BrowserItems.Count); Assert.AreEqual("D:\\", pageInfo.BrowserItems[1]); Assert.AreEqual("E:\\", pageInfo.BrowserItems[2]); }