|
- package app
-
- import (
- "testing"
-
- "github.com/jan/fm-rds-tx/internal/output"
- )
-
- func TestRuntimeIndicator(t *testing.T) {
- cases := []struct {
- name string
- queueHealth output.QueueHealth
- lateBuffers uint64
- want RuntimeIndicator
- }{
- {
- name: "normal",
- queueHealth: output.QueueHealthNormal,
- lateBuffers: 0,
- want: RuntimeIndicatorNormal,
- },
- {
- name: "degradedLateBuffers",
- queueHealth: output.QueueHealthNormal,
- lateBuffers: 1,
- want: RuntimeIndicatorDegraded,
- },
- {
- name: "degradedQueueLow",
- queueHealth: output.QueueHealthLow,
- lateBuffers: 0,
- want: RuntimeIndicatorDegraded,
- },
- {
- name: "queueCritical",
- queueHealth: output.QueueHealthCritical,
- lateBuffers: 0,
- want: RuntimeIndicatorQueueCritical,
- },
- {
- name: "criticalLateBuffers",
- queueHealth: output.QueueHealthCritical,
- lateBuffers: 3,
- want: RuntimeIndicatorQueueCritical,
- },
- }
-
- for _, tc := range cases {
- tc := tc
- t.Run(tc.name, func(t *testing.T) {
- if got := runtimeIndicator(tc.queueHealth, tc.lateBuffers); got != tc.want {
- t.Fatalf("runtime indicator mismatch: queue=%s late=%d want=%s got=%s",
- tc.queueHealth, tc.lateBuffers, tc.want, got)
- }
- })
- }
- }
|