private SeriesDragDrop GetDraggable(
            float positionX       = 0,
            float positionY       = 0,
            float width           = 0,
            float height          = 0,
            string name           = "draggable",
            SeriesDragDrop parent = null,
            bool canHaveChildren  = true,
            bool canHaveParents   = true)
        {
            var gameObject = new GameObject(name, new System.Type[] { typeof(RectTransform) });
            var dragger    = gameObject.AddComponent <SeriesDragDrop>();

            gameObject.AddComponent <Image>();
            dragger.transform.position = new Vector3(positionX, positionY, 0);
            var testBehavior = gameObject.AddComponent <TestDraggableBehavior>();

            testBehavior.canChild  = canHaveChildren;
            testBehavior.canParent = canHaveParents;

            dragger.Start();

            var rectTransform = gameObject.GetComponent <RectTransform>();

            rectTransform.sizeDelta = new Vector2(width, height);

            if (parent)
            {
                dragger.parent            = parent;
                parent.nextExecutingChild = dragger;
            }

            return(dragger);
        }
 private void AssertParentChild(SeriesDragDrop parent, SeriesDragDrop child)
 {
     Assert.AreEqual(child, parent.nextExecutingChild);
     Assert.AreEqual(parent, child.parent);
 }