예제 #1
0
        public void OnChangedValuePasses()
        {
            var v             = new UpdateObserver <int>(0);
            var counter       = 0;
            var recievedValue = 0;

            v.OnChangedValue.Add((i) => {
                counter++;
                recievedValue = i;
            });

            {
                v.Value = 100;
                Assert.AreEqual(1, counter);
                Assert.AreEqual(v.Value, recievedValue);
            }
            Debug.Log($"Success to Call OnChangedValue Callback!");

            {
                v.Value = v.Value;
                Assert.AreEqual(1, counter);
                Assert.AreEqual(v.Value, recievedValue);
            }
            Debug.Log($"Success not to Call OnChangedValue Callback when not update UpdateObserver#Value!");
        }
예제 #2
0
 /// <summary>
 /// AttachToPanelEvent event callback.
 /// </summary>
 /// <param name="e">The event.</param>
 protected virtual void OnEnterPanel(AttachToPanelEvent e)
 {
     if (m_UpdateObserver == null)
     {
         m_UpdateObserver = new UpdateObserver(this);
     }
     m_CommandDispatcher?.RegisterObserver(m_UpdateObserver);
 }
예제 #3
0
        public void BasicUsagePasses()
        {
            var v = new UpdateObserver <int>();

            Assert.IsFalse(v.DidUpdated);

            v.Value = 100;
            Assert.AreEqual(100, v.Value);
            Assert.IsTrue(v.DidUpdated);

            v.Value = -100;
            Assert.AreEqual(-100, v.Value);
            Assert.IsTrue(v.DidUpdated);

            var prevValue = v.Value;

            v.Reset();
            Assert.AreEqual(prevValue, v.Value);
            Assert.IsFalse(v.DidUpdated);
        }