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  }