MCPcopy Create free account
hub / github.com/dropbox/dbxcli / TestGetJSONRecursiveOutputsDirectoryAndFileResults

Function TestGetJSONRecursiveOutputsDirectoryAndFileResults

cmd/get_test.go:774–834  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

772}
773
774func TestGetJSONRecursiveOutputsDirectoryAndFileResults(t *testing.T) {
775 tmpDir := t.TempDir()
776 dst := filepath.Join(tmpDir, "out")
777
778 mock := &mockFilesClient{
779 getMetadataFn: func(arg *files.GetMetadataArg) (files.IsMetadata, error) {
780 return getTestFolderMetadata(arg.Path), nil
781 },
782 listFolderFn: func(arg *files.ListFolderArg) (*files.ListFolderResult, error) {
783 return &files.ListFolderResult{
784 Entries: []files.IsMetadata{
785 getTestFolderMetadata("/remote"),
786 getTestFolderMetadata("/remote/empty"),
787 getTestFileMetadata("/remote/file.txt", 4),
788 },
789 HasMore: false,
790 }, nil
791 },
792 downloadFn: func(arg *files.DownloadArg) (*files.FileMetadata, io.ReadCloser, error) {
793 return getTestFileMetadata(arg.Path, 4), io.NopCloser(strings.NewReader("data")), nil
794 },
795 }
796 stubFilesClient(t, mock)
797
798 var stdout, stderr bytes.Buffer
799 cmd := testGetJSONCmd(&stdout, &stderr)
800 if err := cmd.Flags().Set("recursive", "true"); err != nil {
801 t.Fatal(err)
802 }
803 if err := get(cmd, []string{"/remote", dst}); err != nil {
804 t.Fatalf("get error: %v", err)
805 }
806
807 got := decodeGetOutput(t, &stdout)
808 if got.Input.Source != "/remote" || got.Input.Target != dst || !got.Input.Recursive || got.Input.Stdout {
809 t.Fatalf("input = %+v", got.Input)
810 }
811 want := map[string]string{
812 dst: getStatusCreated,
813 filepath.Join(dst, "empty"): getStatusCreated,
814 filepath.Join(dst, "file.txt"): getStatusDownloaded,
815 }
816 if len(got.Results) != len(want) {
817 t.Fatalf("results len = %d, want %d: %+v", len(got.Results), len(want), got.Results)
818 }
819 for _, result := range got.Results {
820 wantStatus, ok := want[result.Input.Target]
821 if !ok {
822 t.Fatalf("unexpected target %q", result.Input.Target)
823 }
824 if result.Status != wantStatus {
825 t.Fatalf("status for %s = %s, want %s", result.Input.Target, result.Status, wantStatus)
826 }
827 if result.Result == nil {
828 t.Fatalf("result metadata for %s is nil", result.Input.Target)
829 }
830 }
831 if !strings.Contains(stderr.String(), "Downloading /remote/file.txt") {

Callers

nothing calls this directly

Calls 6

getTestFolderMetadataFunction · 0.85
getTestFileMetadataFunction · 0.85
stubFilesClientFunction · 0.85
testGetJSONCmdFunction · 0.85
getFunction · 0.85
decodeGetOutputFunction · 0.85

Tested by

no test coverage detected