/** Make sure that the persistent storage file that doesn't exist is created. */ public void testNonExistentDirect() throws IOException { File f = createNonexistentDirect(); FileUsageCounter counter = new FileUsageCounter("test", new TimeBasedUsage(), createTarget(), f); assertEquals("The file mustn't exist at this point yet", false, f.exists()); counter.save(); assertEquals("The file exist at this point", true, f.exists()); f.delete(); assertEquals("The file must have been deleted by now", false, f.exists()); }
/** Make sure {@link FileUsageCounter#reset()} works. */ public void testReset() throws IOException, InterruptedException { NDC.push("testReset"); try { File f = createNonexistentDirect(); FileUsageCounter counter = new FileUsageCounter("test", new TimeBasedUsage(), createTarget(), f); long delay = 100; counter.consume(new DataSample<Double>("source", "signature", 1d, null)); Thread.sleep(delay); counter.consume(new DataSample<Double>("source", "signature", 1d, null)); counter.consume(new DataSample<Double>("source", "signature", null, new Error())); logger.debug("Consumed: " + counter.getUsageAbsolute()); // Can't really assert much, the timer is too inexact assertTrue("Consumed value less than time passed???", counter.getUsageAbsolute() > delay); counter.reset(); assertEquals("Wrong value after reset", 0, counter.getUsageAbsolute()); } finally { NDC.pop(); } }
public void testConsumeNull() throws IOException { try { File f = createNonexistentDirect(); FileUsageCounter counter = new FileUsageCounter("test", new TimeBasedUsage(), createTarget(), f); counter.consume(null); } catch (IllegalArgumentException ex) { assertEquals("Wrong exception message", "signal can't be null", ex.getMessage()); } }
public void testExisting() throws IOException, InterruptedException { NDC.push("testExisting"); try { File f = File.createTempFile("counter", ""); f.deleteOnExit(); PrintWriter pw = new PrintWriter(new FileWriter(f)); pw.println("# comment"); pw.println("threshold=100"); pw.println("current=0"); pw.close(); FileUsageCounter counter = new FileUsageCounter("name", new TimeBasedUsage(), createTarget(), f); counter.consume(new DataSample<Double>("source", "signature", 1d, null)); Thread.sleep(25); // This will cause a debug message counter.consume(new DataSample<Double>("source", "signature", 1d, null)); logger.debug("Consumed: " + counter.getUsageRelative()); Thread.sleep(25); // This will cause an info message counter.consume(new DataSample<Double>("source", "signature", 1d, null)); Thread.sleep(30); // This will cause a warning message counter.consume(new DataSample<Double>("source", "signature", 1d, null)); Thread.sleep(30); // This *will* cause an alert (error message) counter.consume(new DataSample<Double>("source", "signature", 1d, null)); logger.debug("Consumed: " + counter.getUsageRelative()); } finally { NDC.pop(); } }