/* * codjo.net * * Common Apache License 2.0 */ package triggers; import net.codjo.tokio.TokioFixture; import java.sql.SQLException; import junit.framework.TestCase; /** * Test du trigger de suppression de la table PM_CLASSIFICATION_STRUCTURE. * * @version $Revision: 1.3 $ */ public class PmClassStructureDTest extends TestCase { private TokioFixture tokioFixture = new TokioFixture(PmClassStructureDTest.class); public void test_delete_last_sleeve() throws Exception { tokioFixture.insertInputInDb("SUPPRESSION_DERNIERE_POCHE", false); tokioFixture.executeQuery("DELETE FROM PM_CLASSIFICATION_STRUCTURE WHERE SLEEVE_ID=112"); tokioFixture.assertAllOutputs("SUPPRESSION_DERNIERE_POCHE"); } public void test_delete_first_sleeve() throws Exception { tokioFixture.insertInputInDb("SUPPRESSION_PREMIERE_POCHE", false); tokioFixture.executeQuery("DELETE FROM PM_CLASSIFICATION_STRUCTURE WHERE SLEEVE_ID=111"); tokioFixture.assertAllOutputs("SUPPRESSION_PREMIERE_POCHE"); } public void test_delete_dustbin_sleeve() throws Exception { tokioFixture.insertInputInDb("SUPPRESSION_POCHE_FOURETOUT", false); tokioFixture.executeQuery("DELETE FROM PM_CLASSIFICATION_STRUCTURE WHERE SLEEVE_ID=120"); tokioFixture.assertAllOutputs("SUPPRESSION_POCHE_FOURETOUT"); } public void test_delete_noeud() throws Exception { tokioFixture.insertInputInDb("SUPPRESSION_NOEUD", false); tokioFixture.executeQuery("DELETE FROM PM_CLASSIFICATION_STRUCTURE WHERE SLEEVE_ID=110"); tokioFixture.assertAllOutputs("SUPPRESSION_NOEUD"); } public void test_delete_include() throws Exception { tokioFixture.insertInputInDb("SUPPRESSION_AVEC_INCLUDE", false); try { tokioFixture.executeQuery("DELETE FROM PM_CLASSIFICATION_STRUCTURE WHERE SLEEVE_ID=130"); fail(); } catch (SQLException e) { assertEquals("Vous ne pouvez pas supprimer la poche 'PLUS DE 100 KEUR' " + "car elle est utilis�e dans la poche 'PLUS DE 100 KEUR' de l'axe 'R�partition par fourchettes de co�ts'.", e.getLocalizedMessage()); } tokioFixture.assertAllOutputs("SUPPRESSION_AVEC_INCLUDE"); } public void test_delete_include_recursif() throws Exception { tokioFixture.insertInputInDb("SUPPRESSION_AVEC_INCLUDE_RECURSIF", false); try { tokioFixture.executeQuery("DELETE FROM PM_CLASSIFICATION_STRUCTURE WHERE SLEEVE_ID=130"); fail(); } catch (SQLException e) { assertEquals("Vous ne pouvez pas supprimer la poche 'PLUS DE 100 KEUR' " + "car elle est utilis�e dans la poche 'PLUS DE 100 KEUR' de l'axe 'R�partition par fourchettes de co�ts'.", e.getLocalizedMessage()); } try { tokioFixture.executeQuery("DELETE FROM PM_CLASSIFICATION_STRUCTURE WHERE SLEEVE_ID=110"); fail(); } catch (SQLException e) { assertEquals("Vous ne pouvez pas supprimer la poche 'PLUS DE 100 KEUR' " + "car elle est utilis�e dans la poche 'PLUS DE 100 KEUR' de l'axe 'Axe 3'.", e.getLocalizedMessage()); } tokioFixture.assertAllOutputs("SUPPRESSION_AVEC_INCLUDE_RECURSIF"); } @Override protected void setUp() throws Exception { tokioFixture.doSetUp(); tokioFixture.insertInputInDb("common", true); } @Override protected void tearDown() throws Exception { tokioFixture.doTearDown(); } }