### Question:
RuleCompositionServiceImpl extends AbstractJargonService implements RuleCompositionService { @Override public IRODSRuleExecResult executeRuleAsRawString(final String rule) throws JargonException { if (rule == null || rule.isEmpty()) { throw new IllegalArgumentException("null or empty rule"); } log.info("rule:{}", rule); RuleProcessingAO ruleProcessingAO = irodsAccessObjectFactory.getRuleProcessingAO(getIrodsAccount()); return ruleProcessingAO.executeRule(rule); } RuleCompositionServiceImpl();  RuleCompositionServiceImpl(final IRODSAccessObjectFactory irodsAccessObjectFactory,
			final IRODSAccount irodsAccount); @Override Rule addInputParameterToRule(final String ruleAbsolutePath, final String parameterName,
			final String parameterValue); @Override Rule addOutputParameterToRule(final String ruleAbsolutePath, final String parameterName); @Override Rule parseStringIntoRule(final String inputRuleAsString); @Override Rule loadRuleFromIrods(final String absolutePathToRuleFile); @Override String loadRuleFromIrodsAsString(final String absolutePathToRuleFile); @Override Rule storeRule(final String ruleAbsolutePath, final Rule rule); @Override Rule storeRuleFromParts(final String ruleAbsolutePath, final String ruleBody,
			final List<String> inputParameters, final List<String> outputParameters); @Override IRODSRuleExecResult executeRuleFromParts(final String ruleBody, final List<String> inputParameters,
			final List<String> outputParameters); @Override IRODSRuleExecResult executeRuleFromParts(final String ruleBody, final List<String> inputParameters,
			final List<String> outputParameters, final RuleInvocationConfiguration ruleInvocationConfiguration); @Override Rule deleteInputParameterFromRule(final String ruleAbsolutePath, final String parameterToDelete); @Override Rule deleteOutputParameterFromRule(final String ruleAbsolutePath, final String parameterToDelete); @Override Rule storeRule(final String ruleAbsolutePath, final String rule); @Override IRODSRuleExecResult executeRuleAsRawString(final String rule); static final Logger log; }### Answer:
@Test public void testExecuteRuleAsRawString() throws Exception { IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); IRODSAccessObjectFactory accessObjectFactory = irodsFileSystem.getIRODSAccessObjectFactory(); EnvironmentalInfoAO environmentalInfoAO = irodsFileSystem.getIRODSAccessObjectFactory() .getEnvironmentalInfoAO(irodsAccount); IRODSServerProperties props = environmentalInfoAO.getIRODSServerPropertiesFromIRODSServer(); if (!props.isTheIrodsServerAtLeastAtTheGivenReleaseVersion("rods3.0")) { return; } String ruleFile = "/rules/rulemsiGetIcatTime.r"; String ruleString = LocalFileUtils.getClasspathResourceFileAsString(ruleFile); RuleCompositionService ruleCompositionService = new RuleCompositionServiceImpl(accessObjectFactory, irodsAccount); IRODSRuleExecResult execResult = ruleCompositionService.executeRuleAsRawString(ruleString); Assert.assertNotNull("null result returned", execResult); }