public static void SetNullToBindableModifierProperty() { var source = new Source { Property = 0 }; var body = new UnityEngine.GameObject(); try { var modifier = new Modifier { Body = body.transform }; var instance = new WithBindableBodyProperties { defaultModifier = modifier }; var binding = new Binding("Property", BindingMode.OneWay, null, null, null, source); modifier.SetBinding(Modifier.BindingContextProperty, binding); Assert.AreEqual(modifier, instance.BindableModifier); Assert.AreEqual(0, modifier.BindingContext); instance.BindableModifier = null; Assert.Null(instance.BindableModifier); source.Property = 1; Assert.AreEqual(0, modifier.BindingContext); Assert.Null(modifier.Body); } finally { UnityEngine.Object.Destroy(body); } }
public static void CreateBindableBodyPropertyWithDefaultBindingMode() { var instance = new WithBindableBodyProperties(); var source = new Source { Property = 0 }; var binding = new Binding("Property", BindingMode.Default, null, null, null, source); instance.SetBinding(WithBindableBodyProperties.WithDefaultValueProperty, binding); instance.WithDefaultValue = 2; Assert.AreEqual(2, source.Property); }
public static void OnBindablePropertyChangedWithBody() { var instance = new WithBindableBodyProperties(); var gameObject = new UnityEngine.GameObject(); try { instance.AddToInMainThread(gameObject); SynchronizationContextWaiter.Execute(() => instance.WithDefaultValue = 4); Assert.AreEqual(4, gameObject.layer); } finally { UnityEngine.Object.Destroy(gameObject); } }
public static void SetNonNullToBindableModifierProperty() { var source = new Source { Property = 0 }; var gameObject = new UnityEngine.GameObject(); try { var modifier = new Modifier { Body = gameObject.transform }; var newModifier = new Modifier(); var instance = new WithBindableBodyProperties { defaultModifier = modifier }; instance.AddToInMainThread(gameObject); instance.BindingContext = 2; var binding = new Binding("Property", BindingMode.OneWay, null, null, null, source); modifier.SetBinding(Modifier.BindingContextProperty, binding); Assert.AreEqual(modifier, instance.BindableModifier); Assert.AreEqual(0, modifier.BindingContext); SynchronizationContextWaiter.Execute(() => instance.BindableModifier = newModifier); Assert.AreEqual(newModifier, instance.BindableModifier); Assert.AreEqual(gameObject.transform, newModifier.Body); Assert.AreEqual(2, newModifier.BindingContext); source.Property = 1; Assert.AreEqual(0, modifier.BindingContext); Assert.Null(modifier.Body); } finally { UnityEngine.Object.Destroy(gameObject); } }
public static void CreateBindableBodyPropertyWithDefaultValueCreator() { var instance = new WithBindableBodyProperties(); Assert.AreEqual(3, instance.WithDefaultValueCreator); }