/************************************************************************* * * * EJBCA Community: The OpenSource Certificate Authority * * * * This software is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or any later version. * * * * See terms of license at gnu.org. * * * *************************************************************************/ package org.ejbca.core.ejb.hardtoken; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.Arrays; import org.apache.log4j.Logger; import org.cesecore.RoleUsingTestCase; import org.cesecore.authentication.tokens.AuthenticationToken; import org.cesecore.authorization.AuthorizationDeniedException; import org.cesecore.mock.authentication.tokens.TestAlwaysAllowLocalAuthenticationToken; import org.cesecore.mock.authentication.tokens.TestX509CertificateAuthenticationToken; import org.cesecore.roles.Role; import org.cesecore.roles.management.RoleInitializationSessionRemote; import org.cesecore.roles.management.RoleSessionRemote; import org.cesecore.util.EjbRemoteHelper; import org.ejbca.core.model.authorization.AccessRulesConstants; import org.ejbca.core.model.hardtoken.HardTokenIssuer; import org.ejbca.core.model.hardtoken.HardTokenIssuerInformation; import org.junit.After; import org.junit.Before; import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; /** * Tests the Hard Token Issuer entity bean. * * @version $Id: HardTokenIssuerTest.java 25499 2017-03-15 17:05:25Z jeklund $ */ @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class HardTokenIssuerTest extends RoleUsingTestCase { private static Logger log = Logger.getLogger(HardTokenIssuerTest.class); private HardTokenSessionRemote hardTokenSession = EjbRemoteHelper.INSTANCE.getRemoteSession(HardTokenSessionRemote.class); private RoleInitializationSessionRemote roleInitializationSession = EjbRemoteHelper.INSTANCE.getRemoteSession(RoleInitializationSessionRemote.class, EjbRemoteHelper.MODULE_TEST); private RoleSessionRemote roleSession = EjbRemoteHelper.INSTANCE.getRemoteSession(RoleSessionRemote.class); private static final AuthenticationToken internalAdmin = new TestAlwaysAllowLocalAuthenticationToken("HardTokenIssuerTest"); @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void test01AddHardTokenIssuer() throws Exception { log.trace(">test01AddHardTokenIssuer()"); boolean ret = false; HardTokenIssuer issuer = new HardTokenIssuer(); issuer.setDescription("TEST"); ret = hardTokenSession.addHardTokenIssuer(internalAdmin, "TEST", 3, issuer); assertTrue("Creating Hard Token Issuer failed", ret); HardTokenIssuerInformation data = hardTokenSession.getHardTokenIssuerInformation("TEST"); assertEquals("TEST", data.getHardTokenIssuer().getDescription()); log.trace("test02RenameHardTokenIssuer()"); boolean ret = false; ret = hardTokenSession.renameHardTokenIssuer(internalAdmin, "TEST", "TEST2", 4); assertTrue("Renaming Hard Token Issuer failed", ret); HardTokenIssuerInformation data = hardTokenSession.getHardTokenIssuerInformation("TEST2"); assertEquals("TEST", data.getHardTokenIssuer().getDescription()); data = hardTokenSession.getHardTokenIssuerInformation("TEST"); assertNull(data); log.trace("test03CloneHardTokenIssuer()"); // First test the clone operation on the object (pure JUnit test) HardTokenIssuer issuer = new HardTokenIssuer(); issuer.setDescription("TEST"); HardTokenIssuer issuer2 = (HardTokenIssuer)issuer.clone(); assertEquals("TEST", issuer.getDescription()); assertEquals("TEST", issuer2.getDescription()); issuer.setDescription("TEST2"); assertEquals("TEST2", issuer.getDescription()); assertEquals("TEST", issuer2.getDescription()); // Next do the test using the session bean boolean ret = false; ret = hardTokenSession.cloneHardTokenIssuer(internalAdmin, "TEST2", "TEST", 4); assertTrue("Cloning hard token issuer failed", ret); HardTokenIssuerInformation data = hardTokenSession.getHardTokenIssuerInformation("TEST2"); assertEquals("TEST", data.getHardTokenIssuer().getDescription()); data = hardTokenSession.getHardTokenIssuerInformation("TEST"); assertEquals("TEST", data.getHardTokenIssuer().getDescription()); log.trace("test04EditHardTokenIssuer()"); boolean ret = false; HardTokenIssuerInformation issuerdata = hardTokenSession.getHardTokenIssuerInformation("TEST"); assertTrue("Retrieving HardTokenIssuer failed", issuerdata.getHardTokenIssuer().getDescription().equals("TEST")); issuerdata.getHardTokenIssuer().setDescription("TEST2"); ret = hardTokenSession.changeHardTokenIssuer(internalAdmin, "TEST", issuerdata.getHardTokenIssuer()); assertTrue("Editing HardTokenIssuer failed", ret); HardTokenIssuerInformation data = hardTokenSession.getHardTokenIssuerInformation("TEST"); assertEquals("TEST2", data.getHardTokenIssuer().getDescription()); log.trace("test05removeHardTokenIssuers()"); try { hardTokenSession.removeHardTokenIssuer(internalAdmin, "TEST"); hardTokenSession.removeHardTokenIssuer(internalAdmin, "TEST2"); } catch (Exception pee) { fail("Removing HardTokenIssuers failed: " + pee.getMessage()); } log.trace("