public void SuperAdmin_can_access_all_brands()
        {
            // *** Arrange ***
            const int brandCount = 20;
            var       brands     = new List <Core.Brand.Interface.Data.Brand>();

            for (var i = 0; i < brandCount; i++)
            {
                brands.Add(CreateBrand());
            }

            var admin         = SecurityRepository.GetAdminById(_actorInfoProvider.Actor.Id);
            var allowedBrands = brands.Select(b => b.Id).ToList();

            allowedBrands.AddRange(admin.AllowedBrands.Select(b => b.Id));
            admin.SetAllowedBrands(allowedBrands);
            SecurityTestHelper.SignInAdmin(admin);

            // *** Act ***
            var filtered = BrandQueries.GetFilteredBrands(brands, admin.Id);

            // *** Assert ***
            Assert.IsNotNull(filtered);
            Assert.True(filtered.Count() == brandCount);
        }
        public void Cannot_access_multiple_licensees_brands_that_are_not_allowed_for_admin()
        {
            var notAllowedBrands = new List <Guid>();
            var allowedBrands    = new List <Guid>();

            // Generate 10 brands that are not allowed to user
            for (var i = 0; i < 10; i++)
            {
                // Generate licensee for brand
                var licensee = CreateLicensee();

                var brand = CreateBrand(licensee);
                notAllowedBrands.Add(brand.Id);
            }

            var currentUser = SecurityRepository.GetAdminById(_actorInfoProvider.Actor.Id);
            var currentUserAllowedBrands = currentUser.AllowedBrands.Select(b => b.Id).ToList();

            currentUserAllowedBrands.AddRange(notAllowedBrands);
            currentUser.SetAllowedBrands(currentUserAllowedBrands);
            SecurityTestHelper.SignInAdmin(currentUser);

            var admin = SecurityTestHelper.CreateAdmin();

            admin.Licensees.Clear();
            admin.AllowedBrands.Clear();

            // Generate 5 brands that are allowed to user
            for (var i = 0; i < 5; i++)
            {
                var licensee = CreateLicensee();

                var brand = CreateBrand(licensee);
                admin.AddAllowedBrand(brand.Id);
                allowedBrands.Add(brand.Id);
            }

            SecurityTestHelper.SignInAdmin(admin);

            /*** Act ***/
            var brands = BrandQueries.GetAllBrands();

            /*** Assert ***/
            Assert.AreEqual(brands.Count(), allowedBrands.Count);
            // Check if filtered brands are same with allowed brands
            Assert.True(!brands.Select(b => b.Id).Except(allowedBrands).Any());
            // Check if there are no forbidden brands among filtered for user
            Assert.False(brands.Select(b => b.Id).Intersect(notAllowedBrands).Any());
        }