mirror of
https://github.com/dart-lang/sdk
synced 2024-09-21 11:27:47 +00:00
115 lines
3 KiB
Dart
115 lines
3 KiB
Dart
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
//
|
|
|
|
import 'dart:developer';
|
|
import 'package:expect/expect.dart';
|
|
|
|
testGauge1() {
|
|
var gauge = new Gauge('test', 'alpha bravo', 0.0, 100.0);
|
|
Expect.equals(0.0, gauge.min);
|
|
Expect.equals(0.0, gauge.value);
|
|
Expect.equals(100.0, gauge.max);
|
|
Expect.equals('test', gauge.name);
|
|
Expect.equals('alpha bravo', gauge.description);
|
|
gauge.value = 44.0;
|
|
Expect.equals(44.0, gauge.value);
|
|
// Test setting below min.
|
|
gauge.value = -1.0;
|
|
Expect.equals(0.0, gauge.value);
|
|
// Test setting above max.
|
|
gauge.value = 101.0;
|
|
Expect.equals(100.0, gauge.value);
|
|
}
|
|
|
|
testGauge2() {
|
|
var gauge = new Gauge('test', 'alpha bravo', 1.0, 2.0);
|
|
Expect.equals(1.0, gauge.min);
|
|
Expect.equals(2.0, gauge.max);
|
|
Expect.equals(gauge.min, gauge.value);
|
|
Expect.equals('test', gauge.name);
|
|
Expect.equals('alpha bravo', gauge.description);
|
|
|
|
Expect.throws(() {
|
|
// min argument > max argument .
|
|
gauge = new Gauge('test', 'alpha bravo', 2.0, 1.0);
|
|
});
|
|
|
|
Expect.throws(() {
|
|
// min argument == max argument .
|
|
gauge = new Gauge('test', 'alpha bravo', 1.0, 1.0);
|
|
});
|
|
|
|
Expect.throws(() {
|
|
// min argument is null
|
|
gauge = new Gauge('test', 'alpha bravo', null, 1.0);
|
|
});
|
|
|
|
Expect.throws(() {
|
|
// min argument is not a double
|
|
gauge = new Gauge('test', 'alpha bravo', 'string', 1.0);
|
|
});
|
|
|
|
Expect.throws(() {
|
|
// max argument is null
|
|
gauge = new Gauge('test', 'alpha bravo', 1.0, null);
|
|
});
|
|
}
|
|
|
|
testCounter() {
|
|
var counter = new Counter('test', 'alpha bravo');
|
|
Expect.equals(0.0, counter.value);
|
|
Expect.equals('test', counter.name);
|
|
Expect.equals('alpha bravo', counter.description);
|
|
counter.value = 1.0;
|
|
Expect.equals(1.0, counter.value);
|
|
}
|
|
|
|
class CustomCounter extends Counter {
|
|
CustomCounter(name, description) : super(name, description);
|
|
// User provided getter.
|
|
double get value => 77.0;
|
|
}
|
|
|
|
testCustomCounter() {
|
|
var counter = new CustomCounter('test', 'alpha bravo');
|
|
Expect.equals(77.0, counter.value);
|
|
Expect.equals('test', counter.name);
|
|
Expect.equals('alpha bravo', counter.description);
|
|
// Should have no effect.
|
|
counter.value = 1.0;
|
|
Expect.equals(77.0, counter.value);
|
|
}
|
|
|
|
testMetricNameCollision() {
|
|
var counter = new Counter('a.b.c', 'alpha bravo charlie');
|
|
var counter2 = new Counter('a.b.c', 'alpha bravo charlie collider');
|
|
Metrics.register(counter);
|
|
Expect.throws(() {
|
|
Metrics.register(counter2);
|
|
});
|
|
Metrics.deregister(counter);
|
|
Metrics.register(counter);
|
|
var counter3 = new Counter('a.b.c.d', '');
|
|
Metrics.register(counter3);
|
|
}
|
|
|
|
testBadName() {
|
|
Expect.throws(() {
|
|
var counter = new Counter('a.b/c', 'description');
|
|
});
|
|
Expect.throws(() {
|
|
var counter = new Counter('vm', 'description');
|
|
});
|
|
}
|
|
|
|
main() {
|
|
testGauge1();
|
|
testGauge2();
|
|
testCounter();
|
|
testCustomCounter();
|
|
testMetricNameCollision();
|
|
testBadName();
|
|
}
|