github.com/cilium/cilium@v1.16.2/pkg/debug/subsystem_test.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright Authors of Cilium
     3  
     4  package debug
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  type debugObj struct{}
    13  
    14  func (d *debugObj) DebugStatus() string {
    15  	return "test3"
    16  }
    17  
    18  func TestSubsystem(t *testing.T) {
    19  	sf := newStatusFunctions()
    20  	require.Equal(t, StatusMap{}, sf.collectStatus())
    21  
    22  	sf = newStatusFunctions()
    23  	sf.register("foo", func() string { return "test1" })
    24  	require.Equal(t, StatusMap{
    25  		"foo": "test1",
    26  	}, sf.collectStatus())
    27  
    28  	sf.register("bar", func() string { return "test2" })
    29  	require.Equal(t, StatusMap{
    30  		"foo": "test1",
    31  		"bar": "test2",
    32  	}, sf.collectStatus())
    33  
    34  	sf.register("bar", func() string { return "test2" })
    35  	require.Equal(t, StatusMap{
    36  		"foo": "test1",
    37  		"bar": "test2",
    38  	}, sf.collectStatus())
    39  
    40  	sf.registerStatusObject("baz", &debugObj{})
    41  	require.Equal(t, StatusMap{
    42  		"foo": "test1",
    43  		"bar": "test2",
    44  		"baz": "test3",
    45  	}, sf.collectStatus())
    46  }