/* * RHQ Management Platform * Copyright (C) 2005-2010 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.rhq.enterprise.server.plugins.alertOperations; import java.util.EnumSet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.testng.annotations.Test; import org.rhq.core.domain.alert.Alert; import org.rhq.core.domain.alert.AlertDefinition; import org.rhq.core.domain.operation.OperationDefinition; import org.rhq.core.domain.resource.Resource; /** * // TODO: Document this * @author Heiko W. Rupp */ @Test public class TokenReplacementTest { private final Log log = LogFactory.getLog(TokenReplacementTest.class); private static final String TEST_ECHO = "test.echo"; private static final String FOO_BAR = "fooBar"; private static final String FOO_DOT_BAR = "foo.bar"; private static final String ALERT_BAR = "alert.bar"; public void testSimpleReplacement() throws Exception { Alert al = new Alert(); AlertTokenReplacer tr = new AlertTokenReplacer(al, null, null); String res = tr.replaceToken("test.fix"); assert res != null; assert res.equals(AlertTokenReplacer.THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG); res = tr.replaceToken(TEST_ECHO); assert res != null; assert res.equals(TEST_ECHO); res = tr.replaceToken("test.camelCase"); assert res != null; assert res.equals("camel"); /* res = tr.replaceToken("alert.id"); assert res != null; assert res.equals("0"); Resource r = new Resource(1234); r.setName("A resource"); AlertDefinition def = new AlertDefinition(); def.setResource(r); al = new Alert(def, System.currentTimeMillis()); tr = new AlertTokenReplacer(al, null, null); res = tr.replaceToken("resource.id"); assert "1234".equals(res); res = tr.replaceToken("resource.name"); assert "A resource".equals(res); */ } public void testInvalidTokenString() { Alert al = new Alert(); AlertTokenReplacer tr = new AlertTokenReplacer(al, null, null); String res = tr.replaceToken(FOO_BAR); assert res != null; assert res.equals(FOO_BAR); res = tr.replaceToken(FOO_DOT_BAR); assert res != null; assert res.equals(FOO_DOT_BAR); res = tr.replaceToken(ALERT_BAR); assert res != null; assert res.equals(ALERT_BAR); } public void testFullTokenSimple() { Alert al = new Alert(); AlertTokenReplacer tr = new AlertTokenReplacer(al, null, null); String res = tr.replaceTokens("<%test.fix%>"); assert res != null; assert !res.equals("<%test.fix%>") : "Res was " + res; assert res.equals(AlertTokenReplacer.THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG); String TF2 = "<% test.fix %>"; res = tr.replaceTokens(TF2); assert res != null; assert !res.equals(TF2) : "Res was " + res; String TF3 = "<% test.fix %>"; res = tr.replaceTokens(TF3); assert res != null; assert !res.equals(TF3) : "Res was " + res; String TF4 = "<% test.fix%> xXx <% test.echo%>"; res = tr.replaceTokens(TF4); assert res != null; assert !res.equals(TF4) : "Res was " + res; res = tr.replaceTokens(FOO_BAR); assert res != null; assert res.equals(FOO_BAR) : "Res was " + res; /* Resource r = new Resource(1234); r.setName("A resource"); AlertDefinition def = new AlertDefinition(); def.setResource(r); al = new Alert(def, System.currentTimeMillis()); tr = new AlertTokenReplacer(al, null, null); res = tr.replaceTokens("<% test.fix%><%resource.id%>"); assert res!=null; assert res.equals(AlertTokenReplacer.THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG+"1234"); */ } public void testOperationTokens() { Resource r = new Resource(1234); AlertDefinition def = new AlertDefinition(); def.setResource(r); Alert al = new Alert(def, System.currentTimeMillis()); AlertTokenReplacer tr; OperationDefinition opDef = new OperationDefinition(123,"helloOps",null,"This is a test",0,"Just testing"); tr = new AlertTokenReplacer(al,opDef, null); String res = tr.replaceTokens("<%operation.id%>"); assert res!=null; assert res.equals("123") : "Result is " + res; res = tr.replaceTokens("<%operation.name%>"); assert res!=null; assert res.equals("helloOps"); } public void testTokenPrinter() { String result = PrintTokens.createTokenDescription(); assert result != null; assert !result.equals(""); assert result.contains("<token "); } /* public void testReplaceAllTokens() { EnumSet<Token> tokens = EnumSet.allOf(Token.class); Resource r = new Resource(1234); AlertDefinition def = new AlertDefinition(); def.setResource(r); Alert al = new Alert(def, System.currentTimeMillis()); AlertTokenReplacer tr; OperationDefinition opDef = new OperationDefinition(123,"helloOps",null,"This is a test",0,"Just testing"); tr = new AlertTokenReplacer(al,opDef, null); for (Token token : tokens) { String input = "<%" + token.getText() + "%>"; String res = tr.replaceTokens(input); assert res != null; assert !res.isEmpty(); assert !res.equals(AlertTokenReplacer.NOT_YET_IMPLEMENTED) : "Replacement for token [" + token.getText() + "] is not implemented"; } } */ }