JAL-3210 Barebones gradle/buildship/eclipse. See README
[jalview.git] / test / jalview / workers / AlignCalcManagerTest.java
diff --git a/test/jalview/workers/AlignCalcManagerTest.java b/test/jalview/workers/AlignCalcManagerTest.java
deleted file mode 100644 (file)
index 9cc4fc2..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *  
- * Jalview is distributed in the hope that it will be useful, but 
- * WITHOUT ANY WARRANTY; without even the implied warranty 
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
- * PURPOSE.  See the GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
-package jalview.workers;
-
-import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertFalse;
-import static org.testng.AssertJUnit.assertTrue;
-
-import jalview.api.AlignCalcManagerI;
-import jalview.api.AlignCalcWorkerI;
-import jalview.api.FeatureRenderer;
-import jalview.datamodel.Alignment;
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.Annotation;
-import jalview.datamodel.Sequence;
-import jalview.datamodel.SequenceI;
-import jalview.gui.AlignFrame;
-import jalview.gui.JvOptionPane;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-public class AlignCalcManagerTest
-{
-
-  @BeforeClass(alwaysRun = true)
-  public void setUpJvOptionPane()
-  {
-    JvOptionPane.setInteractiveMode(false);
-    JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
-  }
-
-  private AlignFrame alignFrame;
-
-  /**
-   * Test the method that removes a worker associated with an annotation,
-   * provided the worker is marked as 'deletable' (some workers should continue
-   * to run even when their results are no longer displayed)
-   */
-  @Test(groups = "Functional")
-  public void testRemoveWorkerForAnnotation()
-  {
-    AlignCalcManagerI acm = alignFrame.getViewport().getCalcManager();
-    final AlignmentAnnotation ann1 = new AlignmentAnnotation("Ann1",
-            "desc", new Annotation[] {});
-    final AlignmentAnnotation ann2 = new AlignmentAnnotation("Ann2",
-            "desc", new Annotation[] {});
-
-    /*
-     * make two workers for ann1, one deletable, one not
-     * and no worker for ann2
-     */
-    AlignCalcWorkerI worker1 = makeWorker(ann1, true);
-    AlignCalcWorkerI worker2 = makeWorker(ann1, false);
-
-    /*
-     * The new workers will get run each in their own thread.
-     * We can't tell here whether they have finished, or not yet started.
-     * They have to finish to be 'seen' by getRegisteredWorkersOfClass()
-     *   registerWorker adds to the 'restartable' list but
-     *   getRegisteredWorkers reads from the 'canUpdate' list
-     *   (which is only updated after a worker has run) - why?
-     * So just give workers time to start and finish
-     */
-    synchronized (this)
-    {
-      try
-      {
-        wait(100);
-      } catch (InterruptedException e)
-      {
-        //
-      }
-    }
-
-    List<AlignCalcWorkerI> workers = acm
-            .getRegisteredWorkersOfClass(worker1.getClass());
-    assertEquals(2, workers.size());
-    assertTrue(workers.contains(worker1));
-    assertTrue(workers.contains(worker2));
-    assertFalse(acm.isDisabled(worker1));
-    assertFalse(acm.isDisabled(worker2));
-
-    /*
-     * remove workers for ann2 (there aren't any)
-     */
-    acm.removeWorkerForAnnotation(ann2);
-    assertTrue(acm.getRegisteredWorkersOfClass(worker1.getClass())
-            .contains(worker1));
-    assertTrue(acm.getRegisteredWorkersOfClass(worker1.getClass())
-            .contains(worker2));
-    assertFalse(acm.isDisabled(worker1));
-    assertFalse(acm.isDisabled(worker2));
-
-    /*
-     * remove worker2 for ann1
-     * - should delete worker1 but not worker2
-     */
-    acm.removeWorkerForAnnotation(ann1);
-    assertEquals(1, acm.getRegisteredWorkersOfClass(worker1.getClass())
-            .size());
-    assertTrue(acm.getRegisteredWorkersOfClass(worker1.getClass())
-            .contains(worker2));
-    assertFalse(acm.isDisabled(worker1));
-    assertFalse(acm.isDisabled(worker2));
-  }
-
-  /**
-   * Make a worker linked to the given annotation
-   * 
-   * @param ann
-   * @param deletable
-   * @return
-   */
-  AnnotationWorker makeWorker(final AlignmentAnnotation ann,
-          final boolean deletable)
-  {
-    AnnotationProviderI annotationProvider = new AnnotationProviderI()
-    {
-      @Override
-      public List<AlignmentAnnotation> calculateAnnotation(AlignmentI al,
-              FeatureRenderer fr)
-      {
-        return Collections.singletonList(ann);
-      }
-    };
-    return new AnnotationWorker(alignFrame.getViewport(),
-            alignFrame.alignPanel, annotationProvider)
-    {
-      @Override
-      public boolean isDeletable()
-      {
-        return deletable;
-      }
-
-      @Override
-      public boolean involves(AlignmentAnnotation ann1)
-      {
-        return ann == ann1;
-      }
-    };
-  }
-
-  @BeforeMethod(alwaysRun = true)
-  public void setUp()
-  {
-    AlignmentI al = new Alignment(new SequenceI[] { new Sequence("Seq1",
-            "ABC") });
-    al.setDataset(null);
-    alignFrame = new AlignFrame(al, 3, 1);
-  }
-}