private void RunClass()
        {
            foreach (var method in classNode.GetChildrenOfType <MethodNode>())
            {
                method.ResetTestState();
            }

            PlayModeTestRunner.RunTestByDoubleClick(
                PlayModeTestRunner.SpecificTestType.Class,
                classNode);
        }
Beispiel #2
0
        private void InitNodeView()
        {
            var rootView = new RootView(rootNode, selectedNode);

            rootNode.SetView(rootView);

            foreach (var classNode in rootNode.GetChildrenOfType <ClassNode>())
            {
                var view = new ClassNodeView(classNode, selectedNode, currentPlayingTest);
                classNode.SetView(view);
            }

            foreach (var methodNode in AllMethodNodes)
            {
                var view = new MethodNodeView(methodNode, selectedNode, currentPlayingTest);
                methodNode.SetView(view);
            }
        }
Beispiel #3
0
        private void Init()
        {
            if (rootNode == null)
            {
                rootNode = PlayModeTestRunner.TestsRootNode;
                if (rootNode == null)
                {
                    return;
                }
                currentPlayingTest = PlayModeTestRunner.CurrentPlayingMethodNode;

                rootNode.StateUpdated += CalculateAllTestsResults;
                AllMethodNodes         = rootNode.GetChildrenOfType <MethodNode>();

                string oldFilterValue = String.Empty;
                if (filter != null)
                {
                    oldFilterValue = filter.FilterString;
                }
                filter       = new Filter(AllMethodNodes);
                selectedNode = new SelectedNode(rootNode);

                InitNodeView();
                filter.UpdateFilter(oldFilterValue);

                typesReordableList = new ReorderableList(PlayModeTestRunner.BaseTypes, null, false, true, true, true);
                typesReordableList.drawHeaderCallback = rect => { EditorGUI.LabelField(rect, "Base classes"); };

                typesReordableList.elementHeightCallback += index => EditorGUIUtility.singleLineHeight * 1.5f;

                typesReordableList.drawElementBackgroundCallback = (rect, index, active, focused) =>
                {
                    const int offset = 2;

                    var oldColor = GUI.color;
                    if (active)
                    {
                        GUI.color = new Color(255f / 255f, 200f / 255f, 200f / 255f);
                    }
                    ;
                    GUI.Box(new Rect(rect.x + offset * 2, rect.y + offset / 2, rect.width - offset * 4, rect.height - offset), "");
                    GUI.color = oldColor;
                };

                typesReordableList.onAddDropdownCallback = (Rect buttonRect, ReorderableList list) =>
                {
                    if (window != null)
                    {
                        window.Close();
                    }
                    window         = CreateInstance <AddBaseClassWindow>();
                    window.Result += s =>
                    {
                        if (!string.IsNullOrEmpty(s))
                        {
                            if (!list.list.Contains(s))
                            {
                                list.list.Add(s);
                            }
                        }
                    };
                    window.ShowAuxWindow();
                };

                typesReordableList.onChangedCallback += list =>
                {
                    //todo recalculate tests
                    SetSerializedTestsDirty();
                    editorUpdateEnabledForFrames = 10;
                };
                typesReordableList.drawElementCallback += (rect, index, active, focused) =>
                {
                    if (PlayModeTestRunner.BaseTypes.Count == 0)
                    {
                        rootNode = null;
                        return;
                    }
                    var type = PlayModeTestRunner.BaseTypes[index];
                    rect.y += 3;
                    GUI.Label(rect, type);
                };
            }
        }