Beispiel #1
0
        public void ChoiceWithInvalidChild()
        {
            var data = $"<storyboard><protagonist /><prompt><a><b /></a></prompt></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("O elemento 'b' não é suportado como filho do elemento 'a'.\r\nLinha 1");
        }
Beispiel #2
0
        public void NotSupportedElementInStoryboard()
        {
            var data = "<storyboard><test /></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("O elemento 'test' não é suportado.\r\nLinha 1");
        }
Beispiel #3
0
        public void InvalidValue(string elementName, string value)
        {
            var data = $"<storyboard><{elementName}>{value}</{elementName}></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"O valor '{value}' não é válido para o elemento '{elementName}'.\r\nLinha 1");
        }
Beispiel #4
0
        public void InterlocutorWithWhen()
        {
            var data = "<storyboard><person when=\"a\">teste</person></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("O elemento 'person' não suporta condições 'when'.\r\nLinha 1");
        }
Beispiel #5
0
        public void InvalidElementInsidePrompt(string elementName)
        {
            var data = $"<storyboard><protagonist /><prompt><a>Teste</a><{elementName} /></prompt></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"O elemento '{elementName}' não é suportado dentro do elemento 'prompt'.\r\nLinha 1");
        }
Beispiel #6
0
        public void BumpWithCondition(string mainElement)
        {
            var data = $"<storyboard>{mainElement}<bump when=\"a\" /><voice>...</voice></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("O elemento 'bump' não pode ter condição 'when'.\r\nLinha 1");
        }
Beispiel #7
0
        public void ProtagonistWithWhen()
        {
            var data = "<storyboard><protagonist when=\"a\" /></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("O elemento 'protagonist' não suporta condições 'when'.\r\nLinha 1");
        }
Beispiel #8
0
        public void PromptWithoutOptions()
        {
            var data = $"<storyboard><protagonist /><prompt></prompt></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"Nenhuma escolha definida no elemento 'prompt'. Favor definir um ou mais elementos de 'a' a 'z'.\r\nLinha 1");
        }
Beispiel #9
0
        public void PromptWithInvalidTime()
        {
            var data = $"<storyboard><protagonist /><prompt time=\"abc\"></prompt></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"O valor 'abc' não é válido para o atributo 'time'. É esperado um número inteiro.\r\nLinha 1");
        }
Beispiel #10
0
        public void ElementMustHaveContent(string elementName)
        {
            var data = $"<storyboard><protagonist /><{elementName} /></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"Conteúdo é requerido para o elemento '{elementName}'.\r\nLinha 1");
        }
Beispiel #11
0
        public void EmptyPromptElement(string element)
        {
            var data = $"<storyboard><protagonist />{element}</storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"O elemento 'prompt' não pode estar vazio.\r\nLinha 1");
        }
Beispiel #12
0
        public void NoStoryboardElement()
        {
            var data = "<test></test>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("Elemento 'storyboard' não encontrado.\r\nLinha 1");
        }
Beispiel #13
0
        public void NoRandomAttribute(string elementName)
        {
            var data = $"<storyboard><{elementName} teste=\"abc\" /></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"O atributo 'teste' não é suportado para o elemento '{elementName}'.\r\nLinha 1");
        }
Beispiel #14
0
        public void InsideElements(string parentNode, string nodeName)
        {
            var data = $"<storyboard><{parentNode} /><{nodeName}>abcde</{nodeName}></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"O elemento '{nodeName}' não pode ter conteúdo.\r\nLinha 1");
        }
Beispiel #15
0
        public void InvalidConditionForEmptyElements(string elementName)
        {
            var data = $"<storyboard><protagonist /><{elementName} when=\"a=2\" /></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("O valor 'a=2' não é válido para o atributo 'when'.\r\nLinha 1");
        }
Beispiel #16
0
        public void PromptWithInvalidDefault()
        {
            var data = $"<storyboard><protagonist /><prompt default=\"1\"></prompt></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"O valor '1' não é válido para o atributo 'default'. É esperada uma opção de 'a' a 'z'.\r\nLinha 1");
        }
Beispiel #17
0
        public void InvalidConditionForRepeatedElement(string elementName)
        {
            var data = $"<storyboard><protagonist /><{elementName}>Teste1</{elementName}><{elementName} when=\"a..b\">Teste2</{elementName}></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("O valor 'a..b' não é válido para o atributo 'when'.\r\nLinha 1");
        }
Beispiel #18
0
        public void PromptWithInvalidRandomOrder()
        {
            var data = $"<storyboard><protagonist /><prompt randomorder=\"abc\"></prompt></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"O valor 'abc' não é válido para o atributo 'randomorder'. É esperado '1' ou '0'.\r\nLinha 1");
        }
Beispiel #19
0
        public void BumpFollowedByElementWithCondition(string mainElement, string secodElementName)
        {
            var data = $"<storyboard>{mainElement}<bump /><{secodElementName} when=\"a\">...</{secodElementName}></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("O elemento após 'bump' não pode ter condição 'when'.\r\nLinha 1");
        }
Beispiel #20
0
        public void PromptWithInvalidChild()
        {
            var data = $"<storyboard><protagonist /><prompt><aa>teste</aa></prompt></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("O elemento 'aa' não é suportado dentro do elemento 'prompt'.\r\nLinha 1");
        }
Beispiel #21
0
        public void BumpFollowedByInvalidElement(string mainElement, string elementName)
        {
            var data = $"<storyboard>{mainElement}<bump /><{elementName} /></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"O elemento '{elementName}' não pode vir depois do elemento 'bump'. É esperado 'thought' ou 'voice'.\r\nLinha 1");
        }
Beispiel #22
0
        public void EmptyChoice(string element)
        {
            var data = $"<storyboard><protagonist /><prompt>{element}</prompt></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("O elemento 'a' precisa possuir conteúdo.\r\nLinha 1");
        }
Beispiel #23
0
        public void WhenInsidePrompt()
        {
            var data = "<storyboard><protagonist /><prompt><a>Teste</a><voice when=\"a\">Teste</voice></prompt></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("Não são permitidos atributos no elemento 'voice' dentro do elemento 'prompt'.\r\nLinha 1");
        }
Beispiel #24
0
        public void ChoiceWithInvalidAttribute()
        {
            var data = $"<storyboard><protagonist /><prompt><a teste=\"abc\">teste</a></prompt></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be("O atributo 'teste' não é suportado para o elemento 'a'.\r\nLinha 1");
        }
Beispiel #25
0
        public static Storyboard Parse(TextReader textReader, Dictionary <string, Trophy>?trophies)
        {
            using var reader = XmlReader.Create(textReader);
            var parser = new StoryboardParser(reader, trophies);

            reader.MoveToContent();

            if (reader.LocalName != Storyboard)
            {
                throw new StoryboardParsingException(reader, $"Elemento '{Storyboard}' não encontrado.");
            }

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    parser.HandleStartElement();
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    parser.HandleEndElement();
                }
            }

            return(parser.storyboard);
        }
Beispiel #26
0
        public void ElementMustBeEmpty(string elementName)
        {
            var data = $"<storyboard><protagonist /><{elementName}>Teste</{elementName}></storyboard>";
            var ex   = Assert.Throws <StoryboardParsingException>(() => StoryboardParser.Parse(data));

            ex.Message.Should().Be($"O elemento '{elementName}' não pode ter conteúdo.\r\nLinha 1");
        }
Beispiel #27
0
 private Storyboard Load(string resourceName)
 => StoryboardParser.Parse(this.GetResourceStream(resourceName));
Beispiel #28
0
        public void ValidElementInsidePrompt(string element)
        {
            var data = $"<storyboard><protagonist /><prompt><a>Teste</a>{element}</prompt></storyboard>";

            StoryboardParser.Parse(data);
        }