예제 #1
0
  /** 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());
  }
예제 #2
0
  /** 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();
    }
  }
예제 #3
0
  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());
    }
  }
예제 #4
0
  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();
    }
  }