Example #1
0
        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!");
        }
Example #2
0
        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);
        }