package org.jmxtrans.agent; import org.junit.BeforeClass; import org.junit.Test; import javax.management.ObjectName; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; /** * @author <a href="mailto:cleclerc@cloudbees.com">Cyrille Le Clerc</a> */ public class JConsoleResultNameStrategyImplTest { static JConsoleResultNameStrategyImpl strategy = new JConsoleResultNameStrategyImpl(); static ExpressionLanguageEngineImpl expressionLanguageEngine = new ExpressionLanguageEngineImpl(); @BeforeClass public static void beforeClass() throws Exception { strategy.setExpressionLanguageEngine(expressionLanguageEngine); } @Test public void testGetResultName() throws Exception { Query query = new Query("*:*", "count", null, strategy); String objectName = "Catalina:type=Resource,resourcetype=Context,host=localhost,class=javax.sql.DataSource,name=\"jdbc/my-datasource\""; String actual = strategy.getResultName(query, new ObjectName(objectName), "usage", "count", null); assertThat(actual, is("Catalina.javax.sql.DataSource.localhost.jdbc_my-datasource.Context.Resource.usage.count")); } @Test public void testGetResultNameWithObjectName() throws Exception { Query query = new Query("*:*", "count", null, strategy); String objectName = "Catalina:type=Resource,resourcetype=Context,host=localhost,class=javax.sql.DataSource,name=\"jdbc/my-datasource\""; String actual = strategy.getResultName(query, new ObjectName(objectName), null, null, null); assertThat(actual, is("Catalina.javax.sql.DataSource.localhost.jdbc_my-datasource.Context.Resource")); } @Test public void testGetResultNameWithNullAttributeName() throws Exception { Query query = new Query("*:*", "count", null, strategy); String objectName = "Catalina:type=Resource,resourcetype=Context,host=localhost,class=javax.sql.DataSource,name=\"jdbc/my-datasource\""; String actual = strategy.getResultName(query, new ObjectName(objectName), "usage", null, null); assertThat(actual, is("Catalina.javax.sql.DataSource.localhost.jdbc_my-datasource.Context.Resource.usage")); } @Test public void testGetResultNameWithNullKeyName() throws Exception { Query query = new Query("*:*", "count", null, strategy); String objectName = "Catalina:type=Resource,resourcetype=Context,host=localhost,class=javax.sql.DataSource,name=\"jdbc/my-datasource\""; String actual = strategy.getResultName(query, new ObjectName(objectName), null, "count", null); assertThat(actual, is("Catalina.javax.sql.DataSource.localhost.jdbc_my-datasource.Context.Resource.count")); } @Test public void testGetResultNameWithResultAlias() throws Exception { Query query = new Query("Catalina:*", "count", "Katalina:%name%.%type%", strategy); String objectName = "Catalina:type=Resource,resourcetype=Context,host=localhost,class=javax.sql.DataSource,name=\"jdbc/my-datasource\""; String actual = strategy.getResultName(query, new ObjectName(objectName), "usage", "count", null); assertThat(actual, is("Katalina:jdbc_my-datasource.Resource")); } }