public void BindingCurrentValue_UsingADot_WorksOnEveryBindingPath() { var value = new ComplicatedType(); Element.SetTarget(value); Assert.That(Element.Q <ComplicatedTypeElement>(".").value, Is.EqualTo(value)); Assert.That(Element.Q <Label>(".").text, Is.EqualTo(value.ToString())); }
public void Bindings_WithAbsoluteAndRelativePaths_UpdatesValuesCorrectly(string path) { var value = new ComplicatedType { A = 0, B = 1, Nested = new NestedType { A = 2, B = 3, Nested = new SubNestedType { A = 4, B = 5, Nested = 6 } } }; Element.SetTarget(value); var values = new float[] { 1, 2, 3, 4, 5 }; var elements = Element.Query <FloatField>(path).ToList(); foreach (var element in elements) { Assert.That(element.value, Is.EqualTo(PropertyContainer.GetValue <ComplicatedType, float>(ref value, path))); } foreach (var element in elements) { foreach (var v in values) { element.value = v; UpdateBindables(); Assert.That(PropertyContainer.GetValue <ComplicatedType, float>(ref value, path), Is.EqualTo(v)); } } foreach (var v in values) { PropertyContainer.SetValue(ref value, path, v); UpdateBindables(); foreach (var element in elements) { Assert.That(PropertyContainer.GetValue <ComplicatedType, float>(ref value, path), Is.EqualTo(element.value)); } } }