github.com/cilium/cilium@v1.16.2/operator/pkg/model/model_test.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright Authors of Cilium
     3  
     4  package model
     5  
     6  import (
     7  	"reflect"
     8  	"testing"
     9  )
    10  
    11  var testTLSListener = TLSPassthroughListener{
    12  	Name: "test-tls-listener",
    13  	Port: 443,
    14  }
    15  
    16  var testTLSListener2 = TLSPassthroughListener{
    17  	Name: "test-tls-listener2",
    18  	Port: 443,
    19  }
    20  
    21  var testHTTPListener = HTTPListener{
    22  	Name: "test-http-listener",
    23  	Port: 80,
    24  }
    25  
    26  var testHTTPListener2 = HTTPListener{
    27  	Name: "test-http-listener2",
    28  	Port: 80,
    29  }
    30  
    31  func TestModel_GetListeners(t *testing.T) {
    32  	type fields struct {
    33  		HTTP []HTTPListener
    34  		TLS  []TLSPassthroughListener
    35  	}
    36  	tests := []struct {
    37  		name   string
    38  		fields fields
    39  		want   []Listener
    40  	}{
    41  		{
    42  			name: "Combine HTTP and TLS listeners",
    43  			fields: fields{
    44  				HTTP: []HTTPListener{testHTTPListener, testHTTPListener2},
    45  				TLS:  []TLSPassthroughListener{testTLSListener, testTLSListener2},
    46  			},
    47  			want: []Listener{&testHTTPListener, &testHTTPListener2, &testTLSListener, &testTLSListener2},
    48  		},
    49  		{
    50  			name: "Only HTTP listeners",
    51  			fields: fields{
    52  				HTTP: []HTTPListener{testHTTPListener, testHTTPListener2},
    53  			},
    54  			want: []Listener{&testHTTPListener, &testHTTPListener2},
    55  		},
    56  		{
    57  			name: "Only TLS listeners",
    58  			fields: fields{
    59  				TLS: []TLSPassthroughListener{testTLSListener, testTLSListener2},
    60  			},
    61  			want: []Listener{&testTLSListener, &testTLSListener2},
    62  		},
    63  		{
    64  			name:   "No listeners",
    65  			fields: fields{},
    66  			want:   nil,
    67  		},
    68  	}
    69  	for _, tt := range tests {
    70  		t.Run(tt.name, func(t *testing.T) {
    71  			m := &Model{
    72  				HTTP:           tt.fields.HTTP,
    73  				TLSPassthrough: tt.fields.TLS,
    74  			}
    75  			if got := m.GetListeners(); !reflect.DeepEqual(got, tt.want) {
    76  				t.Errorf("Model.GetListeners() = %v, want %v", got, tt.want)
    77  			}
    78  		})
    79  	}
    80  }