package jalview.structure; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertTrue; import jalview.datamodel.AlignedCodonFrame; import java.util.HashSet; import java.util.Set; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class StructureSelectionManagerTest { private StructureSelectionManager ssm; @BeforeMethod(alwaysRun = true) public void setUp() { ssm = new StructureSelectionManager(); } @Test(groups ={ "Functional" }) public void testRegisterMapping() { AlignedCodonFrame acf1 = new AlignedCodonFrame(); AlignedCodonFrame acf2 = new AlignedCodonFrame(); ssm.registerMapping(acf1); assertEquals(1, ssm.seqmappings.size()); assertTrue(ssm.seqmappings.contains(acf1)); ssm.registerMapping(acf2); assertEquals(2, ssm.seqmappings.size()); assertTrue(ssm.seqmappings.contains(acf1)); assertTrue(ssm.seqmappings.contains(acf2)); /* * Re-adding the first mapping does nothing */ ssm.registerMapping(acf1); assertEquals(2, ssm.seqmappings.size()); assertTrue(ssm.seqmappings.contains(acf1)); assertTrue(ssm.seqmappings.contains(acf2)); } @Test(groups ={ "Functional" }) public void testRegisterMappings() { AlignedCodonFrame acf1 = new AlignedCodonFrame(); AlignedCodonFrame acf2 = new AlignedCodonFrame(); AlignedCodonFrame acf3 = new AlignedCodonFrame(); Set set1 = new HashSet(); set1.add(acf1); set1.add(acf2); Set set2 = new HashSet(); set2.add(acf2); set2.add(acf3); /* * Add both sets twice; each mapping should be added once only */ ssm.registerMappings(set1); ssm.registerMappings(set1); ssm.registerMappings(set2); ssm.registerMappings(set2); assertEquals(3, ssm.seqmappings.size()); assertTrue(ssm.seqmappings.contains(acf1)); assertTrue(ssm.seqmappings.contains(acf2)); assertTrue(ssm.seqmappings.contains(acf3)); } }