/** * This method test the 'return copy of enzyme' functionality when requesting an enzyme instance. */ public void testCopyOfEnzyme() { final String inputFile = TestCaseLM.getFullFilePath("enzymes_test.txt").replace("%20", " "); // Try it for a regular Enzyme. try { MascotEnzymeReader mer = new MascotEnzymeReader(inputFile); Enzyme mod = mer.getEnzyme(mer.getEnzymeNames()[0]); int mc = mod.getMiscleavages(); String cleave = new String(mod.getCleavage()); mod.setMiscleavages(mc + 1); mod.setCleavage(cleave + "H"); // Make sure 'mod' has changed. Assert.assertEquals(mc + 1, mod.getMiscleavages()); Assert.assertEquals(cleave + "H", new String(mod.getCleavage())); // Now get another copy of the same enzyme, and see if it has retained the original values. Enzyme original = mer.getEnzyme(mer.getEnzymeNames()[0]); Assert.assertEquals(mc, original.getMiscleavages()); Assert.assertEquals(cleave, new String(original.getCleavage())); } catch (IOException ioe) { fail( "IOException while testing whether a received Enzyme is in fact a copy: '" + ioe.getMessage() + "'."); } // Try it for a DualEnzyme. try { MascotEnzymeReader mer = new MascotEnzymeReader(inputFile); DualEnzyme mod = (DualEnzyme) mer.getEnzyme("dualTrypCathep"); int mc = mod.getMiscleavages(); String ntermCleave = new String(mod.getCleavage(DualEnzyme.NTERMINAL)); String ctermCleave = new String(mod.getCleavage(DualEnzyme.CTERMINAL)); mod.setMiscleavages(mc + 1); mod.setCleavage(ntermCleave + "H", DualEnzyme.NTERMINAL); mod.setCleavage(ctermCleave + "W", DualEnzyme.CTERMINAL); // Make sure 'mod' has changed. Assert.assertEquals(mc + 1, mod.getMiscleavages()); Assert.assertEquals(ntermCleave + "H", new String(mod.getCleavage(DualEnzyme.NTERMINAL))); Assert.assertEquals(ctermCleave + "W", new String(mod.getCleavage(DualEnzyme.CTERMINAL))); // Now get another copy of the same enzyme, and see if it has retained the original values. DualEnzyme original = (DualEnzyme) mer.getEnzyme("dualTrypCathep"); Assert.assertEquals(mc, original.getMiscleavages()); Assert.assertEquals(ntermCleave, new String(original.getCleavage(DualEnzyme.NTERMINAL))); Assert.assertEquals(ctermCleave, new String(original.getCleavage(DualEnzyme.CTERMINAL))); } catch (IOException ioe) { fail( "IOException while testing whether a received Enzyme is in fact a copy: '" + ioe.getMessage() + "'."); } // Try it for a RegExEnzyme. try { MascotEnzymeReader mer = new MascotEnzymeReader(inputFile); RegExEnzyme mod = (RegExEnzyme) mer.getEnzyme("regexTrypCathep2"); int mc = mod.getMiscleavages(); String cleave = new String(mod.getCleavage()); mod.setMiscleavages(mc + 1); mod.setCleavage(cleave + "H"); // Make sure 'mod' has changed. Assert.assertEquals(mc + 1, mod.getMiscleavages()); Assert.assertEquals(cleave + "H", new String(mod.getCleavage())); // Now get another copy of the same enzyme, and see if it has retained the original values. Enzyme original = mer.getEnzyme("regexTrypCathep2"); Assert.assertEquals(mc, original.getMiscleavages()); Assert.assertEquals(cleave, new String(original.getCleavage())); } catch (IOException ioe) { fail( "IOException while testing whether a received Enzyme is in fact a copy: '" + ioe.getMessage() + "'."); } }