package com.mojn.jmx;
import com.codahale.metrics.ConsoleReporter;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanInfo;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.management.openmbean.CompositeData;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
/**
* Created by johannes on 4/4/14.
*/
public class ReporterAgentTest {
private ReporterAgent reporterAgent;
@Before
public void setUp() throws Exception {
reporterAgent = new ReporterAgent();
}
@Test
@Ignore("ad-hoc")
public void testRegister() throws Exception {
// reporterAgent.allowedBeans= new ImmutableMap.Builder<String, String>().put("java.lang:type=Memory.HeapMemoryUsage","sssswww").build();
String file = this.getClass().getResource("/test2.json").getFile();
reporterAgent.readConfig(file);
reporterAgent.initLogger();
reporterAgent.registerPlatformBeans();
reporterAgent.addBeanNotificationListener();
ConsoleReporter reporter= ConsoleReporter.forRegistry(reporterAgent.metricRegistry)
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build();
reporter.start(1, TimeUnit.SECONDS);
while(true) {
// eat some memory
String s = "";
for (int i = 0; i < 100000; i++) {
s+="asdasdasd";
}
}
}
@Test
public void testSimpleLogger() throws Exception {
String file = this.getClass().getResource("/test2.json").getFile();
System.setProperty("org.slf4j.simpleLogger.defaultLogLevel","debug");
reporterAgent.readConfig(file);
reporterAgent.initLogger();
assertEquals("debug", System.getProperty("org.slf4j.simpleLogger.defaultLogLevel"));
}
@Test
public void testParse() throws Exception {
String file = this.getClass().getResource("/test2.json").getFile();
reporterAgent.readConfig(file);
try {
reporterAgent.readConfig(new File(file).getParent());
fail("no exception");
} catch (IOException e) {
}
reporterAgent.readConfig(file);
assertEquals( 300, reporterAgent.settings.reportInterval );
}
}