github.com/tickoalcantara12/micro/v3@v3.0.0-20221007104245-9d75b9bcbab9/service/runtime/resource_test.go (about) 1 // Licensed under the Apache License, Version 2.0 (the "License"); 2 // you may not use this file except in compliance with the License. 3 // You may obtain a copy of the License at 4 // 5 // https://www.apache.org/licenses/LICENSE-2.0 6 // 7 // Unless required by applicable law or agreed to in writing, software 8 // distributed under the License is distributed on an "AS IS" BASIS, 9 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 // See the License for the specific language governing permissions and 11 // limitations under the License. 12 // 13 // Original source: github.com/micro/go-micro/v3/runtime/resource_test.go 14 15 package runtime 16 17 import ( 18 "testing" 19 20 "github.com/stretchr/testify/assert" 21 ) 22 23 func TestResources(t *testing.T) { 24 25 // Namespace: 26 assert.Equal(t, TypeNamespace, new(Namespace).Type()) 27 namespace, err := NewNamespace("") 28 assert.Error(t, err) 29 assert.Equal(t, ErrInvalidResource, err) 30 assert.Nil(t, namespace) 31 32 namespace, err = NewNamespace("test-namespace") 33 assert.NoError(t, err) 34 assert.NotNil(t, namespace) 35 assert.Equal(t, TypeNamespace, namespace.Type()) 36 assert.Equal(t, "test-namespace", namespace.String()) 37 38 // NetworkPolicy: 39 assert.Equal(t, TypeNetworkPolicy, new(NetworkPolicy).Type()) 40 networkPolicy, err := NewNetworkPolicy("", "", nil) 41 assert.Error(t, err) 42 assert.Equal(t, ErrInvalidResource, err) 43 assert.Nil(t, networkPolicy) 44 45 networkPolicy, err = NewNetworkPolicy("test", "", nil) 46 assert.Error(t, err) 47 assert.Equal(t, ErrInvalidResource, err) 48 assert.Nil(t, networkPolicy) 49 50 networkPolicy, err = NewNetworkPolicy("", "test", nil) 51 assert.Error(t, err) 52 assert.Equal(t, ErrInvalidResource, err) 53 assert.Nil(t, networkPolicy) 54 55 networkPolicy, err = NewNetworkPolicy("ingress", "test", nil) 56 assert.NoError(t, err) 57 assert.NotNil(t, networkPolicy) 58 assert.Equal(t, TypeNetworkPolicy, networkPolicy.Type()) 59 assert.Equal(t, "test.ingress", networkPolicy.String()) 60 assert.Len(t, networkPolicy.AllowedLabels, 1) 61 62 networkPolicy, err = NewNetworkPolicy("ingress", "test", map[string]string{"foo": "bar", "bar": "foo"}) 63 assert.Len(t, networkPolicy.AllowedLabels, 2) 64 65 // ResourceQuota: 66 assert.Equal(t, TypeResourceQuota, new(ResourceQuota).Type()) 67 resourceQuota, err := NewResourceQuota("", "", nil, nil) 68 assert.Error(t, err) 69 assert.Equal(t, ErrInvalidResource, err) 70 assert.Nil(t, resourceQuota) 71 72 resourceQuota, err = NewResourceQuota("test", "", nil, nil) 73 assert.Error(t, err) 74 assert.Equal(t, ErrInvalidResource, err) 75 assert.Nil(t, resourceQuota) 76 77 resourceQuota, err = NewResourceQuota("", "test", nil, nil) 78 assert.Error(t, err) 79 assert.Equal(t, ErrInvalidResource, err) 80 assert.Nil(t, resourceQuota) 81 82 resourceQuota, err = NewResourceQuota("userquota", "test", nil, nil) 83 assert.NoError(t, err) 84 assert.NotNil(t, networkPolicy) 85 assert.Equal(t, TypeResourceQuota, resourceQuota.Type()) 86 assert.Equal(t, "test.userquota", resourceQuota.String()) 87 assert.Equal(t, 0, resourceQuota.Requests.CPU) 88 assert.Equal(t, 2000, resourceQuota.Requests.Mem) 89 assert.Equal(t, 5000, resourceQuota.Requests.Disk) 90 assert.Equal(t, 0, resourceQuota.Limits.CPU) 91 assert.Equal(t, 4000, resourceQuota.Limits.Mem) 92 assert.Equal(t, 10000, resourceQuota.Limits.Disk) 93 94 resourceQuota, err = NewResourceQuota("userquota", "test", &Resources{Mem: 777}, &Resources{Disk: 8888}) 95 assert.Equal(t, 0, resourceQuota.Requests.CPU) 96 assert.Equal(t, 777, resourceQuota.Requests.Mem) 97 assert.Equal(t, 0, resourceQuota.Requests.Disk) 98 assert.Equal(t, 0, resourceQuota.Limits.CPU) 99 assert.Equal(t, 0, resourceQuota.Limits.Mem) 100 assert.Equal(t, 8888, resourceQuota.Limits.Disk) 101 102 // Service: 103 assert.Equal(t, TypeService, new(Service).Type()) 104 service, err := NewService("", "") 105 assert.Error(t, err) 106 assert.Equal(t, ErrInvalidResource, err) 107 assert.Nil(t, service) 108 109 service, err = NewService("test-service", "oldest") 110 service.Metadata = map[string]string{"namespace": "testing"} 111 assert.NoError(t, err) 112 assert.NotNil(t, service) 113 assert.Equal(t, TypeService, service.Type()) 114 assert.Equal(t, "service://testing@test-service:oldest", service.String()) 115 assert.Equal(t, "oldest", service.Version) 116 }