public void HashCanBeUsedToDeclareStatementsInsteadOfOutputExpressions() { var viewFolder = new InMemoryViewFolder { { "bindings.xml", "<bindings><element name='foo'><start>#bar;</start><end>#quux;</end></element></bindings>" } }; var provider = new DefaultBindingProvider(); var bindings = provider.GetBindings(viewFolder).ToList(); Assert.That(bindings[0].Phrases.All(phrase => phrase.Type == BindingPhrase.PhraseType.Statement)); }
public void MissingFileDoesNotCauseException() { var viewFolder = new InMemoryViewFolder(); var provider = new DefaultBindingProvider(); var bindings = provider.GetBindings(viewFolder).ToList(); Assert.That(bindings.Count, Is.EqualTo(0)); }
public void BindingTableCanLoadFromViewFolder() { var viewFolder = new InMemoryViewFolder { { "bindings.xml", "<bindings><element name='foo'>bar</element></bindings>" } }; var provider = new DefaultBindingProvider(); var bindings = provider.GetBindings(viewFolder).ToList(); Assert.That(bindings.Count, Is.EqualTo(1)); Assert.That(bindings[0].ElementName, Is.EqualTo("foo")); Assert.That(bindings[0].Nodes.Count, Is.EqualTo(1)); Assert.That(((BindingLiteral)bindings[0].Nodes[0]).Text, Is.EqualTo("bar")); }
public void TwoPartBindingsAreRecognized() { var viewFolder = new InMemoryViewFolder { { "bindings.xml", "<bindings><element name='foo'><start>bar</start><end>quux</end></element></bindings>" } }; var provider = new DefaultBindingProvider(); var bindings = provider.GetBindings(viewFolder).ToList(); Assert.That(bindings.Count, Is.EqualTo(1)); Assert.That(bindings[0].ElementName, Is.EqualTo("foo")); Assert.That(bindings[0].Phrases.Count(), Is.EqualTo(2)); Assert.That(bindings[0].Phrases.First().Nodes.Count, Is.EqualTo(1)); Assert.That(bindings[0].Phrases.Last().Nodes.Count, Is.EqualTo(1)); Assert.That(((BindingLiteral)bindings[0].Phrases.First().Nodes[0]).Text, Is.EqualTo("bar")); Assert.That(((BindingLiteral)bindings[0].Phrases.Last().Nodes[0]).Text, Is.EqualTo("quux")); Assert.That(bindings[0].Phrases.All(phrase => phrase.Type == BindingPhrase.PhraseType.Expression)); }
public void ChildReferenceMayNotAppearInStartPhrase() { var viewFolder = new InMemoryViewFolder { { "bindings.xml", "<bindings><element name='foo'><start>child::*</start><end>foo</end></element></bindings>" } }; var provider = new DefaultBindingProvider(); provider.GetBindings(viewFolder).ToList(); }
public void ChildReferenceMayNotAppearInStartPhrase() { var viewFolder = new InMemoryViewFolder { { "bindings.xml", "<bindings><element name='foo'><start>child::*</start><end>foo</end></element></bindings>" } }; var provider = new DefaultBindingProvider(); Assert.That(() => provider.GetBindings(viewFolder).ToList(), Throws.TypeOf<CompilerException>()); }