Example #1
0
        private static void Main(string[] args)
        {
            var builder = new CouponCodeBuilder();

            var code = builder.GenerateCode("####-####-####", "ABC-");

            Console.WriteLine(code);
            Console.ReadLine();
        }
        public void ValidatePregeneratedCouponCodesHasNoErrors(string code)
        {
            var opts = new Options();
            var ccb = new CouponCodeBuilder();
            var output = ccb.Validate(code, opts);

            // check code and validation are the same
            Assert.IsNotNullOrEmpty(output, string.Format("Expected test case {0} to be not null or empty.", code));
            Assert.AreEqual(code, output, string.Format("Expected test case {0} to ensure that the generated code and validated code match.", code));
        }
        public void InvalidCouponCodeReturnEmptyString()
        {
            var opts = new Options();
            var ccb = new CouponCodeBuilder();

            // valid is "9Y46-9M8E-UQB8"
            var output = ccb.Validate("9Y46-9M8E-UQBA", opts);

            // check output is empty
            Assert.IsEmpty(output);
        }
        public void GenerateValidCouponCodesAlsoValidates(int counter)
        {
            var opts = new Options();
            var ccb = new CouponCodeBuilder();
            var badWords = ccb.BadWordsList;

            var code = ccb.Generate(opts);
            var output = ccb.Validate(code, opts);

            Console.WriteLine(code);

            // check code and validation are the same
            Assert.IsNotNullOrEmpty(output, string.Format("Expected test case {0} to be not null or empty.", counter));
            Assert.AreEqual(code, output, string.Format("Expected test case {0} to ensure that the generated code and validated code match.", counter));

            // assert no bad words
            var parts = output.Split('-');
            var contains = badWords.Any(part => parts.Any(item => part.ToUpperInvariant().Contains(item.ToUpperInvariant())));
            Assert.IsFalse(contains, string.Format("Expected test case {0} to contain no bad words.", counter));
        }