From 6f9eecec65c28e631be18c529e93d1e141115239 Mon Sep 17 00:00:00 2001 From: rcourtman Date: Wed, 26 Nov 2025 14:10:21 +0000 Subject: [PATCH] test: add unit tests for types package --- internal/types/metrics_test.go | 78 ++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 internal/types/metrics_test.go diff --git a/internal/types/metrics_test.go b/internal/types/metrics_test.go new file mode 100644 index 000000000..bb546e912 --- /dev/null +++ b/internal/types/metrics_test.go @@ -0,0 +1,78 @@ +package types + +import ( + "testing" + "time" +) + +func TestMetricPoint_GetTimestamp(t *testing.T) { + now := time.Now() + point := MetricPoint{ + Value: 42.5, + Timestamp: now, + } + + result := point.GetTimestamp() + if !result.Equal(now) { + t.Errorf("GetTimestamp() = %v, want %v", result, now) + } +} + +func TestMetricPoint_ZeroValue(t *testing.T) { + var point MetricPoint + + // Zero value should have zero time + if !point.Timestamp.IsZero() { + t.Error("Zero MetricPoint should have zero timestamp") + } + if point.Value != 0 { + t.Errorf("Zero MetricPoint Value = %v, want 0", point.Value) + } +} + +func TestIOMetrics_Fields(t *testing.T) { + now := time.Now() + metrics := IOMetrics{ + DiskRead: 1000, + DiskWrite: 2000, + NetworkIn: 3000, + NetworkOut: 4000, + Timestamp: now, + } + + if metrics.DiskRead != 1000 { + t.Errorf("DiskRead = %v, want 1000", metrics.DiskRead) + } + if metrics.DiskWrite != 2000 { + t.Errorf("DiskWrite = %v, want 2000", metrics.DiskWrite) + } + if metrics.NetworkIn != 3000 { + t.Errorf("NetworkIn = %v, want 3000", metrics.NetworkIn) + } + if metrics.NetworkOut != 4000 { + t.Errorf("NetworkOut = %v, want 4000", metrics.NetworkOut) + } + if !metrics.Timestamp.Equal(now) { + t.Errorf("Timestamp = %v, want %v", metrics.Timestamp, now) + } +} + +func TestIOMetrics_ZeroValue(t *testing.T) { + var metrics IOMetrics + + if metrics.DiskRead != 0 { + t.Error("Zero IOMetrics should have zero DiskRead") + } + if metrics.DiskWrite != 0 { + t.Error("Zero IOMetrics should have zero DiskWrite") + } + if metrics.NetworkIn != 0 { + t.Error("Zero IOMetrics should have zero NetworkIn") + } + if metrics.NetworkOut != 0 { + t.Error("Zero IOMetrics should have zero NetworkOut") + } + if !metrics.Timestamp.IsZero() { + t.Error("Zero IOMetrics should have zero Timestamp") + } +}