@Test public void testServiceWithDSLLogger() throws Exception { final Logger logger = Logger.getLogger(BaseDslScript.class.getName()); final DSLLoggerHandler handler = new DSLLoggerHandler(); logger.addHandler(handler); final File dir = new File(TEST_PARSING_RESOURCE_BASE + "logger"); final Service service = ServiceReader.getServiceFromDirectory(dir).getService(); Assert.assertNotNull(service); Assert.assertTrue( "Println logger not found", handler.getMessages().contains("println logger call")); Assert.assertTrue( "Print logger not found", handler.getMessages().contains("print logger call")); Assert.assertTrue( "Class println not found", handler.getMessages().contains("Test Class println")); Assert.assertTrue("Class print not found", handler.getMessages().contains("Test Class print")); Assert.assertFalse( "preInstall event message appeared before expected", handler.getMessages().contains("This is the preInstall event")); final ExecutableDSLEntry preInstall = service.getLifecycle().getPreInstall(); final ClosureExecutableEntry preInstallClosureEntry = (ClosureExecutableEntry) preInstall; preInstallClosureEntry.getCommand().call(); Assert.assertTrue( "preInstall event message not found", handler.getMessages().contains("This is the preInstall event")); }
/** @throws Exception . */ @Test public void testExternalScalingRules() throws Exception { final File dir = new File(TEST_PARSING_RESOURCE_PATH2 + "loadScalingRules"); final Service service = ServiceReader.getServiceFromDirectory(dir).getService(); Assert.assertTrue(service.getScalingRules().size() > 0); }
@Test public void testInvalidProperties() { final File serviceDir = new File(TEST_PARSING_RESOURCE_BASE + "invalidProperties"); try { Service service = ServiceReader.getServiceFromDirectory(serviceDir).getService(); System.out.println(service); System.out.println("retries: " + service.getRetries()); Assert.fail("Expected parsing to fail"); } catch (Exception e) { Assert.assertTrue("Invalid error message", e.getMessage().contains("Error converting from")); } }
/** * @throws DSLException . * @throws UnknownHostException . */ @Test public void testDebugParsing() throws DSLException, UnknownHostException { final File testDebugPath = new File(TEST_PARSING_DEBUG); final Service service = ServiceReader.getServiceFromDirectory(testDebugPath).getService(); // Assert.assertEquals("test features", service.getName()); // Assert.assertEquals("http://" // + InetAddress.getLocalHost().getHostName() + ":8080", // service.getUrl()); // final ServiceLifecycle lifecycle = service.getLifecycle(); // // Assert.assertNotNull(lifecycle.getStart()); // Assert.assertNotNull(lifecycle.getPostStart()); // Assert.assertNotNull(lifecycle.getPreStop()); // System.out.println(service); }
/** * Verifies the service configuration is valid. * * @param serviceFolder The Folder holding the service configuration files * @throws CLIException Reporting a failure to find or parse the configuration files */ private void isServiceLifecycleNotNull(final File serviceFolder) throws CLIException { Service service; try { final File serviceFileDir = new File(serviceFolder, "ext"); service = ServiceReader.getServiceFromDirectory( serviceFileDir, CloudifyConstants.DEFAULT_APPLICATION_NAME) .getService(); if (service.getLifecycle() == null) { throw new CLIException(getFormattedMessage("test_recipe_service_lifecycle_missing")); } } catch (final FileNotFoundException e) { logger.log(Level.SEVERE, "Service configuration file not found " + e.getMessage(), e); throw new CLIException("Failed to locate service configuration file. " + e.getMessage(), e); } catch (final PackagingException e) { logger.log(Level.SEVERE, "Packaging failed: " + e.getMessage(), e); e.printStackTrace(); throw new CLIException("Packaging failed: " + e.getMessage(), e); } catch (final DSLException e) { logger.log(Level.SEVERE, "DSL Parsing failed: " + e.getMessage(), e); e.printStackTrace(); throw new CLIException("Packaging failed: " + e.getMessage(), e); } }