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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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"); }
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); }
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"); }
private Storyboard Load(string resourceName) => StoryboardParser.Parse(this.GetResourceStream(resourceName));
public void ValidElementInsidePrompt(string element) { var data = $"<storyboard><protagonist /><prompt><a>Teste</a>{element}</prompt></storyboard>"; StoryboardParser.Parse(data); }