public void Start_SetsRigidbodyConstraintsToFreezeAll()
        {
            var actionState = new PushObjectActionState(new PushObjectActionStateInfo(_inputBinder.gameObject, _pushableObject.gameObject, _pushSocket));

            actionState.Start();

            Assert.AreEqual(RigidbodyConstraints2D.FreezeAll, _rigidbody.constraints);
        }
        public void Start_SetsRigidbodyToKinematic()
        {
            var actionState = new PushObjectActionState(new PushObjectActionStateInfo(_inputBinder.gameObject, _pushableObject.gameObject, _pushSocket));

            actionState.Start();

            Assert.IsTrue(_rigidbody.isKinematic);
        }
        public void Start_SetsOwnerParentToPushSocket()
        {
            var actionState = new PushObjectActionState(new PushObjectActionStateInfo(_inputBinder.gameObject, _pushableObject.gameObject, _pushSocket));

            actionState.Start();

            Assert.AreSame(_pushSocket.transform, _inputBinder.gameObject.transform.parent);
        }
        public void Start_SetsOwnerRotationToPushSocket()
        {
            var actionState = new PushObjectActionState(new PushObjectActionStateInfo(_inputBinder.gameObject, _pushableObject.gameObject, _pushSocket));

            actionState.Start();

            Assert.AreEqual(_pushSocket.transform.rotation, _inputBinder.gameObject.transform.rotation);
        }
        public void Start_RegistersInteractionInputHandler()
        {
            var actionState = new PushObjectActionState(new PushObjectActionStateInfo(_inputBinder.gameObject, _pushableObject.gameObject, _pushSocket));

            actionState.Start();

            Assert.IsTrue(_inputBinder.IsHandlerOfTypeRegistered <InteractionInputHandler>());
        }
        public void End_SetsOwnerParentToNull()
        {
            var actionState = new PushObjectActionState(new PushObjectActionStateInfo(_inputBinder.gameObject, _pushableObject.gameObject, _pushSocket));

            actionState.Start();
            actionState.End();

            Assert.IsNull(_inputBinder.gameObject.transform.parent);
        }
        public void End_UnregistersPushObjectInputHandler()
        {
            var actionState = new PushObjectActionState(new PushObjectActionStateInfo(_inputBinder.gameObject, _pushableObject.gameObject, _pushSocket));

            actionState.Start();

            actionState.End();

            Assert.IsTrue(_inputBinder.IsHandlerOfTypeUnregistered <PushObjectInputHandler>());
        }
        public void End_SetsRigidbodyConstraintsToPrior()
        {
            const RigidbodyConstraints2D expectedConstraints = RigidbodyConstraints2D.FreezePositionY;

            _rigidbody.constraints = expectedConstraints;

            var actionState = new PushObjectActionState(new PushObjectActionStateInfo(_inputBinder.gameObject, _pushableObject.gameObject, _pushSocket));

            actionState.Start();
            actionState.End();

            Assert.AreEqual(expectedConstraints, _rigidbody.constraints);
        }
        public void Creation_HasPushObjectID()
        {
            var actionState = new PushObjectActionState(new PushObjectActionStateInfo());

            Assert.AreEqual(EActionStateId.PushObject, actionState.ActionStateId);
        }