public void GetUsersModel() { controller.Request.Headers.Authorization = new AuthenticationHeaderValue("jwt", "1"); var users = new List <User> { new User { id = 1, Customer = new Customer(), Roles = new List <Role> { new Role { id = Role.Admin } } }, new User { id = 2, customer_code = "branch", Customer = new Customer { invoice_customer = "branch" }, Roles = new List <Role> { new Role { id = Role.BranchAdmin } } }, new User { id = 3, customer_code = "branch2", Customer = new Customer { invoice_customer = "branch" }, Roles = new List <Role> { new Role { id = Role.User } } }, new User { id = 4, customer_code = "branch2", Customer = new Customer(), Roles = new List <Role> { new Role { id = Role.User } } } }; unitOfWork.Data = new MockData { Users = users, Roles = new List <Role> { new Role { id = Role.User }, new Role { id = Role.BranchAdmin }, new Role { id = Role.Admin }, new Role { id = 4 } } }; var model = controller.GetUsersModel(); var usersProp = model.GetType().GetProperty("users"); var rolesProp = model.GetType().GetProperty("roles"); Assert.IsNotNull(usersProp); Assert.IsNotNull(rolesProp); Assert.IsNotNull(usersProp.PropertyType.GenericTypeArguments); Assert.AreEqual(1, usersProp.PropertyType.GenericTypeArguments.Length); Assert.IsNotNull(rolesProp.PropertyType.GenericTypeArguments); Assert.AreEqual(1, rolesProp.PropertyType.GenericTypeArguments.Length); TestCollection(usersProp.GetValue(model), 4); TestCollection(rolesProp.GetValue(model), 4); //Branch admin controller.Request.Headers.Authorization = new AuthenticationHeaderValue("jwt", "2"); model = controller.GetUsersModel(); usersProp = model.GetType().GetProperty("users"); rolesProp = model.GetType().GetProperty("roles"); Assert.IsNotNull(usersProp); Assert.IsNotNull(rolesProp); Assert.IsNotNull(usersProp.PropertyType.GenericTypeArguments); Assert.AreEqual(1, rolesProp.PropertyType.GenericTypeArguments.Length); TestCollection(usersProp.GetValue(model), 2); TestCollection(rolesProp.GetValue(model), 2); }