MCPcopy Create free account
hub / github.com/abice/go-enum / TestSQLMarshal

Function TestSQLMarshal

example/sql_test.go:142–200  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

140}
141
142func TestSQLMarshal(t *testing.T) {
143 var val SQLMarshalType
144 var val2 SQLMarshalType
145
146 result, err := json.Marshal(val)
147 require.NoError(t, err)
148 assert.Equal(t, `{"status":null,"status_str":null}`, string(result))
149
150 require.NoError(t, json.Unmarshal([]byte(`{}`), &val2))
151 assert.Equal(t, val, val2)
152
153 require.NoError(t, json.Unmarshal(result, &val2))
154 val.Status.Set = true
155 val.StatusStr.Set = true
156 assert.Equal(t, val, val2)
157
158 val.Status = NewNullProjectStatus(1)
159 val.StatusStr = NewNullProjectStatusStr(2)
160 result, err = json.Marshal(val)
161 require.NoError(t, err)
162 assert.Equal(t, `{"status":"inWork","status_str":"completed"}`, string(result))
163
164 require.NoError(t, json.Unmarshal(result, &val2))
165 assert.Equal(t, val, val2)
166
167 require.NoError(t, json.Unmarshal([]byte(`{"status":"inWork"}`), &val2))
168 assert.Equal(t, val, val2)
169
170 require.NoError(t, json.Unmarshal([]byte(`{"status":"2"}`), &val2))
171 val.Status = NewNullProjectStatus(2)
172 assert.Equal(t, val, val2)
173
174 require.NoError(t, json.Unmarshal([]byte(`{"status":3}`), &val2))
175 val.Status = NewNullProjectStatus(3)
176 assert.Equal(t, val, val2)
177
178 require.NoError(t, json.Unmarshal([]byte(`{"status":null}`), &val2))
179 val.Status = NullProjectStatus{Set: true}
180 assert.Equal(t, val, val2)
181
182 val2 = SQLMarshalType{} // reset it so that the `set` value is false.
183
184 require.NoError(t, json.Unmarshal([]byte(`{"status2":"rejected"}`), &val2))
185 val.Status = NullProjectStatus{}
186 val.StatusStr = NullProjectStatusStr{}
187 val.Status2 = ProjectStatusRejected.Ptr()
188 assert.Equal(t, val, val2)
189
190 require.Error(t, json.Unmarshal([]byte(`{"status2":"xyz"}`), &val2))
191 val2 = SQLMarshalType{} // reset it so that the `set` value is false.
192
193 require.NoError(t, json.Unmarshal([]byte(`{"status_str":"rejected"}`), &val2))
194 val.Status = NullProjectStatus{}
195 val.StatusStr = NewNullProjectStatusStr(3)
196 val.Status2 = nil
197 assert.Equal(t, val, val2)
198
199 require.Error(t, json.Unmarshal([]byte(`{"status2":"xyz"}`), &val2))

Callers

nothing calls this directly

Calls 3

NewNullProjectStatusFunction · 0.85
NewNullProjectStatusStrFunction · 0.85
PtrMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…