layer1: add namespace remove dispatch step 33
This commit is contained in:
@@ -11,8 +11,10 @@ import (
|
||||
type testNamespaceSubscriber struct {
|
||||
name string
|
||||
addErr error
|
||||
removeErr error
|
||||
resyncErr error
|
||||
addCalls int
|
||||
removeCalls int
|
||||
resyncCalls int
|
||||
}
|
||||
|
||||
@@ -26,7 +28,8 @@ func (s *testNamespaceSubscriber) OnNamespaceAdd(ctx context.Context, record Nam
|
||||
}
|
||||
|
||||
func (s *testNamespaceSubscriber) OnNamespaceRemove(ctx context.Context, record NamespaceRecord) error {
|
||||
return nil
|
||||
s.removeCalls++
|
||||
return s.removeErr
|
||||
}
|
||||
|
||||
func (s *testNamespaceSubscriber) OnNamespaceResync(ctx context.Context, record NamespaceRecord) error {
|
||||
@@ -310,6 +313,43 @@ func TestNamespaceManagerDispatchResyncFailure(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestNamespaceManagerDispatchRemove(t *testing.T) {
|
||||
manager := NewNamespaceManager()
|
||||
manager.Upsert(NamespaceEvent{Type: NamespaceEventAdd, Name: "tenant-a", Source: NamespaceSourceWatcher})
|
||||
router := &testNamespaceSubscriber{name: "router"}
|
||||
builder := &testNamespaceSubscriber{name: "buildermgr"}
|
||||
manager.Subscribe(router)
|
||||
manager.Subscribe(builder)
|
||||
|
||||
record, ok, err := manager.DispatchRemove(context.Background(), "tenant-a")
|
||||
if !ok || err != nil {
|
||||
t.Fatalf("expected dispatch remove success, ok=%v err=%v", ok, err)
|
||||
}
|
||||
if router.removeCalls != 1 || builder.removeCalls != 1 {
|
||||
t.Fatalf("expected both subscribers to receive remove call")
|
||||
}
|
||||
if record.Phase != NamespacePhaseRemoved {
|
||||
t.Fatalf("expected removed phase after dispatch remove, got %s", record.Phase)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNamespaceManagerDispatchRemoveFailure(t *testing.T) {
|
||||
manager := NewNamespaceManager()
|
||||
manager.Upsert(NamespaceEvent{Type: NamespaceEventAdd, Name: "tenant-a", Source: NamespaceSourceWatcher})
|
||||
router := &testNamespaceSubscriber{name: "router", removeErr: errors.New("remove failed")}
|
||||
builder := &testNamespaceSubscriber{name: "buildermgr"}
|
||||
manager.Subscribe(router)
|
||||
manager.Subscribe(builder)
|
||||
|
||||
record, ok, err := manager.DispatchRemove(context.Background(), "tenant-a")
|
||||
if !ok || err == nil {
|
||||
t.Fatalf("expected dispatch remove failure, ok=%v err=%v", ok, err)
|
||||
}
|
||||
if record.Phase != NamespacePhaseRemoved {
|
||||
t.Fatalf("expected removed phase even on dispatch remove error, got %s", record.Phase)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNamespaceSubscriberFuncs(t *testing.T) {
|
||||
addCalls := 0
|
||||
removeCalls := 0
|
||||
|
||||
Reference in New Issue
Block a user