1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
package xyz.driver.core
import org.mockito.Mockito._
import org.scalatest.mock.MockitoSugar
import org.scalatest.{FlatSpec, Matchers}
import xyz.driver.core.logging.Logger
import xyz.driver.core.stats.LogStats
import xyz.driver.core.time.{Time, TimeRange}
class StatsTest extends FlatSpec with Matchers with MockitoSugar {
"Stats" should "format and store all recorded data" in {
val log = mock[Logger]
val stats = new LogStats(log)
stats.recordStats(Seq(), TimeRange(Time(2L), Time(5L)), BigDecimal(123.324))
verify(log).audit(s"(2-5)=123.324")
stats.recordStats("stat", TimeRange(Time(5L), Time(5L)), BigDecimal(333L))
verify(log).audit(s"stat(5-5)=333")
stats.recordStats("stat", Time(934L), 123)
verify(log).audit(s"stat(934-934)=123")
stats.recordStats("stat", Time(0L), 123)
verify(log).audit(s"stat(0-0)=123")
}
it should "format BigDecimal with all precision digits" in {
val log = mock[Logger]
val stats = new LogStats(log)
stats.recordStats(Seq("root", "group", "stat", "substat"),
TimeRange(Time(1467381889834L), Time(1468937089834L)),
BigDecimal(3.333333333333333))
verify(log).audit(s"root.group.stat.substat(1467381889834-1468937089834)=3.333333333333333")
stats.recordStats("stat", Time(1233L), BigDecimal(0.00000000000000000000001))
verify(log).audit(s"stat(1233-1233)=0.000000000000000000000010")
}
}
|