Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201028153306-37f0764111ff / godoc / vfs / mapfs / mapfs_test.go
1 // Copyright 2013 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package mapfs
6
7 import (
8         "io/ioutil"
9         "os"
10         "reflect"
11         "testing"
12 )
13
14 func TestOpenRoot(t *testing.T) {
15         fs := New(map[string]string{
16                 "foo/bar/three.txt": "a",
17                 "foo/bar.txt":       "b",
18                 "top.txt":           "c",
19                 "other-top.txt":     "d",
20         })
21         tests := []struct {
22                 path string
23                 want string
24         }{
25                 {"/foo/bar/three.txt", "a"},
26                 {"foo/bar/three.txt", "a"},
27                 {"foo/bar.txt", "b"},
28                 {"top.txt", "c"},
29                 {"/top.txt", "c"},
30                 {"other-top.txt", "d"},
31                 {"/other-top.txt", "d"},
32         }
33         for _, tt := range tests {
34                 rsc, err := fs.Open(tt.path)
35                 if err != nil {
36                         t.Errorf("Open(%q) = %v", tt.path, err)
37                         continue
38                 }
39                 slurp, err := ioutil.ReadAll(rsc)
40                 if err != nil {
41                         t.Error(err)
42                 }
43                 if string(slurp) != tt.want {
44                         t.Errorf("Read(%q) = %q; want %q", tt.path, tt.want, slurp)
45                 }
46                 rsc.Close()
47         }
48
49         _, err := fs.Open("/xxxx")
50         if !os.IsNotExist(err) {
51                 t.Errorf("ReadDir /xxxx = %v; want os.IsNotExist error", err)
52         }
53 }
54
55 func TestReaddir(t *testing.T) {
56         fs := New(map[string]string{
57                 "foo/bar/three.txt": "333",
58                 "foo/bar.txt":       "22",
59                 "top.txt":           "top.txt file",
60                 "other-top.txt":     "other-top.txt file",
61         })
62         tests := []struct {
63                 dir  string
64                 want []os.FileInfo
65         }{
66                 {
67                         dir: "/",
68                         want: []os.FileInfo{
69                                 mapFI{name: "foo", dir: true},
70                                 mapFI{name: "other-top.txt", size: len("other-top.txt file")},
71                                 mapFI{name: "top.txt", size: len("top.txt file")},
72                         },
73                 },
74                 {
75                         dir: "/foo",
76                         want: []os.FileInfo{
77                                 mapFI{name: "bar", dir: true},
78                                 mapFI{name: "bar.txt", size: 2},
79                         },
80                 },
81                 {
82                         dir: "/foo/",
83                         want: []os.FileInfo{
84                                 mapFI{name: "bar", dir: true},
85                                 mapFI{name: "bar.txt", size: 2},
86                         },
87                 },
88                 {
89                         dir: "/foo/bar",
90                         want: []os.FileInfo{
91                                 mapFI{name: "three.txt", size: 3},
92                         },
93                 },
94         }
95         for _, tt := range tests {
96                 fis, err := fs.ReadDir(tt.dir)
97                 if err != nil {
98                         t.Errorf("ReadDir(%q) = %v", tt.dir, err)
99                         continue
100                 }
101                 if !reflect.DeepEqual(fis, tt.want) {
102                         t.Errorf("ReadDir(%q) = %#v; want %#v", tt.dir, fis, tt.want)
103                         continue
104                 }
105         }
106
107         _, err := fs.ReadDir("/xxxx")
108         if !os.IsNotExist(err) {
109                 t.Errorf("ReadDir /xxxx = %v; want os.IsNotExist error", err)
110         }
111 }