@@ -2,6 +2,8 @@ package validation
22
33import (
44 "testing"
5+
6+ "github.com/redhat-developer/app-services-cli/pkg/localize/goi18n"
57)
68
79func TestValidateName (t * testing.T ) {
@@ -69,6 +71,58 @@ func TestValidateName(t *testing.T) {
6971 }
7072}
7173
74+ func TestValidateUUID (t * testing.T ) {
75+ type args struct {
76+ val interface {}
77+ }
78+ tests := []struct {
79+ name string
80+ args args
81+ wantErr bool
82+ }{
83+ {
84+ name : "fails when length is 5" ,
85+ args : args {"kafka" },
86+ wantErr : true ,
87+ },
88+ {
89+ name : "fails for empty string" ,
90+ args : args {"" },
91+ wantErr : true ,
92+ },
93+ {
94+ name : "fails for special chars" ,
95+ args : args {"9e4d1b1f-19d*-47c2-a334-e420c5e5bbce" },
96+ wantErr : true ,
97+ },
98+ {
99+ name : "passes for valid UUID" ,
100+ args : args {"9e4d1b1f-19dd-47c2-a334-e420c5e5bbce" },
101+ wantErr : false ,
102+ },
103+ {
104+ name : "passes for numeric UUID" ,
105+ args : args {"11111111-2222-3333-4444-555555555555" },
106+ wantErr : false ,
107+ },
108+ {
109+ name : "fails for ID containing capital letters" ,
110+ args : args {"9e4d1b1f-19dd-47c2-A334-e420c5e5bbce" },
111+ wantErr : true ,
112+ },
113+ }
114+
115+ localizer , _ := goi18n .New (nil )
116+ // nolint:scopelint
117+ for _ , tt := range tests {
118+ t .Run (tt .name , func (t * testing.T ) {
119+ if err := ValidateUUID (localizer )(tt .args .val ); (err != nil ) != tt .wantErr {
120+ t .Errorf ("ValidateUUID() error = %v, wantErr %v" , err , tt .wantErr )
121+ }
122+ })
123+ }
124+ }
125+
72126func TestValidateDescription (t * testing.T ) {
73127 type args struct {
74128 val interface {}
0 commit comments