Exemplo n.º 1
0
        public async Task TestStoryGenerates()
        {
            var interpreter = new SkillFlowInterpreter();

            interpreter.AddCoreExtensions();
            Story story = null;

            using (var reader = File.OpenRead("Examples/story.abc"))
            {
                story = await interpreter.Interpret(reader);
            }

            var expected = File.ReadAllLines("Examples/story.abc");
            var actual   = new string[] { };

            var mem       = new MemoryStream();
            var context   = new TextGeneratorContext(mem);
            var generator = new TextGenerator.TextGenerator();

            await generator.Generate(story, context);

            mem.Position = 0;

            using (var reader = new StreamReader(mem))
            {
                actual = reader.ReadToEnd().Split(context.LineEnding);
            }

            foreach (var set in expected.Zip(actual))
            {
                Assert.Equal(set.First.Trim(), set.Second.Trim());
            }
        }
        private async Task <string> OutputStory(Story story)
        {
            var stream  = new MemoryStream();
            var context = new TextGeneratorContext(stream)
            {
                LineEnding = "\n"
            };
            var generator = new TextGenerator.TextGenerator();
            await generator.Generate(story, context);

            return(ToText(stream));
        }