2020-12-06 13:03:40 -08:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
2020-12-10 07:02:45 -08:00
|
|
|
"time"
|
2020-12-06 13:03:40 -08:00
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestExecutionTimeWriterDefaultThresholdEnabled(t *testing.T) {
|
|
|
|
env := new(MockedEnvironment)
|
|
|
|
env.On("executionTime", nil).Return(1337)
|
|
|
|
executionTime := &executiontime{
|
|
|
|
env: env,
|
|
|
|
}
|
|
|
|
assert.True(t, executionTime.enabled())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestExecutionTimeWriterDefaultThresholdDisabled(t *testing.T) {
|
|
|
|
env := new(MockedEnvironment)
|
|
|
|
env.On("executionTime", nil).Return(1)
|
|
|
|
executionTime := &executiontime{
|
|
|
|
env: env,
|
|
|
|
}
|
|
|
|
assert.False(t, executionTime.enabled())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestExecutionTimeWriterCustomThresholdEnabled(t *testing.T) {
|
|
|
|
env := new(MockedEnvironment)
|
|
|
|
env.On("executionTime", nil).Return(99)
|
|
|
|
props := &properties{
|
|
|
|
values: map[Property]interface{}{
|
|
|
|
ThresholdProperty: float64(10),
|
|
|
|
},
|
|
|
|
}
|
|
|
|
executionTime := &executiontime{
|
|
|
|
env: env,
|
|
|
|
props: props,
|
|
|
|
}
|
|
|
|
assert.True(t, executionTime.enabled())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestExecutionTimeWriterCustomThresholdDisabled(t *testing.T) {
|
|
|
|
env := new(MockedEnvironment)
|
|
|
|
env.On("executionTime", nil).Return(99)
|
|
|
|
props := &properties{
|
|
|
|
values: map[Property]interface{}{
|
|
|
|
ThresholdProperty: float64(100),
|
|
|
|
},
|
|
|
|
}
|
|
|
|
executionTime := &executiontime{
|
|
|
|
env: env,
|
|
|
|
props: props,
|
|
|
|
}
|
|
|
|
assert.False(t, executionTime.enabled())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestExecutionTimeWriterDuration(t *testing.T) {
|
|
|
|
input := 1337
|
|
|
|
expected := "1.337s"
|
|
|
|
env := new(MockedEnvironment)
|
|
|
|
env.On("executionTime", nil).Return(input)
|
|
|
|
executionTime := &executiontime{
|
|
|
|
env: env,
|
|
|
|
}
|
|
|
|
executionTime.enabled()
|
|
|
|
assert.Equal(t, expected, executionTime.output)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestExecutionTimeWriterDuration2(t *testing.T) {
|
|
|
|
input := 13371337
|
2020-12-10 07:02:45 -08:00
|
|
|
expected := "3h 42m 51.337s"
|
2020-12-06 13:03:40 -08:00
|
|
|
env := new(MockedEnvironment)
|
|
|
|
env.On("executionTime", nil).Return(input)
|
|
|
|
executionTime := &executiontime{
|
|
|
|
env: env,
|
|
|
|
}
|
|
|
|
executionTime.enabled()
|
|
|
|
assert.Equal(t, expected, executionTime.output)
|
|
|
|
}
|
2020-12-10 07:02:45 -08:00
|
|
|
|
|
|
|
func TestExecutionTimeFormatDurationAustin(t *testing.T) {
|
|
|
|
cases := []struct {
|
|
|
|
Input string
|
|
|
|
Expected string
|
|
|
|
}{
|
|
|
|
{Input: "0.001s", Expected: "1ms"},
|
|
|
|
{Input: "0.1s", Expected: "100ms"},
|
|
|
|
{Input: "1s", Expected: "1s"},
|
|
|
|
{Input: "2.1s", Expected: "2.1s"},
|
|
|
|
{Input: "1m", Expected: "1m 0s"},
|
|
|
|
{Input: "3m2.1s", Expected: "3m 2.1s"},
|
|
|
|
{Input: "1h", Expected: "1h 0m 0s"},
|
|
|
|
{Input: "4h3m2.1s", Expected: "4h 3m 2.1s"},
|
|
|
|
{Input: "124h3m2.1s", Expected: "5d 4h 3m 2.1s"},
|
|
|
|
{Input: "124h3m2.0s", Expected: "5d 4h 3m 2s"},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, tc := range cases {
|
|
|
|
duration, _ := time.ParseDuration(tc.Input)
|
|
|
|
executionTime := &executiontime{}
|
|
|
|
output := executionTime.formatDurationAustin(duration.Milliseconds())
|
|
|
|
assert.Equal(t, tc.Expected, output)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestExecutionTimeFormatDurationRoundrock(t *testing.T) {
|
|
|
|
cases := []struct {
|
|
|
|
Input string
|
|
|
|
Expected string
|
|
|
|
}{
|
|
|
|
{Input: "0.001s", Expected: "1ms"},
|
|
|
|
{Input: "0.1s", Expected: "100ms"},
|
|
|
|
{Input: "1s", Expected: "1s 0ms"},
|
|
|
|
{Input: "2.1s", Expected: "2s 100ms"},
|
|
|
|
{Input: "1m", Expected: "1m 0s 0ms"},
|
|
|
|
{Input: "3m2.1s", Expected: "3m 2s 100ms"},
|
|
|
|
{Input: "1h", Expected: "1h 0m 0s 0ms"},
|
|
|
|
{Input: "4h3m2.1s", Expected: "4h 3m 2s 100ms"},
|
|
|
|
{Input: "124h3m2.1s", Expected: "5d 4h 3m 2s 100ms"},
|
|
|
|
{Input: "124h3m2.0s", Expected: "5d 4h 3m 2s 0ms"},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, tc := range cases {
|
|
|
|
duration, _ := time.ParseDuration(tc.Input)
|
|
|
|
executionTime := &executiontime{}
|
|
|
|
output := executionTime.formatDurationRoundrock(duration.Milliseconds())
|
|
|
|
assert.Equal(t, tc.Expected, output)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestExecutionTimeFormatDallas(t *testing.T) {
|
|
|
|
cases := []struct {
|
|
|
|
Input string
|
|
|
|
Expected string
|
|
|
|
}{
|
|
|
|
{Input: "0.001s", Expected: "0.001"},
|
|
|
|
{Input: "0.1s", Expected: "0.1"},
|
|
|
|
{Input: "1s", Expected: "1"},
|
|
|
|
{Input: "2.1s", Expected: "2.1"},
|
|
|
|
{Input: "1m", Expected: "1:0"},
|
|
|
|
{Input: "3m2.1s", Expected: "3:2.1"},
|
|
|
|
{Input: "1h", Expected: "1:0:0"},
|
|
|
|
{Input: "4h3m2.1s", Expected: "4:3:2.1"},
|
|
|
|
{Input: "124h3m2.1s", Expected: "5:4:3:2.1"},
|
|
|
|
{Input: "124h3m2.0s", Expected: "5:4:3:2"},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, tc := range cases {
|
|
|
|
duration, _ := time.ParseDuration(tc.Input)
|
|
|
|
executionTime := &executiontime{}
|
|
|
|
output := executionTime.formatDurationDallas(duration.Milliseconds())
|
|
|
|
assert.Equal(t, tc.Expected, output)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestExecutionTimeFormatGalveston(t *testing.T) {
|
|
|
|
cases := []struct {
|
|
|
|
Input string
|
|
|
|
Expected string
|
|
|
|
}{
|
|
|
|
{Input: "0.001s", Expected: "00:00:00"},
|
|
|
|
{Input: "0.1s", Expected: "00:00:00"},
|
|
|
|
{Input: "1s", Expected: "00:00:01"},
|
|
|
|
{Input: "2.1s", Expected: "00:00:02"},
|
|
|
|
{Input: "1m", Expected: "00:01:00"},
|
|
|
|
{Input: "3m2.1s", Expected: "00:03:02"},
|
|
|
|
{Input: "1h", Expected: "01:00:00"},
|
|
|
|
{Input: "4h3m2.1s", Expected: "04:03:02"},
|
|
|
|
{Input: "124h3m2.1s", Expected: "124:03:02"},
|
|
|
|
{Input: "124h3m2.0s", Expected: "124:03:02"},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, tc := range cases {
|
|
|
|
duration, _ := time.ParseDuration(tc.Input)
|
|
|
|
executionTime := &executiontime{}
|
|
|
|
output := executionTime.formatDurationGalveston(duration.Milliseconds())
|
|
|
|
assert.Equal(t, tc.Expected, output)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestExecutionTimeFormatHouston(t *testing.T) {
|
|
|
|
cases := []struct {
|
|
|
|
Input string
|
|
|
|
Expected string
|
|
|
|
}{
|
|
|
|
{Input: "0.001s", Expected: "00:00:00.001"},
|
|
|
|
{Input: "0.1s", Expected: "00:00:00.1"},
|
|
|
|
{Input: "1s", Expected: "00:00:01.0"},
|
|
|
|
{Input: "2.1s", Expected: "00:00:02.1"},
|
|
|
|
{Input: "1m", Expected: "00:01:00.0"},
|
|
|
|
{Input: "3m2.1s", Expected: "00:03:02.1"},
|
|
|
|
{Input: "1h", Expected: "01:00:00.0"},
|
|
|
|
{Input: "4h3m2.1s", Expected: "04:03:02.1"},
|
|
|
|
{Input: "124h3m2.1s", Expected: "124:03:02.1"},
|
|
|
|
{Input: "124h3m2.0s", Expected: "124:03:02.0"},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, tc := range cases {
|
|
|
|
duration, _ := time.ParseDuration(tc.Input)
|
|
|
|
executionTime := &executiontime{}
|
|
|
|
output := executionTime.formatDurationHouston(duration.Milliseconds())
|
|
|
|
assert.Equal(t, tc.Expected, output)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestExecutionTimeFormatAmarillo(t *testing.T) {
|
|
|
|
cases := []struct {
|
|
|
|
Input string
|
|
|
|
Expected string
|
|
|
|
}{
|
|
|
|
{Input: "0.001s", Expected: "0.001s"},
|
|
|
|
{Input: "0.1s", Expected: "0.1s"},
|
|
|
|
{Input: "1s", Expected: "1s"},
|
|
|
|
{Input: "2.1s", Expected: "2.1s"},
|
|
|
|
{Input: "1m", Expected: "60s"},
|
|
|
|
{Input: "3m2.1s", Expected: "182.1s"},
|
|
|
|
{Input: "1h", Expected: "3,600s"},
|
|
|
|
{Input: "4h3m2.1s", Expected: "14,582.1s"},
|
|
|
|
{Input: "124h3m2.1s", Expected: "446,582.1s"},
|
|
|
|
{Input: "124h3m2.0s", Expected: "446,582s"},
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, tc := range cases {
|
|
|
|
duration, _ := time.ParseDuration(tc.Input)
|
|
|
|
executionTime := &executiontime{}
|
|
|
|
output := executionTime.formatDurationAmarillo(duration.Milliseconds())
|
|
|
|
assert.Equal(t, tc.Expected, output)
|
|
|
|
}
|
|
|
|
}
|