예제 #1
0
        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);
        }