@Override
 public void changeStateOf(final TestProxy testProxy, final ObjectReader reader) {
   testProxy.setState(TestState.RUNNING_STATE);
   TestProxy parent = testProxy.getParent();
   while (parent != null) {
     final TestState state = parent.getState();
     if (state instanceof SuiteState) {
       ((SuiteState) state).setRunning(true);
     }
     parent = parent.getParent();
   }
 }
    static void complete(TestProxy testProxy) {
      final int magnitude = testProxy.getState().getMagnitude();

      TestProxy parent = testProxy.getParent();
      TestProxy child = testProxy;
      while (parent != null) {
        final List<TestProxy> children = parent.getChildren();
        final TestState parentState = parent.getState();
        if (parentState instanceof SuiteState) {
          if (!child.isInProgress() && child.equals(children.get(children.size() - 1))) {
            ((SuiteState) parentState).setRunning(false);
            parent.fireStateChanged();
            parent.flush();
          }
          ((SuiteState) parentState).updateMagnitude(magnitude);
        }
        child = parent;
        parent = parent.getParent();
      }
    }