package mesh import "testing" func TestFabricRoutePressureTrackerAppliesAndReleasesActiveChannels(t *testing.T) { tracker := NewFabricRoutePressureTracker() releaseA := tracker.Acquire("route-a") releaseAAgain := tracker.Acquire("route-a") releaseB := tracker.Acquire("route-b") routeSet := FabricRouteSet{ TargetKind: FabricChannelTargetNode, TargetID: "node-b", Primary: testFabricRoute("route-a", "node-b", 10, 100, 3, true), WarmStandby: []FabricRoute{ testFabricRoute("route-b", "node-b", 10, 100, 0, true), }, } withPressure := tracker.Apply(routeSet) if withPressure.Primary.ActiveChannels != 5 { t.Fatalf("primary active = %d, want 5", withPressure.Primary.ActiveChannels) } if withPressure.WarmStandby[0].ActiveChannels != 1 { t.Fatalf("standby active = %d, want 1", withPressure.WarmStandby[0].ActiveChannels) } releaseA() releaseA() releaseAAgain() releaseB() snapshot := tracker.SnapshotPressure() if len(snapshot.Active) != 0 || snapshot.ActiveTotal != 0 { t.Fatalf("snapshot after release = %+v, want inactive", snapshot) } if snapshot.AcquiredTotal != 3 || snapshot.ReleasedTotal != 3 { t.Fatalf("snapshot totals = %+v, want acquired/released 3", snapshot) } if snapshot.MaxActive["route-a"] != 2 || snapshot.MaxActive["route-b"] != 1 || snapshot.MaxActiveTotal != 3 { t.Fatalf("snapshot max = %+v", snapshot) } if snapshot.LastAcquiredRoute != "route-b" || snapshot.LastReleasedRoute != "route-b" { t.Fatalf("snapshot last routes = %+v", snapshot) } }