public void ChangedEmitted() { MockAction actionA = containingObject.AddComponent <MockAction>(); MockAction actionB = containingObject.AddComponent <MockAction>(); actionA.SetIsActivated(false); actionB.SetIsActivated(false); subject.Actions.Add(actionA); subject.Actions.Add(actionB); UnityEventListenerMock changedListenerMock = new UnityEventListenerMock(); subject.ValueChanged.AddListener(changedListenerMock.Listen); Assert.IsFalse(changedListenerMock.Received); actionA.SetIsActivated(true); actionB.SetIsActivated(true); Assert.IsTrue(changedListenerMock.Received); changedListenerMock.Reset(); actionA.SetIsActivated(false); actionB.SetIsActivated(true); Assert.IsFalse(changedListenerMock.Received); changedListenerMock.Reset(); actionA.SetIsActivated(false); actionB.SetIsActivated(false); Assert.IsTrue(changedListenerMock.Received); changedListenerMock.Reset(); actionA.SetIsActivated(true); actionB.SetIsActivated(false); Assert.IsTrue(changedListenerMock.Received); changedListenerMock.Reset(); actionA.SetIsActivated(true); actionB.SetIsActivated(true); Assert.IsFalse(changedListenerMock.Received); }
public void RemoveActionListenersCorrectly() { subject.enabled = false; GameObject otherObject = new GameObject(); MockAction actionA = otherObject.AddComponent <MockAction>(); MockAction actionB = otherObject.AddComponent <MockAction>(); actionA.SetIsActivated(false); actionB.SetIsActivated(false); subject.Actions.Add(actionA); subject.Actions.Add(actionB); subject.enabled = true; Object.DestroyImmediate(otherObject); subject.enabled = false; }