Extend step-by-step deletion test
[cdmlib.git] / cdmlib-services / src / test / java / eu / etaxonomy / cdm / api / service / SecurityTest.java
index 1ef37af745333ecb4f7d4b2919fac5a39f9a144f..1c56ab3bbd056f8c846d5f59637b450e0e5ff9f6 100644 (file)
@@ -12,6 +12,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;\r
 import static org.junit.Assert.assertTrue;\r
 \r
+import java.io.FileNotFoundException;\r
 import java.util.Collection;\r
 import java.util.EnumSet;\r
 import java.util.HashSet;\r
@@ -34,16 +35,14 @@ import org.springframework.security.core.Authentication;
 import org.springframework.security.core.GrantedAuthority;\r
 import org.springframework.security.core.context.SecurityContext;\r
 import org.springframework.security.core.context.SecurityContextHolder;\r
-import org.springframework.transaction.PlatformTransactionManager;\r
 import org.unitils.database.annotations.TestDataSource;\r
 import org.unitils.dbunit.annotation.DataSet;\r
 import org.unitils.spring.annotation.SpringBean;\r
 import org.unitils.spring.annotation.SpringBeanByType;\r
 \r
+import com.mchange.util.AssertException;\r
+\r
 import sun.security.provider.PolicyParser.ParsingException;\r
-import eu.etaxonomy.cdm.api.service.DeleteResult.DeleteStatus;\r
-import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;\r
-import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;\r
 import eu.etaxonomy.cdm.database.PermissionDeniedException;\r
 import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;\r
 import eu.etaxonomy.cdm.model.common.User;\r
@@ -790,7 +789,7 @@ public class SecurityTest extends AbstractSecurityTestBase{
         Taxon taxon = (Taxon)taxonService.load(UUID_ACHERONTINII);\r
         try{\r
            // try {\r
-               DeleteResult result = taxonService.deleteTaxon(taxon, null, null);\r
+               DeleteResult result = taxonService.deleteTaxon(taxon.getUuid(), null, null);\r
             /*} catch (DataChangeNoRollbackException e) {\r
                 Assert.fail();\r
             }*/\r
@@ -828,9 +827,11 @@ public class SecurityTest extends AbstractSecurityTestBase{
         context.setAuthentication(authentication);\r
 \r
         Taxon taxon = (Taxon)taxonService.load(UUID_LACTUCA);\r
-        DeleteResult result = taxonService.deleteTaxon(taxon, null, null);\r
-        if (!result.isError()) {\r
-               Assert.fail();\r
+        try{\r
+        DeleteResult result = taxonService.deleteTaxon(taxon.getUuid(), null, null);\r
+        Assert.fail();\r
+        }catch(PermissionDeniedException e){\r
+               \r
         }\r
        endTransaction();\r
        startNewTransaction();\r
@@ -926,8 +927,9 @@ public class SecurityTest extends AbstractSecurityTestBase{
         RuntimeException securityException = null;\r
 \r
         Taxon t_acherontia_lachesis = (Taxon)taxonService.load(ACHERONTIA_LACHESIS_UUID);\r
+        UUID name_acherontia_lachesis_uuid = t_acherontia_lachesis.getName().getUuid();\r
         Taxon t_acherontia_styx = (Taxon)taxonService.load(UUID_ACHERONTIA_STYX);\r
-\r
+        int countSynsBefore = t_acherontia_styx.getSynonyms().size();\r
 \r
         TaxonNode n_acherontia_lachesis = t_acherontia_lachesis.getTaxonNodes().iterator().next();\r
         TaxonNode n_acherontia_styx = t_acherontia_styx.getTaxonNodes().iterator().next();\r
@@ -935,12 +937,11 @@ public class SecurityTest extends AbstractSecurityTestBase{
         int numOfSynonymsBefore_styx = t_acherontia_styx.getSynonyms().size();\r
         int numOfSynonymsBefore_lachesis = t_acherontia_lachesis.getSynonyms().size();\r
 \r
-        UUID synonymUuid = null; // UUID.randomUUID();\r
-\r
+       \r
         try {\r
-            Synonym synonym = taxonNodeService.makeTaxonNodeASynonymOfAnotherTaxonNode(n_acherontia_lachesis, n_acherontia_styx, SynonymRelationshipType.SYNONYM_OF(), null, null);\r
-            synonymUuid = synonym.getUuid();\r
-            taxonService.saveOrUpdate(synonym);\r
+            DeleteResult result = taxonNodeService.makeTaxonNodeASynonymOfAnotherTaxonNode(n_acherontia_lachesis, n_acherontia_styx, SynonymRelationshipType.SYNONYM_OF(), null, null);\r
+//            synonymUuid = synonym.getUuid();\r
+//            taxonService.saveOrUpdate(synonym);\r
             commitAndStartNewTransaction(null);\r
         } catch (RuntimeException e){\r
             securityException = findSecurityRuntimeException(e);\r
@@ -959,8 +960,9 @@ public class SecurityTest extends AbstractSecurityTestBase{
 \r
         // reload from db and check assertions\r
         t_acherontia_styx = (Taxon)taxonService.load(UUID_ACHERONTIA_STYX);\r
-        Assert.assertEquals("Acherontia styx now must have a synonym", numOfSynonymsBefore_styx + numOfSynonymsBefore_lachesis +  1, t_acherontia_styx.getSynonyms().size());\r
-        Assert.assertTrue("Acherontia lachesis now must be a synonym", taxonService.load(synonymUuid) instanceof Synonym);\r
+        Assert.assertEquals(numOfSynonymsBefore_styx +1 + numOfSynonymsBefore_lachesis, t_acherontia_styx.getSynonyms().size());\r
+        \r
+        Assert.assertNotNull(nameService.load(name_acherontia_lachesis_uuid) );\r
         Assert.assertNull("The old TaxonNode should no longer exist", taxonNodeService.find(n_acherontia_lachesis.getUuid()));\r
     }\r
 \r
@@ -1206,4 +1208,13 @@ public class SecurityTest extends AbstractSecurityTestBase{
 \r
     }\r
 \r
+    /* (non-Javadoc)\r
+     * @see eu.etaxonomy.cdm.test.integration.CdmIntegrationTest#createTestData()\r
+     */\r
+    @Override\r
+    public void createTestDataSet() throws FileNotFoundException {\r
+        // TODO Auto-generated method stub\r
+        \r
+    }\r
+\r
 }\r