1 23 package com.sun.enterprise.cli.commands; 24 25 31 import com.sun.enterprise.cli.framework.*; 32 import junit.framework.*; 38 import junit.textui.TestRunner; 39 import com.sun.enterprise.util.SystemPropertyConstants; 40 import com.sun.enterprise.admin.servermgmt.DomainConfig; 41 import com.sun.enterprise.admin.servermgmt.pe.PEFileLayout; 42 import java.io.File ; 43 import java.io.PrintWriter ; 44 import java.io.OutputStreamWriter ; 45 import java.io.FileOutputStream ; 46 import java.util.Vector ; 47 import java.util.HashMap ; 48 49 54 55 60 61 public class BaseLifeCycleCommandTest extends TestCase { 62 63 public void testgetAdminUserWhenNotSet() throws Exception { 64 try{ 65 String adminUser = testCommand.getAdminUser(); 66 }catch(Exception e){ 67 assertEquals(e.getMessage(), "CLI152 adminuser is a required option."); 68 } 69 } 70 71 public void testgetAdminPasswordFromCommandLine() throws Exception { 72 testCommand.setOption("adminpassword", "test_password"); 73 String pwd = testCommand.getAdminPassword(true); 74 assertEquals(pwd, "test_password"); 75 } 76 77 public void testgetAdminUserFromCommandLine() throws Exception { 78 testCommand.setOption("adminuser", "userFromCommandLine"); 79 String adminUser = testCommand.getAdminUser(); 80 assertEquals(adminUser, "userFromCommandLine"); 81 } 82 83 public void testgetAdminUserFromPrefsFile() throws Exception { 84 final String enc = "ISO-8859-1"; 85 final File f = new File (System.getProperty("java.io.tmpdir"), 86 testCommand.ASADMINPREFS); 87 f.deleteOnExit(); 88 final PrintWriter pw = new PrintWriter ( 89 new OutputStreamWriter (new FileOutputStream (f), enc)); 90 pw.println("AS_ADMIN_ADMINUSER=adminuserFromPrefsFile"); 91 pw.close(); 92 System.setProperty("user.home", System.getProperty("java.io.tmpdir")); 93 String adminUser = testCommand.getAdminUser(); 94 assertEquals(adminUser, "adminuserFromPrefsFile"); 95 } 96 97 public void testgetAdminUserFromPrefsFileUsingUserOption() throws Exception { 98 final String enc = "ISO-8859-1"; 99 final File f = new File (System.getProperty("java.io.tmpdir"), 100 testCommand.ASADMINPREFS); 101 f.deleteOnExit(); 102 final PrintWriter pw = new PrintWriter ( 103 new OutputStreamWriter (new FileOutputStream (f), enc)); 104 pw.println("AS_ADMIN_USER=userFromPrefsFile"); 105 pw.close(); 106 System.setProperty("user.home", System.getProperty("java.io.tmpdir")); 107 String adminUser = testCommand.getAdminUser(); 108 assertEquals(adminUser, "userFromPrefsFile"); 109 } 110 111 public void testgetDomainConfigWithVerbose() throws Exception { 112 testCommand.setOption("verbose", "true"); 113 DomainConfig dc = testCommand.getDomainConfig(testCommand.getDomainName()); 115 assertEquals(dc.get(DomainConfig.K_VERBOSE), Boolean.TRUE); 116 assertEquals(dc.get(DomainConfig.K_DEBUG), null); 117 } 118 119 public void testgetDomainConfigWithDebug() throws Exception { 120 testCommand.setOption("debug", "true"); 121 DomainConfig dc = testCommand.getDomainConfig(testCommand.getDomainName()); 123 assertEquals(dc.get(DomainConfig.K_DEBUG), Boolean.TRUE); 124 assertEquals(dc.get(DomainConfig.K_VERBOSE), null); 125 } 126 127 public void testgetDomainNameOptionFromCommandLine() throws Exception { 128 testCommand.setOption("domain", "test_domain"); 129 assertEquals(testCommand.getDomainName(), "test_domain"); 131 } 132 133 public void testgetDomainNameOperandFromCommandLine() throws Exception { 134 Vector operands = new Vector (); 135 operands.add("test_domain"); 136 testCommand.setOperands(operands); 137 } 139 140 public void testgetDomainNameWhenZero() throws Exception { 141 try{ 142 Vector operands = new Vector (); 143 operands.add("UndefinedDomain"); 144 testCommand.setOperands(operands); 145 testCommand.getDomainName(); 146 } catch (Exception e) 147 { 148 assertEquals(e.getMessage(), "CLI156 Could not start the domain UndefinedDomain."); 149 } 150 } 151 152 public void testgetDomainNameFromFileSystem() throws Exception { 153 String domainName = "test_domain"; 154 String dirName = createDomainFileSystem("testgetDomainNameFromFileSystem", domainName); 155 System.setProperty(SystemPropertyConstants.DOMAINS_ROOT_PROPERTY, dirName); 156 assertEquals(testCommand.getDomainName(), domainName); 157 } 158 159 public void testgetDomainNameFromFileSystemWithMultipleDomains() throws Exception { 160 String dirName = ""; 161 try{ 162 String domainName1 = "test_domain1"; 163 dirName = createDomainFileSystem("testgetDomainNameFromFileSystemWithMultipleDomains", domainName1); 164 String domainName2 = "test_domain2"; 165 createDomainFileSystem("testgetDomainNameFromFileSystemWithMultipleDomains", domainName2); 166 System.setProperty(SystemPropertyConstants.DOMAINS_ROOT_PROPERTY, dirName); 167 String domainName = testCommand.getDomainName(); 168 } catch (Exception e) 169 { 170 assertEquals(e.getMessage(), "There is more than one domain in " + 171 dirName + 172 ". Please use operand to specify the domain."); 173 } 174 } 175 176 public void testgetDomainNameFromFileSystemWhenNone() throws Exception { 177 String dirName = "domainsDirXYZ"; 178 File domaindir = new File (System.getProperty("java.io.tmpdir"), dirName); 179 try{ 180 domaindir.mkdir(); 181 domaindir.deleteOnExit(); 182 System.setProperty(SystemPropertyConstants.DOMAINS_ROOT_PROPERTY, domaindir.getAbsolutePath()); 183 String domainName = testCommand.getDomainName(); 184 } catch (Exception e) 185 { 186 assertEquals(e.getMessage(), "CLI142 No domains in " + 187 domaindir.getAbsolutePath() + "."); 188 } 189 } 190 191 public void testgetDomainsWhenZero() throws Exception { 192 String dirName = createDomainFileSystem("testgetDomainsWhenZero", null); 193 System.setProperty(SystemPropertyConstants.DOMAINS_ROOT_PROPERTY, dirName); 194 String [] domains = testCommand.getDomains(); 195 assertEquals(domains.length, 0); 196 } 197 198 public void testgetDomainsWhenOne() throws Exception { 199 String domainName = "test_domain1"; 200 String dirName = createDomainFileSystem("testgetDomainsWhenOne", domainName); 201 System.setProperty(SystemPropertyConstants.DOMAINS_ROOT_PROPERTY, dirName); 202 String [] domains = testCommand.getDomains(); 203 assertEquals(domains[0], domainName); 204 } 205 206 public void testgetDomainsWhenMultiple() throws Exception { 207 String domainName1 = "test_domain1"; 208 String dirName = createDomainFileSystem("testgetDomainsWhenMultiple", domainName1); 209 String domainName2 = "test_domain2"; 210 createDomainFileSystem("testgetDomainsWhenMultiple", domainName2); 211 System.setProperty(SystemPropertyConstants.DOMAINS_ROOT_PROPERTY, dirName); 212 String [] domains = testCommand.getDomains(); 213 assertEquals(domains[0], domainName1); 214 assertEquals(domains[1], domainName2); 215 } 216 217 private String createDomainFileSystem(String domainParent, String domainName) throws Exception { 218 final File domainParentDir = new File (System.getProperty("java.io.tmpdir"), domainParent); 219 domainParentDir.mkdir(); 220 domainParentDir.deleteOnExit(); 221 if (domainName == null) return domainParentDir.getPath(); 222 final File domainDir = new File (domainParentDir, domainName); 223 domainDir.mkdir(); 224 domainDir.deleteOnExit(); 225 final File binDir = new File (domainDir, PEFileLayout.BIN_DIR); 226 binDir.mkdir(); 227 binDir.deleteOnExit(); 228 final File f = new File (binDir, PEFileLayout.START_SERV_OS); 230 f.createNewFile(); 231 f.deleteOnExit(); 232 return domainParentDir.getPath(); 233 } 234 235 public void testgetDomainsRootFromCommandLine() throws Exception { 236 testCommand.setOption("domaindir", "test_domain"); 237 assertEquals(testCommand.getDomainsRoot(), "test_domain"); 238 } 239 240 public void testgetDomainsRootFromSystemProperty() throws Exception { 241 System.setProperty(SystemPropertyConstants.DOMAINS_ROOT_PROPERTY, "test_domain"); 242 assertEquals(testCommand.getDomainsRoot(), "test_domain"); 243 } 244 245 252 264 265 public void testIsSpaceInPathTrue() throws Exception { 266 assertEquals(testCommand.isSpaceInPath("String has space"), true); 267 } 268 269 public void testIsSpaceInPathFalse() throws Exception { 270 assertEquals(testCommand.isSpaceInPath("StringHasNospace"), false); 271 } 272 273 public void testisWindows(){ 274 String os = System.getProperty("os.name").toLowerCase(); 275 assertEquals(testCommand.isWindows(), (os.indexOf("windows") != -1) ? true : false); 276 } 277 public BaseLifeCycleCommandTest(String name){ 278 super(name); 279 } 280 281 BaseLifeCycleCommand testCommand = null; 282 283 protected void setUp() throws Exception { 284 final CLIDescriptorsReader cliDescriptorsReader = CLIDescriptorsReader.getInstance(); 289 ValidCommand validCommand = cliDescriptorsReader.getCommand(null); 290 LocalStringsManagerFactory.setCommandLocalStringsManagerProperties( 291 CLIDescriptorsReader.getInstance().getProperties()); 292 testCommand = new BaseLifeCycleCommand() { 293 public void runCommand() 294 throws CommandException, CommandValidationException { 295 } 296 public boolean validateOptions() throws CommandValidationException { 297 return true; 298 } 299 }; 300 testCommand.setName("sampleCommand"); 301 } 302 303 304 305 protected void tearDown() { 306 } 307 308 private void nyi(){ 309 fail("Not Yet Implemented"); 310 } 311 312 public static Test suite(){ 313 TestSuite suite = new TestSuite(BackupCommandsTest.class); 314 return suite; 315 } 316 317 public static void main(String args[]) throws Exception { 318 final TestRunner runner= new TestRunner(); 319 final TestResult result = runner.doRun(BaseLifeCycleCommandTest.suite(), false); 320 System.exit(result.errorCount() + result.failureCount()); 321 } 322 } 323 324 | Popular Tags |