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
import org.unitils.spring.annotation.SpringBeanByType;\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
\r
private static final Logger logger = Logger.getLogger(SecurityTest.class);\r
\r
- /**\r
- * The transaction manager to use\r
- */\r
- @SpringBeanByType\r
- PlatformTransactionManager transactionManager;\r
-\r
@SpringBeanByType\r
private ITaxonService taxonService;\r
\r
assertEquals(newName, savedName);\r
}\r
\r
- @Test\r
- public final void testUpateNameDeny() {\r
-\r
- authentication = authenticationManager.authenticate(tokenForTaxonEditor);\r
- SecurityContext context = SecurityContextHolder.getContext();\r
- context.setAuthentication(authentication);\r
-\r
- TaxonBase taxon = taxonService.find(UUID_ACHERONTIA_STYX);\r
- taxon.getName().setTitleCache("Acherontia thetis", true);\r
- Exception exception = null;\r
- try {\r
- UUID uuid = taxonService.saveOrUpdate(taxon);\r
- commitAndStartNewTransaction(null);\r
- } catch (AccessDeniedException e){\r
- logger.debug("Expected failure of evaluation.", e);\r
- exception = e;\r
- } catch (RuntimeException e){\r
- exception = findThrowableOfTypeIn(PermissionDeniedException.class, e);\r
- logger.debug("Expected failure of evaluation.", e);\r
- } finally {\r
- // needed in case saveOrUpdate was interrupted by the RuntimeException\r
- // commitAndStartNewTransaction() would raise an UnexpectedRollbackException\r
- endTransaction();\r
- startNewTransaction();\r
- }\r
- Assert.assertNotNull("must fail here!", exception);\r
- }\r
-\r
\r
@Test\r
public final void testReuseNameAllow() {\r
} catch (RuntimeException e){\r
logger.error("Unexpected failure of evaluation.", e);\r
exception = findThrowableOfTypeIn(PermissionDeniedException.class, e);\r
- } catch (DataChangeNoRollbackException e) {\r
- logger.error("Unexpected failure of evaluation.", e);\r
- exception = findThrowableOfTypeIn(PermissionDeniedException.class, e);\r
- } finally {\r
+ }finally {\r
// needed in case saveOrUpdate was interrupted by the RuntimeException\r
// commitAndStartNewTransaction() would raise an UnexpectedRollbackException\r
endTransaction();\r
} catch (RuntimeException e){\r
logger.error("Unexpected failure of evaluation.", e);\r
exception = findThrowableOfTypeIn(PermissionDeniedException.class, e);\r
- } catch (DataChangeNoRollbackException e) {\r
- logger.error("Unexpected failure of evaluation.", e);\r
- exception = findThrowableOfTypeIn(PermissionDeniedException.class, e);\r
- } finally {\r
+ } finally {\r
// needed in case saveOrUpdate was interrupted by the RuntimeException\r
// commitAndStartNewTransaction() would raise an UnexpectedRollbackException\r
endTransaction();\r
RuntimeException securityException= null;\r
\r
TaxonBase<?> taxon = taxonService.load(UUID_LACTUCA);\r
- try{\r
- taxonService.delete(taxon);\r
- commitAndStartNewTransaction(null);\r
- } catch (RuntimeException e){\r
- securityException = findSecurityRuntimeException(e);\r
- logger.error("Unexpected failure of evaluation.", e);\r
- }catch(ReferencedObjectUndeletableException e){\r
- Assert.fail();\r
- }finally {\r
- // needed in case saveOrUpdate was interrupted by the RuntimeException\r
- // commitAndStartNewTransaction() would raise an UnexpectedRollbackException\r
- endTransaction();\r
- startNewTransaction();\r
- }\r
+ taxonService.delete(taxon);\r
+ commitAndStartNewTransaction(null);\r
+ \r
+ \r
+ \r
+ \r
Assert.assertNull("evaluation must not fail since the user is permitted, CAUSE :" + (securityException != null ? securityException.getMessage() : ""), securityException);\r
// reload taxon\r
taxon = taxonService.load(UUID_LACTUCA);\r
\r
Taxon taxon = (Taxon)taxonService.load(UUID_ACHERONTINII);\r
try{\r
- try {\r
- taxonService.deleteTaxon(taxon, null, null);\r
- } catch (DataChangeNoRollbackException e) {\r
+ // try {\r
+ DeleteResult result = taxonService.deleteTaxon(taxon, null, null);\r
+ /*} catch (DataChangeNoRollbackException e) {\r
Assert.fail();\r
+ }*/\r
+ if (!result.isOk()){\r
+ Assert.fail();\r
}\r
commitAndStartNewTransaction(null);\r
} catch (RuntimeException e){\r
authentication = authenticationManager.authenticate(tokenForDescriptionEditor);\r
context.setAuthentication(authentication);\r
\r
- TaxonBase<?> taxon = taxonService.load(UUID_LACTUCA);\r
-\r
- try {\r
- taxonService.delete(taxon);\r
- commitAndStartNewTransaction(null);\r
- } catch (RuntimeException e){\r
- securityException = findSecurityRuntimeException(e);\r
- logger.debug("Expected failure of evaluation.", securityException);\r
- }catch(ReferencedObjectUndeletableException e){\r
- Assert.fail();\r
- } finally {\r
- // needed in case saveOrUpdate was interrupted by the RuntimeException\r
- // commitAndStartNewTransaction() would raise an UnexpectedRollbackException\r
- endTransaction();\r
- startNewTransaction();\r
+ Taxon taxon = (Taxon)taxonService.load(UUID_LACTUCA);\r
+ DeleteResult result = taxonService.deleteTaxon(taxon, null, null);\r
+ if (!result.isError()) {\r
+ Assert.fail();\r
}\r
+ endTransaction();\r
+ startNewTransaction();\r
+ \r
\r
- Assert.assertNotNull("evaluation must fail since the user is not permitted", securityException);\r
+ //Assert.assertNotNull("evaluation must fail since the user is not permitted", securityException);\r
// reload taxon\r
- taxon = taxonService.load(UUID_LACTUCA);\r
+ taxon = (Taxon)taxonService.load(UUID_LACTUCA);\r
+ \r
Assert.assertNotNull("The change must still exist", taxon);\r
+ Assert.assertNotNull("The name must still exist",taxon.getName());\r
}\r
\r
\r
\r
}\r
\r
- @Ignore // FIXME http://dev.e-taxonomy.eu/trac/ticket/4081 : #4081 (TaxonNodeServiceImpl.makeTaxonNodeASynonymOfAnotherTaxonNode() requires TAXONNAMEBASE.[UPDATE])\r
+// @Ignore // FIXME http://dev.e-taxonomy.eu/trac/ticket/4081 : #4081 (TaxonNodeServiceImpl.makeTaxonNodeASynonymOfAnotherTaxonNode() requires TAXONNAMEBASE.[UPDATE])\r
@Test\r
public void testAcceptedTaxonToSynomym(){\r
\r
securityException = findSecurityRuntimeException(e);\r
logger.error("Unexpected Exception ", e);\r
Assert.fail("Unexpected Exception: " + e.getMessage());\r
- } catch (DataChangeNoRollbackException e) {\r
- Assert.fail("Unexpected Exception: " + e.getMessage());\r
} finally {\r
// needed in case saveOrUpdate was interrupted by the RuntimeException\r
// commitAndStartNewTransaction() would raise an UnexpectedRollbackException\r
\r
}\r
\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.test.integration.CdmIntegrationTest#createTestData()\r
+ */\r
+ @Override\r
+ protected void createTestDataSet() throws FileNotFoundException {\r
+ // TODO Auto-generated method stub\r
+ \r
+ }\r
+\r
}\r