Example #1
0
        public List <string> GenerateVarchar()
        {
            string[] separationPatterns = { "$" };

            // escaping
            pattern = pattern.Replace("\\$", "1wf#F1efadF^G21");

            // Split the pattern
            string[] split = pattern.Split(separationPatterns, StringSplitOptions.None);

            List <IKeywordGenerator> generators = new List <IKeywordGenerator>();

            // Make generator for each word
            for (int i = 1; i < split.Length; i += 2)
            {
                generators.Add(KeywordGeneratorFactory.getGenerator(split[i], ctx, Column));
            }

            List <string> resultValues = new List <string>();

            for (int h = 0; h < NumberOfRowsToGenerate; h++)
            {
                string line = "";
                for (int i = 0; i < split.Length; i++)
                {
                    if (i % 2 == 0)
                    {
                        line += split[i];
                    }
                    else
                    {
                        line += generators[i / 2].generateWord();
                    }
                }

                // return escaped
                line = line.Replace("1wf#F1efadF^G21", "$");

                resultValues.Add($"'{line}'");
            }


            return(resultValues);
        }
Example #2
0
        public void MergeDocText_ListWithCheckboxes()
        {
            var writer = new DocumentTemplateWriter();

            writer.InsertMarkdown(@"

                | Item                                                           |
                | -------------------------------------------------------------- |
                | {{ each Items }}{{ checkbox InStock }} {{ Name }}{{ end each }} |

                ");

            var data = new
            {
                Items = new[] {
                        new {Name = "Milk", InStock = true },
                        new {Name = "Eggs", InStock = true },
                        new {Name = "Artisan Bread", InStock = false }
                    },
            };

            var generatorFactory = new KeywordGeneratorFactory<IGenerator<Document, Node, Type, object, string>>();

            generatorFactory.Generators.Add("checkbox", new CheckBoxSymbolGenerator<Type, object, string>());

            writer.Document.Merge(data, generatorFactory: generatorFactory);

            AssertText(writer.Document, @"
                Item
                þ Milk
                þ Eggs
                ¨ Artisan Bread

                ");

            Assert.AreEqual(4, writer.Document.SelectNodes("//Row").Count, "The row should be repeated for each item.");
            Assert.AreEqual(4, writer.Document.SelectNodes("//Cell").Count, "The cell should be repeated in each row.");
        }