MCPcopy Create free account
hub / github.com/crawshaw/jsonfile / TestBasic

Function TestBasic

jsonfile_test.go:23–67  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

21}
22
23func TestBasic(t *testing.T) {
24 t.Parallel()
25 type Data struct {
26 Name string
27 Friends []string
28 Ages map[string]int
29 }
30 want := Data{
31 Name: "Alice",
32 Friends: []string{"Bob", "Carol", "Dave"},
33 Ages: map[string]int{"Bob": 25, "Carol": 30, "Dave": 35},
34 }
35
36 path := filepath.Join(t.TempDir(), "testbasic.json")
37 data, err := New[Data](path)
38 if err != nil {
39 t.Fatal(err)
40 }
41
42 mustWrite(t, data, func(data *Data) {
43 data.Name = want.Name
44 data.Friends = append([]string{}, want.Friends...)
45 data.Ages = make(map[string]int, len(want.Ages))
46 for k, v := range want.Ages {
47 data.Ages[k] = v
48 }
49 })
50 mustWrite(t, data, func(*Data) {}) // noop
51
52 data.Read(func(data *Data) {
53 if !reflect.DeepEqual(*data, want) {
54 t.Errorf("got %+v, want %+v", *data, want)
55 }
56 })
57
58 data, err = Load[Data](path)
59 if err != nil {
60 t.Fatal(err)
61 }
62 data.Read(func(data *Data) {
63 if !reflect.DeepEqual(*data, want) {
64 t.Errorf("got %+v, want %+v", *data, want)
65 }
66 })
67}
68
69func TestRollbackOnProgramError(t *testing.T) {
70 t.Parallel()

Callers

nothing calls this directly

Calls 2

mustWriteFunction · 0.85
ReadMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…