public void User_Can_View_Patient_Treatments() { // find a unique count of treatments var counts = new LinqMetaData().Patient .Where(x => x.Location.Organization.Users.Any()) .Select(x => new { Patient = x, Count = x.Treatments.Count() }).ToList(); var patientCount = counts.FirstOrDefault(x => counts.Count(y => y.Count == x.Count) == 1); Assert.IsNotNull(patientCount); var patient = patientCount.Patient; // make sure search is accessible var controller = Mock(); controller.HttpContext.User = new RolePrincipal(new GenericIdentity(patient.Location.Organization.Users.First().Username)); controller.Invoke(x => x.Index(null, patient.PatientId, null)); // get user from controller var user = new LinqMetaData().User.SingleOrDefault(x => x.Username == controller.HttpContext.User.Identity.Name); Assert.IsNotNull(user); Assert.IsFalse(user.Username == ""); // make sure the data table information was added to view data properly Assert.IsNotNull(controller.ViewData["DataTablesModels"] as Dictionary <string, object>); Assert.IsNotNull(((Dictionary <string, object>) controller.ViewData["DataTablesModels"]).FirstOrDefault()); var id = ((IDataTablesInitializationModel) ((Dictionary <string, object>) controller.ViewData["DataTablesModels"]).First().Value).ID; // do a search for that patient id controller = Mock(); controller.HttpContext.User = new RolePrincipal(new GenericIdentity(patient.Location.Organization.Users.First().Username)); controller.Invoke(x => x.Index(null, patient.PatientId, new DataTablesRequestModel { sEcho = 1, epicTableId = id })); // look for count of records Assert.IsTrue(controller.Response.Output.ToString().Contains("\"iTotalRecords\":" + patient.Treatments.Count())); }