(t *testing.T)
| 831 | } |
| 832 | |
| 833 | func TestObjectList(t *testing.T) { |
| 834 | s := RunBasicJetStreamServer() |
| 835 | defer shutdownJSServerAndRemoveStorage(t, s) |
| 836 | |
| 837 | nc, js := jsClient(t, s) |
| 838 | defer nc.Close() |
| 839 | |
| 840 | root, err := js.CreateObjectStore(&nats.ObjectStoreConfig{Bucket: "ROOT"}) |
| 841 | expectOk(t, err) |
| 842 | |
| 843 | _, err = root.List() |
| 844 | expectErr(t, err, nats.ErrNoObjectsFound) |
| 845 | |
| 846 | put := func(name, value string) { |
| 847 | _, err = root.PutString(name, value) |
| 848 | expectOk(t, err) |
| 849 | } |
| 850 | |
| 851 | put("A", "AAA") |
| 852 | put("B", "BBB") |
| 853 | put("C", "CCC") |
| 854 | put("B", "bbb") |
| 855 | |
| 856 | // Self link |
| 857 | info, err := root.GetInfo("B") |
| 858 | expectOk(t, err) |
| 859 | _, err = root.AddLink("b", info) |
| 860 | expectOk(t, err) |
| 861 | |
| 862 | put("D", "DDD") |
| 863 | err = root.Delete("D") |
| 864 | expectOk(t, err) |
| 865 | |
| 866 | t.Run("without deleted objects", func(t *testing.T) { |
| 867 | lch, err := root.List() |
| 868 | expectOk(t, err) |
| 869 | |
| 870 | omap := make(map[string]struct{}) |
| 871 | for _, info := range lch { |
| 872 | if _, ok := omap[info.Name]; ok { |
| 873 | t.Fatalf("Already saw %q", info.Name) |
| 874 | } |
| 875 | omap[info.Name] = struct{}{} |
| 876 | } |
| 877 | if len(omap) != 4 { |
| 878 | t.Fatalf("Expected 4 total objects, got %d", len(omap)) |
| 879 | } |
| 880 | expected := map[string]struct{}{ |
| 881 | "A": struct{}{}, |
| 882 | "B": struct{}{}, |
| 883 | "C": struct{}{}, |
| 884 | "b": struct{}{}, |
| 885 | } |
| 886 | if !reflect.DeepEqual(omap, expected) { |
| 887 | t.Fatalf("Expected %+v but got %+v", expected, omap) |
| 888 | } |
| 889 | }) |
| 890 |
nothing calls this directly
no test coverage detected