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)
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
33 assert.Equal(t, "given_name_1", unmarshalled.GivenName)
34 assert.Equal(t, "", unmarshalled.FamilyName)
35 assert.Equal(t, "", unmarshalled.FullName)
36
37 assert.Equal(t, "", unmarshalled.Email)
38
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)
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
67 assert.Equal(t, "given_name_1", unmarshalled.GivenName)
68 assert.Equal(t, "", unmarshalled.FamilyName)
69 assert.Equal(t, "", unmarshalled.FullName)
70
71 assert.Equal(t, "", unmarshalled.Email)
72
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)
98
99
100 assert.Equal(t, "Eyal", unmarshalled.GivenName)
101 assert.Equal(t, "", unmarshalled.FamilyName)
102 assert.Equal(t, "", unmarshalled.FullName)
103
104 assert.Equal(t, "ew@gmail.com", unmarshalled.Email)
105
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)
126
127 assert.Equal(t, "Eyal", unmarshalled.GivenName)
128 assert.Equal(t, "", unmarshalled.FamilyName)
129 assert.Equal(t, "", unmarshalled.FullName)
130
131 assert.Equal(t, "ew@gmail.com", unmarshalled.Email)
132
133 assert.Nil(t, unmarshalled.Address)
134 }
135
View as plain text