github.com/vmware/go-vcloud-director/v2@v2.24.0/govcd/org_saml_unit_test.go (about) 1 //go:build unit || ALL 2 3 /* 4 * Copyright 2023 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. 5 */ 6 7 package govcd 8 9 import ( 10 _ "embed" 11 "fmt" 12 "testing" 13 ) 14 15 //go:embed test-resources/saml-test-sp.xml 16 var md1 string 17 18 //go:embed test-resources/saml-test-sp-invalid.xml 19 var md2 string 20 21 const md3 = ` 22 <EntityDescriptor> 23 <SPSSODescriptor> 24 </SPSSODescriptor> 25 </EntityDescriptor> 26 ` 27 28 func TestNormalizeSamlMetadata(t *testing.T) { 29 30 type mdSample struct { 31 name string 32 data string 33 wantErr bool 34 } 35 var samples = []mdSample{ 36 {"correct", md1, false}, 37 {"no-tags", md2, false}, 38 {"empty-SPSSODescriptor", md3, true}, 39 } 40 41 for i, sample := range samples { 42 t.Run(fmt.Sprintf("%02d-%s", i, sample.name), func(t *testing.T) { 43 result, err := normalizeServiceProviderSamlMetadata(sample.data) 44 if err != nil { 45 if !sample.wantErr { 46 t.Fatalf("unwanted error: %s ", err) 47 } 48 t.Logf("expected error found: %s\n", err) 49 } else { 50 if sample.wantErr { 51 t.Logf("%s\n", result) 52 t.Fatalf("expected an error but returned success") 53 } 54 } 55 if len(result) == 0 { 56 t.Fatalf("unexpected 0 length for result\n") 57 } 58 59 errors := ValidateSamlServiceProviderMetadata(result) 60 61 if errors != nil { 62 message := GetErrorMessageFromErrorSlice(errors) 63 t.Logf("%s\n", message) 64 if !sample.wantErr { 65 t.Fatalf("validation errors found\n") 66 } 67 } 68 }) 69 } 70 }