public void GetRules_should_return_product_rule_generate_commission()
        {
            //arrange
            IRulesRepo repo = new StaticRulesRepo();

            //act
            var rules = repo.GetRules <Product>();

            //assert
            Assert.NotNull(rules);
            Assert.NotEmpty(rules);
            Assert.Contains(rules, t => t is GenerateCommission);
        }
        public void GetRules_should_return_for_new_membership()
        {
            //arrange
            IRulesRepo repo = new StaticRulesRepo();

            //act
            var rules = repo.GetRules <NewMembership>();

            //assert
            Assert.NotNull(rules);
            Assert.NotEmpty(rules);
            Assert.Contains(rules, t => t is MembershipActivation);
        }
        public void GetRules_should_return_product_rule_packingslips()
        {
            //arrange
            IRulesRepo repo = new StaticRulesRepo();

            //act
            var rules = repo.GetRules <Product>();

            //assert
            Assert.NotNull(rules);
            Assert.NotEmpty(rules);
            Assert.Contains(rules, t => t is CreatePackingSlip);
        }
        public void GetRules_should_return_product_rules()
        {
            //arrange
            IRulesRepo repo = new StaticRulesRepo();

            //act
            var rules = repo.GetRules <Product>();

            //assert
            Assert.NotNull(rules);
            Assert.NotEmpty(rules);
            Assert.True(rules.Count() > 0);
        }
        public void GetRules_should_return_empty_when_norules_available()
        {
            //arrange
            IRulesRepo repo = new StaticRulesRepo();


            //act
            var rules = repo.GetRules <NewProduct>();

            //assert
            Assert.NotNull(rules);
            Assert.Empty(rules);
        }
        public void GetRules_should_return_for_videocontent()
        {
            //arrange
            IRulesRepo repo = new StaticRulesRepo();

            //act
            var rules = repo.GetRules <VideoContent>();

            //assert
            Assert.NotNull(rules);
            Assert.NotEmpty(rules);
            Assert.Contains(rules, t => t is FreeVideoRule);
        }
        public void GetRules_should_return_for_book()
        {
            //arrange
            IRulesRepo repo = new StaticRulesRepo();

            //act
            var rules = repo.GetRules <Book>();

            //assert
            Assert.NotNull(rules);
            Assert.NotEmpty(rules);
            Assert.Contains(rules, t => t is DuplicatePackingSlip);
            Assert.Contains(rules, t => t is GenerateBookCommission);
        }