public void DestroyWhenBindPasses() { var viewObj = new EmptyViewObject() { UseModel = new Model(), UseBindInfo = new ModelViewBinder.BindInfo(typeof(EmptyViewObject)), }; Assert.IsTrue(viewObj.DoBinding()); int unbindCounter = 0; int destroyCounter = 0; viewObj.OnUnbinded.Add(_v => unbindCounter++); viewObj.OnDestroyed.Add(_v => destroyCounter++); viewObj.Destroy(); Assert.IsNull(viewObj.UseModel); Assert.IsNull(viewObj.UseBindInfo); Assert.IsNull(viewObj.UseBinderInstance); Assert.AreEqual(1, unbindCounter); Assert.AreEqual(1, destroyCounter); Debug.Log($"Success to IViewObject#Destroy!"); unbindCounter = 0; destroyCounter = 0; viewObj.Destroy(); Assert.AreEqual(0, unbindCounter); Assert.AreEqual(0, destroyCounter); Debug.Log($"Success to IViewObject#Destroy When already destroy!"); }
public void DestroyWhenBindNothingPasses() { var viewObj = new EmptyViewObject(); Assert.IsFalse(viewObj.DoBinding()); int unbindCounter = 0; int destroyCounter = 0; viewObj.OnUnbinded.Add(_v => unbindCounter++); viewObj.OnDestroyed.Add(_v => destroyCounter++); viewObj.Destroy(); Assert.IsNull(viewObj.UseModel); Assert.IsNull(viewObj.UseBindInfo); Assert.IsNull(viewObj.UseBinderInstance); Assert.AreEqual(0, unbindCounter); Assert.AreEqual(1, destroyCounter); }