blob: 381e6e009042265da87c46c6540910df1e8695a3 [file] [log] [blame]
package gitindex
import (
"io/ioutil"
"net/url"
"os"
"path/filepath"
"reflect"
"testing"
)
func TestDeleteRepos(t *testing.T) {
dir, err := ioutil.TempDir("", "")
if err != nil {
t.Fatalf("TempDir: %v", err)
}
defer os.RemoveAll(dir)
if err := createSubmoduleRepo(dir); err != nil {
t.Error("createSubmoduleRepo", err)
}
reposBefore, err := FindGitRepos(dir)
if err != nil {
t.Error("FindGitRepos", err)
}
gotBefore := map[string]struct{}{}
for _, r := range reposBefore {
p, err := filepath.Rel(dir, r)
if err != nil {
t.Fatalf("Relative: %v", err)
}
gotBefore[p] = struct{}{}
}
wantBefore := map[string]struct{}{
"gerrit.googlesource.com/bdir.git": {},
"gerrit.googlesource.com/sub/bdir.git": {},
"adir/.git": {},
"bdir/.git": {},
"gerrit.googlesource.com/adir.git": {},
}
if !reflect.DeepEqual(gotBefore, wantBefore) {
t.Fatalf("got %v want %v", gotBefore, wantBefore)
}
aURL, _ := url.Parse("http://gerrit.googlesource.com")
aURL.Path = "sub"
names := map[string]struct{}{
"bdir/.git": {},
"gerrit.googlesource.com/adir.git": {},
}
filter, _ := NewFilter("", "")
err = DeleteRepos(dir, aURL, names, filter)
if err != nil {
t.Fatalf("DeleteRepos: %T", err)
}
reposAfter, err := FindGitRepos(dir)
if err != nil {
t.Error("FindGitRepos", err)
}
gotAfter := map[string]struct{}{}
for _, r := range reposAfter {
p, err := filepath.Rel(dir, r)
if err != nil {
t.Fatalf("Relative: %v", err)
}
gotAfter[p] = struct{}{}
}
wantAfter := map[string]struct{}{
"gerrit.googlesource.com/bdir.git": {},
"adir/.git": {},
"bdir/.git": {},
"gerrit.googlesource.com/adir.git": {},
}
if !reflect.DeepEqual(gotAfter, wantAfter) {
t.Errorf("got %v want %v", gotAfter, wantAfter)
}
}