1 19 20 package com.sslexplorer.jdbc; 21 22 import static org.junit.Assert.fail; 23 import junit.framework.Assert; 24 25 import org.junit.AfterClass; 26 import org.junit.BeforeClass; 27 import org.junit.Test; 28 29 import com.sslexplorer.boot.PropertyClassManager; 30 import com.sslexplorer.core.CoreServlet; 31 import com.sslexplorer.properties.attributes.AbstractXMLDefinedAttributesPropertyClass; 32 import com.sslexplorer.properties.attributes.AttributeDefinition; 33 import com.sslexplorer.properties.impl.policyattributes.PolicyAttributeKey; 34 import com.sslexplorer.properties.impl.policyattributes.PolicyAttributes; 35 import com.sslexplorer.properties.impl.userattributes.UserAttributeKey; 36 import com.sslexplorer.properties.impl.userattributes.UserAttributes; 37 import com.sslexplorer.security.User; 38 import com.sslexplorer.testcontainer.AbstractTest; 39 40 43 public class JDBCPropertyDatabaseTest extends AbstractTest { 44 45 private static JDBCPropertyDatabase propertyDatabase; 46 47 50 @BeforeClass 51 public static void oneTimeSetUp() throws Exception { 52 setUp(""); 53 propertyDatabase = new JDBCPropertyDatabase(); 54 propertyDatabase.open(CoreServlet.getServlet()); 55 } 56 57 60 @AfterClass 61 public static void after() throws Exception { 62 propertyDatabase.close(); 63 } 64 65 70 71 public void createAttributeDefinition(AbstractXMLDefinedAttributesPropertyClass attribute, AttributeDefinition attributeDefinition) throws Exception { 72 attribute.registerPropertyDefinition(attributeDefinition); 73 attributeDefinition.init(attribute); 74 propertyDatabase.createAttributeDefinition(attributeDefinition); 75 PropertyClassManager.getInstance().registerPropertyClass(attribute); 76 } 77 78 83 public void updateAttributeDefinition(AbstractXMLDefinedAttributesPropertyClass attribute, AttributeDefinition attributeDefinition) throws Exception { 84 propertyDatabase.updateAttributeDefinition(attributeDefinition); 85 } 86 87 92 public void deletAttributeDefinitionName(AbstractXMLDefinedAttributesPropertyClass attribute, String definitionName) throws Exception { 93 propertyDatabase.deleteAttributeDefinition(attribute.getName(), definitionName); 94 attribute.deregisterPropertyDefinition(definitionName); 95 PropertyClassManager.getInstance().deregisterPropertyClass(attribute.getName()); 96 } 97 98 101 @Test 102 public void loadAttributeDefinitions() throws Exception { 103 propertyDatabase.loadAttributeDefinitions(); 104 } 105 106 109 @Test 110 public void createUserAttributesDefinition() throws Exception { 111 UserAttributes attribute = new UserAttributes(); 112 AttributeDefinition attributeDefinition = attribute.createAttributeDefinition(AttributeDefinition.TYPE_UNDEFINED, "AttributName", "typeMeta", -1, "categorylabel", "default value", AttributeDefinition.TYPE_UNDEFINED, 0, "", false, "Label", "Description", false, true, ""); 113 createAttributeDefinition(attribute, attributeDefinition); 114 Assert.assertTrue("Should exist.", attribute.isDefinitionExists(attributeDefinition.getName())); 115 deletAttributeDefinitionName(attribute, attributeDefinition.getName()); 116 Assert.assertFalse("Should not exist.", attribute.isDefinitionExists(attributeDefinition.getName())); 117 } 118 119 122 @Test 123 public void createPolicyAttributesDefinition() throws Exception { 124 UserAttributes attribute = new UserAttributes(); 125 AttributeDefinition attributeDefinition = attribute.createAttributeDefinition(AttributeDefinition.TYPE_UNDEFINED, "AttributName", "typeMeta", -1, "categorylabel", "default value", AttributeDefinition.TYPE_UNDEFINED, 0, "", false, "Label", "Description", false, true, ""); 126 createAttributeDefinition(attribute, attributeDefinition); 127 Assert.assertTrue("Should exist.", attribute.isDefinitionExists(attributeDefinition.getName())); 128 deletAttributeDefinitionName(attribute, attributeDefinition.getName()); 129 Assert.assertFalse("Should not exist.", attribute.isDefinitionExists(attributeDefinition.getName())); 130 } 131 132 135 @Test 136 public void updateUserAttributeDefinitionName() throws Exception { 137 UserAttributes attribute = new UserAttributes(); 138 AttributeDefinition attributeDefinition = attribute.createAttributeDefinition(AttributeDefinition.TYPE_UNDEFINED, "NewAttributName", "typeMeta", -1, "categorylabel", "default value", AttributeDefinition.TYPE_UNDEFINED, 0, "", false, "Label", "Description", false, true, ""); 139 createAttributeDefinition(attribute, attributeDefinition); 140 Assert.assertTrue("Should exist.", attribute.isDefinitionExists(attributeDefinition.getName())); 141 updateAttributeDefinition(attribute, attributeDefinition); 142 deletAttributeDefinitionName(attribute, attributeDefinition.getName()); 143 Assert.assertFalse("Should not exist.", attribute.isDefinitionExists(attributeDefinition.getName())); 144 } 145 146 149 @Test 150 public void updatePolicyAttributeDefinitionName() throws Exception { 151 PolicyAttributes attribute = new PolicyAttributes(); 152 AttributeDefinition attributeDefinition = attribute.createAttributeDefinition(AttributeDefinition.TYPE_UNDEFINED, "NewAttributName", "typeMeta", -1, "categorylabel", "default value", AttributeDefinition.TYPE_UNDEFINED, 0, "", false, "Label", "Description", false, true, ""); 153 createAttributeDefinition(attribute, attributeDefinition); 154 Assert.assertTrue("Should exist.", attribute.isDefinitionExists(attributeDefinition.getName())); 155 updateAttributeDefinition(attribute, attributeDefinition); 156 deletAttributeDefinitionName(attribute, attributeDefinition.getName()); 157 Assert.assertFalse("Should not exist.", attribute.isDefinitionExists(attributeDefinition.getName())); 158 } 159 160 163 @Test 164 public void updateSystemUserAttributeDefinitionName() throws Exception { 165 User user = createAccount(); 166 UserAttributes attribute = new UserAttributes(); 167 UserAttributeKey attributeKey = new UserAttributeKey(user, "fathersFirstName"); 168 AttributeDefinition attributeDefinition = (AttributeDefinition)attribute.getDefinition(attributeKey.getName()); 169 try { 170 updateAttributeDefinition(attribute, attributeDefinition); 171 fail("This should have failed"); 172 } catch (Exception e) { 173 } 175 deleteAccount(user); 176 } 177 178 181 @Test 182 public void deleteSystemUserAttributeDefinitionName() throws Exception { 183 UserAttributes attribute = new UserAttributes(); 184 try { 185 deletAttributeDefinitionName(attribute, "fathersFirstName"); 186 fail("This should have failed"); 187 } catch (Exception e) { 188 } 190 } 191 192 195 @Test 196 public void deleteNoExistingAttributeDefinition() throws Exception { 197 UserAttributes attribute = new UserAttributes(); 198 try { 199 deletAttributeDefinitionName(attribute, "none"); 200 fail("This should have failed"); 201 } catch (Exception e) { 202 } 204 } 205 206 209 @Test 210 public void storeAndRetrieveUserAttributeValue() throws Exception { 211 String value = "new value"; 212 User user = createAccount(); 213 UserAttributeKey key = new UserAttributeKey(user, "newKey"); 214 propertyDatabase.storeAttributeValue(key, value); 215 String retrievedValue = propertyDatabase.retrieveAttributeValue(key); 216 Assert.assertEquals("Attribute value should be this one.", value, retrievedValue); 217 propertyDatabase.storeAttributeValue(key, null); 218 deleteAccount(user); 219 } 220 221 224 @Test 225 public void storeAndRetrievePolicyAttributeValue() throws Exception { 226 String value = "new value"; 227 PolicyAttributeKey key = new PolicyAttributeKey(0, "newKey"); 228 propertyDatabase.storeAttributeValue(key, value); 229 String retrievedValue = propertyDatabase.retrieveAttributeValue(key); 230 Assert.assertEquals("Attribute value should be this one.", value, retrievedValue); 231 propertyDatabase.storeAttributeValue(key, null); 232 } 233 234 } 235 | Popular Tags |