github.com/minio/mc@v0.0.0-20240503112107-b471de8d1882/cmd/ilm/utils_test.go (about) 1 // Copyright (c) 2022 MinIO, Inc. 2 // 3 // This file is part of MinIO Object Storage stack 4 // 5 // This program is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU Affero General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU Affero General Public License for more details. 14 // 15 // You should have received a copy of the GNU Affero General Public License 16 // along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 package ilm 19 20 import ( 21 "testing" 22 23 "github.com/minio/minio-go/v7/pkg/lifecycle" 24 ) 25 26 func TestILMTags(t *testing.T) { 27 tests := []struct { 28 rule lifecycle.Rule 29 expected string 30 }{ 31 { 32 rule: lifecycle.Rule{ 33 ID: "one-tag", 34 RuleFilter: lifecycle.Filter{ 35 Tag: lifecycle.Tag{ 36 Key: "key1", 37 Value: "val1", 38 }, 39 }, 40 }, 41 expected: "key1=val1", 42 }, 43 { 44 rule: lifecycle.Rule{ 45 ID: "many-tags", 46 RuleFilter: lifecycle.Filter{ 47 And: lifecycle.And{ 48 Tags: []lifecycle.Tag{ 49 { 50 Key: "key1", 51 Value: "val1", 52 }, 53 { 54 Key: "key2", 55 Value: "val2", 56 }, 57 { 58 Key: "key3", 59 Value: "val3", 60 }, 61 }, 62 }, 63 }, 64 }, 65 expected: "key1=val1&key2=val2&key3=val3", 66 }, 67 } 68 for i, test := range tests { 69 if got := getTags(test.rule); got != test.expected { 70 t.Fatalf("%d: Expected %s but got %s", i+1, test.expected, got) 71 } 72 } 73 }