...

Source file src/edge-infra.dev/pkg/edge/iam/profile/profile_test.go

Documentation: edge-infra.dev/pkg/edge/iam/profile

     1  package profile
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  func TestProfile_WithoutAddress(t *testing.T) {
    12  	p := &Profile{
    13  		Subject:      "subject_1",
    14  		Organization: "organization_1",
    15  		Roles:        "roles_1",
    16  		GivenName:    "given_name_1",
    17  	}
    18  
    19  	res, _ := json.Marshal(p)
    20  	fmt.Println(string(res))
    21  	expectedJSON := "{\"sub\":\"subject_1\",\"org\":\"organization_1\",\"rls\":\"roles_1\",\"given_name\":\"given_name_1\",\"last_updated\":0,\"alias\":\"\"}"
    22  	assert.Equal(t, expectedJSON, string(res))
    23  
    24  	var unmarshalled Profile
    25  	json.Unmarshal(res, &unmarshalled) //nolint:errcheck
    26  
    27  	assert.Equal(t, "subject_1", unmarshalled.Subject)
    28  	assert.Equal(t, "organization_1", unmarshalled.Organization)
    29  	assert.Equal(t, "roles_1", unmarshalled.Roles)
    30  	assert.Equal(t, "", unmarshalled.Alias)
    31  	assert.Equal(t, int64(0), unmarshalled.LastUpdated)
    32  	//assert the names
    33  	assert.Equal(t, "given_name_1", unmarshalled.GivenName)
    34  	assert.Equal(t, "", unmarshalled.FamilyName)
    35  	assert.Equal(t, "", unmarshalled.FullName)
    36  	//assert the e-mail
    37  	assert.Equal(t, "", unmarshalled.Email)
    38  	//assert the address
    39  	assert.Nil(t, unmarshalled.Address)
    40  }
    41  
    42  func TestProfile_WithAddress(t *testing.T) {
    43  	p := &Profile{
    44  		Subject:      "subject_1",
    45  		Organization: "organization_1",
    46  		Roles:        "roles_1",
    47  		GivenName:    "given_name_1",
    48  		Address: &AddressClaim{
    49  			Street: "street_1",
    50  		},
    51  	}
    52  
    53  	res, _ := json.Marshal(p)
    54  	fmt.Println(string(res))
    55  	expectedJSON := "{\"sub\":\"subject_1\",\"org\":\"organization_1\",\"rls\":\"roles_1\",\"given_name\":\"given_name_1\",\"address\":{\"street_address\":\"street_1\"},\"last_updated\":0,\"alias\":\"\"}"
    56  	assert.Equal(t, expectedJSON, string(res))
    57  
    58  	var unmarshalled Profile
    59  	json.Unmarshal(res, &unmarshalled) //nolint:errcheck
    60  
    61  	assert.Equal(t, "subject_1", unmarshalled.Subject)
    62  	assert.Equal(t, "organization_1", unmarshalled.Organization)
    63  	assert.Equal(t, "roles_1", unmarshalled.Roles)
    64  	assert.Equal(t, "", unmarshalled.Alias)
    65  	assert.Equal(t, int64(0), unmarshalled.LastUpdated)
    66  	//assert the names
    67  	assert.Equal(t, "given_name_1", unmarshalled.GivenName)
    68  	assert.Equal(t, "", unmarshalled.FamilyName)
    69  	assert.Equal(t, "", unmarshalled.FullName)
    70  	//assert the e-mail
    71  	assert.Equal(t, "", unmarshalled.Email)
    72  	//assert the address
    73  	assert.Equal(t, "street_1", unmarshalled.Address.Street)
    74  	assert.Equal(t, "", unmarshalled.Address.Country)
    75  	assert.Equal(t, "", unmarshalled.Address.Locality)
    76  	assert.Equal(t, "", unmarshalled.Address.PostalCode)
    77  	assert.Equal(t, "", unmarshalled.Address.Region)
    78  	assert.Equal(t, "", unmarshalled.Address.Formatted)
    79  }
    80  
    81  func Test_ProvisioningUserProfileResponse_WithAddress(t *testing.T) {
    82  	r := &ProvisioningUserProfileResponse{
    83  		GivenName: "Eyal",
    84  		Email:     "ew@gmail.com",
    85  		Address: &Address{
    86  			City: "Tel-Aviv",
    87  		},
    88  	}
    89  
    90  	res, _ := json.Marshal(r)
    91  	fmt.Println(string(res))
    92  
    93  	expectedJSON := "{\"givenName\":\"Eyal\",\"email\":\"ew@gmail.com\",\"address\":{\"city\":\"Tel-Aviv\"}}"
    94  	assert.Equal(t, expectedJSON, string(res))
    95  
    96  	var unmarshalled ProvisioningUserProfileResponse
    97  	json.Unmarshal(res, &unmarshalled) //nolint:errcheck
    98  
    99  	//assert the names
   100  	assert.Equal(t, "Eyal", unmarshalled.GivenName)
   101  	assert.Equal(t, "", unmarshalled.FamilyName)
   102  	assert.Equal(t, "", unmarshalled.FullName)
   103  	//assert the e-mail
   104  	assert.Equal(t, "ew@gmail.com", unmarshalled.Email)
   105  	//assert the address
   106  	assert.Equal(t, "Tel-Aviv", unmarshalled.Address.City)
   107  	assert.Equal(t, "", unmarshalled.Address.Street)
   108  	assert.Equal(t, "", unmarshalled.Address.Country)
   109  	assert.Equal(t, "", unmarshalled.Address.State)
   110  	assert.Equal(t, "", unmarshalled.Address.PostalCode)
   111  }
   112  
   113  func Test_ProvisioningUserProfileResponse_WithoutAddress(t *testing.T) {
   114  	r := &ProvisioningUserProfileResponse{
   115  		GivenName: "Eyal",
   116  		Email:     "ew@gmail.com",
   117  	}
   118  
   119  	res, _ := json.Marshal(r)
   120  	fmt.Println(string(res))
   121  	expectedJSON := "{\"givenName\":\"Eyal\",\"email\":\"ew@gmail.com\"}"
   122  	assert.Equal(t, expectedJSON, string(res))
   123  
   124  	var unmarshalled ProvisioningUserProfileResponse
   125  	json.Unmarshal(res, &unmarshalled) //nolint:errcheck
   126  	//assert the names
   127  	assert.Equal(t, "Eyal", unmarshalled.GivenName)
   128  	assert.Equal(t, "", unmarshalled.FamilyName)
   129  	assert.Equal(t, "", unmarshalled.FullName)
   130  	//assert the e-mail
   131  	assert.Equal(t, "ew@gmail.com", unmarshalled.Email)
   132  	//assert the address
   133  	assert.Nil(t, unmarshalled.Address)
   134  }
   135  

View as plain text