*/
package com.intellij.execution.testframework.sm.runner;
+import com.intellij.execution.testframework.ui.BaseTestProxyNodeDescriptor;
import com.intellij.ide.util.treeView.NodeDescriptor;
import com.intellij.openapi.project.Project;
/**
* @author: Roman Chernyatchik
*/
-public class SMTRunnerNodeDescriptor extends NodeDescriptor<SMTestProxy>
-{
- private final SMTestProxy myElement;
-
+public class SMTRunnerNodeDescriptor extends BaseTestProxyNodeDescriptor<SMTestProxy> {
public SMTRunnerNodeDescriptor(final Project project,
- final SMTestProxy element,
- final NodeDescriptor<SMTestProxy> parentDesc) {
- super(project, parentDesc);
- myElement = element;
- myName = element.getName();
- }
-
- @Override
- public boolean update() {
- return false;
- }
-
- @Override
- public SMTestProxy getElement() {
- return myElement;
- }
-
- public boolean expandOnDoubleClick() {
- return !myElement.isLeaf();
- }
-
- @Override
- public String toString() {
- return myName;
+ final SMTestProxy testProxy,
+ final NodeDescriptor<SMTestProxy> parentDesc) {
+ super(project, testProxy, parentDesc);
}
}
}
public void setTestsComparator(boolean sortAlphabetically) {
- //TODO: better comparator
setNodeDescriptorComparator(sortAlphabetically ? AlphaComparator.INSTANCE : null);
queueUpdate();
}
--- /dev/null
+/*
+ * Copyright 2000-2012 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.intellij.execution.testframework.ui;
+
+import com.intellij.execution.testframework.AbstractTestProxy;
+import com.intellij.ide.util.treeView.NodeDescriptor;
+import com.intellij.openapi.project.Project;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * @author Roman.Chernyatchik
+ */
+public class BaseTestProxyNodeDescriptor<T extends AbstractTestProxy> extends NodeDescriptor<T> {
+ @NotNull private final T myTestProxy;
+
+ public BaseTestProxyNodeDescriptor(@Nullable final Project project,
+ @NotNull final T testProxy,
+ @Nullable final NodeDescriptor parentDescriptor) {
+ super(project, parentDescriptor);
+ myTestProxy = testProxy;
+ myName = testProxy.getName();
+ }
+
+ @Override
+ public int getWeight() {
+ return myTestProxy.isLeaf() ? 5 : 10;
+ }
+
+ public String getName() {
+ return myTestProxy.getName();
+ }
+
+ public boolean expandOnDoubleClick() {
+ return !getElement().isLeaf();
+ }
+
+ @Override
+ public boolean update() {
+ return false;
+ }
+
+ @Override
+ public T getElement() {
+ return myTestProxy;
+ }
+
+ @Override
+ public String toString() {
+ return myName;
+ }
+}
package com.intellij.execution.junit2.ui.model;
import com.intellij.execution.junit2.TestProxy;
+import com.intellij.execution.testframework.ui.BaseTestProxyNodeDescriptor;
import com.intellij.ide.util.treeView.NodeDescriptor;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
-class TestProxyDescriptor extends NodeDescriptor {
+class TestProxyDescriptor extends BaseTestProxyNodeDescriptor<TestProxy> {
private static final Logger LOG = Logger.getInstance("#com.intellij.execution.junit2.ui.model.TestProxyDescriptor");
private static final int STATE_UP_TO_DATE = 0;
private static final int STATE_OUT_OF_DATE = 1;
private static final int STATE_UNKNOWN = 2;
- private final TestProxy myTest;
private int myTimestamp = -1;
private int myLastChildCount = -1;
//private int myNeedsUpdate = STATE_UNKNOWN;
private int myLastMagnitude = -1;
public TestProxyDescriptor(final Project project, final NodeDescriptor parentDescriptor, final TestProxy test) {
- super(project, parentDescriptor);
- myTest = test;
- myTimestamp = myTest.getStateTimestamp();
- myLastChildCount = myTest.getChildCount();
+ super(project, test, parentDescriptor);
+ myTimestamp = test.getStateTimestamp();
+ myLastChildCount = test.getChildCount();
myName = test.toString();
}
public boolean update() {
- boolean needsUpdate = checkNeedsUpdate();
- myTimestamp = myTest.getStateTimestamp();
- myLastChildCount = myTest.getChildCount();
+ final TestProxy test = getElement();
+
+ boolean needsUpdate = checkNeedsUpdate(test);
+ myTimestamp = test.getStateTimestamp();
+ myLastChildCount = test.getChildCount();
return needsUpdate;
}
- private boolean checkNeedsUpdate() {
+ private boolean checkNeedsUpdate(TestProxy test) {
+
int needsUpdate = STATE_UP_TO_DATE;
- if (myTest.getChildCount() != myLastChildCount) {
+ if (test.getChildCount() != myLastChildCount) {
needsUpdate = STATE_OUT_OF_DATE;
}
- else if (myTest.getStateTimestamp() != myTimestamp) needsUpdate = STATE_UNKNOWN;
+ else if (test.getStateTimestamp() != myTimestamp) needsUpdate = STATE_UNKNOWN;
if (needsUpdate == STATE_UNKNOWN) {
- final int magnitude = myTest.getState().getMagnitude();
+ final int magnitude = test.getState().getMagnitude();
needsUpdate = magnitude == myLastMagnitude ? STATE_UP_TO_DATE : STATE_OUT_OF_DATE;
myLastMagnitude = magnitude;
}
LOG.error(String.valueOf(needsUpdate));
return true;
}
-
- public Object getElement() {
- return myTest;
- }
}
*/
package com.theoryinpractice.testng.model;
+import com.intellij.execution.testframework.ui.BaseTestProxyNodeDescriptor;
import com.intellij.ide.util.treeView.NodeDescriptor;
import com.intellij.openapi.project.Project;
/**
* @author Hani Suleiman Date: Jul 28, 2005 Time: 10:44:26 PM
*/
-public class TestNodeDescriptor extends NodeDescriptor<TestProxy>
-{
- private final TestProxy node;
-
- public TestNodeDescriptor(Project project, TestProxy node, NodeDescriptor<TestProxy> parent) {
- super(project, parent);
- this.node = node;
- myName = node.getName();
- }
-
- @Override
- public boolean update() {
- return false;
- }
-
- @Override
- public TestProxy getElement() {
- return node;
- }
-
- public boolean expandOnDoubleClick() {
- return !node.isResult();
- }
+public class TestNodeDescriptor extends BaseTestProxyNodeDescriptor<TestProxy> {
+ public TestNodeDescriptor(Project project, TestProxy node, NodeDescriptor<TestProxy> parent) {
+ super(project, node, parent);
+ }
}