github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/pkg/cli/cmd/infrastructure/loader_adapter_test.go (about)

     1  /*
     2  Copyright (C) 2022-2023 ApeCloud Co., Ltd
     3  
     4  This file is part of KubeBlocks project
     5  
     6  This program is free software: you can redistribute it and/or modify
     7  it under the terms of the GNU Affero General Public License as published by
     8  the Free Software Foundation, either version 3 of the License, or
     9  (at your option) any later version.
    10  
    11  This program is distributed in the hope that it will be useful
    12  but WITHOUT ANY WARRANTY; without even the implied warranty of
    13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14  GNU Affero General Public License for more details.
    15  
    16  You should have received a copy of the GNU Affero General Public License
    17  along with this program.  If not, see <http://www.gnu.org/licenses/>.
    18  */
    19  
    20  package infrastructure
    21  
    22  import (
    23  	"testing"
    24  
    25  	kubekeyapiv1alpha2 "github.com/kubesphere/kubekey/v3/cmd/kk/apis/kubekey/v1alpha2"
    26  
    27  	"github.com/1aal/kubeblocks/pkg/cli/cmd/infrastructure/types"
    28  	"github.com/1aal/kubeblocks/pkg/configuration/container"
    29  )
    30  
    31  func TestCreateClusterWithOptions(t *testing.T) {
    32  	tests := []struct {
    33  		name    string
    34  		args    *createOptions
    35  		want    *kubekeyapiv1alpha2.ClusterSpec
    36  		wantErr bool
    37  	}{{
    38  		name: "generateClusterTest",
    39  		args: &createOptions{
    40  			version: types.InfraVersionInfo{},
    41  			criType: string(container.ContainerdType),
    42  			clusterOptions: clusterOptions{
    43  				clusterName: "for_test",
    44  				Cluster: types.Cluster{
    45  					Nodes: []types.ClusterNode{
    46  						{
    47  							Name:            "node1",
    48  							Address:         "127.0.0.1",
    49  							InternalAddress: "127.0.0.1",
    50  						}, {
    51  							Name:            "node2",
    52  							Address:         "127.0.0.2",
    53  							InternalAddress: "127.0.0.2",
    54  						},
    55  					},
    56  					User: types.ClusterUser{
    57  						Name:     "test",
    58  						Password: "test",
    59  					},
    60  					RoleGroup: types.RoleGroup{
    61  						ETCD:   []string{"node1"},
    62  						Master: []string{"node1"},
    63  						Worker: []string{"node2"},
    64  					},
    65  				},
    66  			},
    67  		},
    68  	}}
    69  	for _, tt := range tests {
    70  		t.Run(tt.name, func(t *testing.T) {
    71  			tt.args.Cluster.Kubernetes.AutoDefaultFill()
    72  			got, err := createClusterWithOptions(buildTemplateParams(tt.args))
    73  			if (err != nil) != tt.wantErr {
    74  				t.Errorf("createClusterWithOptions() error = %v, wantErr %v", err, tt.wantErr)
    75  				return
    76  			}
    77  			if got == nil {
    78  				t.Errorf("createClusterWithOptions() got = %v, want %v", got, tt.want)
    79  			}
    80  		})
    81  	}
    82  }