github.com/verrazzano/verrazzano-monitoring-operator@v0.0.30/pkg/vmo/vmospec_test.go (about) 1 // Copyright (C) 2022, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 package vmo 5 6 import ( 7 "github.com/stretchr/testify/assert" 8 vmcontrollerv1 "github.com/verrazzano/verrazzano-monitoring-operator/pkg/apis/vmcontroller/v1" 9 "testing" 10 ) 11 12 func TestInitNode(t *testing.T) { 13 var tests = []struct { 14 name string 15 node *vmcontrollerv1.ElasticsearchNode 16 expected *vmcontrollerv1.ElasticsearchNode 17 }{ 18 { 19 "adds role, and role based name when name/role are empty", 20 &vmcontrollerv1.ElasticsearchNode{ 21 Name: "", 22 }, 23 &vmcontrollerv1.ElasticsearchNode{ 24 Name: "es-master", 25 Roles: []vmcontrollerv1.NodeRole{vmcontrollerv1.MasterRole}, 26 }, 27 }, 28 { 29 "does not change name/role when they are present", 30 &vmcontrollerv1.ElasticsearchNode{ 31 Name: "foobar", 32 Roles: []vmcontrollerv1.NodeRole{ 33 vmcontrollerv1.DataRole, 34 vmcontrollerv1.MasterRole, 35 }, 36 }, 37 &vmcontrollerv1.ElasticsearchNode{ 38 Name: "foobar", 39 Roles: []vmcontrollerv1.NodeRole{ 40 vmcontrollerv1.DataRole, 41 vmcontrollerv1.MasterRole, 42 }, 43 }, 44 }, 45 } 46 47 for _, tt := range tests { 48 initNode(tt.node, vmcontrollerv1.MasterRole) 49 assert.EqualValues(t, tt.expected.Roles, tt.node.Roles) 50 assert.Equal(t, tt.expected.Name, tt.node.Name) 51 } 52 } 53 54 func TestInitStorageElement(t *testing.T) { 55 var tests = []struct { 56 name string 57 storage *vmcontrollerv1.Storage 58 expected *vmcontrollerv1.Storage 59 replicas int 60 }{ 61 { 62 "does nothing when no storage is configured", 63 &vmcontrollerv1.Storage{}, 64 &vmcontrollerv1.Storage{}, 65 1, 66 }, 67 { 68 "adds 1 PVC when storage is configured with 1 replica", 69 &vmcontrollerv1.Storage{Size: "1G"}, 70 &vmcontrollerv1.Storage{ 71 PvcNames: []string{"pvc"}, 72 }, 73 1, 74 }, 75 { 76 "adds 3 PVCs when storage is configured with 3 replicas", 77 &vmcontrollerv1.Storage{Size: "1G"}, 78 &vmcontrollerv1.Storage{ 79 PvcNames: []string{"pvc", "pvc-1", "pvc-2"}, 80 }, 81 3, 82 }, 83 { 84 "adds PVC when replicas have increased", 85 &vmcontrollerv1.Storage{ 86 Size: "1G", 87 PvcNames: []string{"pvc", "pvc-1"}, 88 }, 89 &vmcontrollerv1.Storage{ 90 PvcNames: []string{"pvc", "pvc-1", "pvc-2"}, 91 }, 92 3, 93 }, 94 } 95 96 for _, tt := range tests { 97 t.Run(tt.name, func(t *testing.T) { 98 initStorageElement(tt.storage, tt.replicas, "pvc") 99 assert.EqualValues(t, tt.expected.PvcNames, tt.storage.PvcNames) 100 }) 101 } 102 }