forked from mirrors/pkg-proxy
52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package handler
|
|
|
|
import (
|
|
"log/slog"
|
|
"testing"
|
|
)
|
|
|
|
func TestCRANParseSourceFilename(t *testing.T) {
|
|
h := &CRANHandler{proxy: &Proxy{Logger: slog.Default()}}
|
|
|
|
tests := []struct {
|
|
filename string
|
|
wantName string
|
|
wantVersion string
|
|
}{
|
|
{"ggplot2_3.4.4.tar.gz", "ggplot2", "3.4.4"},
|
|
{"data.table_1.14.8.tar.gz", "data.table", "1.14.8"},
|
|
{"Rcpp_1.0.11.tar.gz", "Rcpp", "1.0.11"},
|
|
{"invalid.tar.gz", "", ""},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
name, version := h.parseSourceFilename(tt.filename)
|
|
if name != tt.wantName || version != tt.wantVersion {
|
|
t.Errorf("parseSourceFilename(%q) = (%q, %q), want (%q, %q)",
|
|
tt.filename, name, version, tt.wantName, tt.wantVersion)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestCRANParseBinaryFilename(t *testing.T) {
|
|
h := &CRANHandler{proxy: &Proxy{Logger: slog.Default()}}
|
|
|
|
tests := []struct {
|
|
filename string
|
|
wantName string
|
|
wantVersion string
|
|
}{
|
|
{"ggplot2_3.4.4.zip", "ggplot2", "3.4.4"},
|
|
{"ggplot2_3.4.4.tgz", "ggplot2", "3.4.4"},
|
|
{"data.table_1.14.8.zip", "data.table", "1.14.8"},
|
|
{"invalid.zip", "", ""},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
name, version := h.parseBinaryFilename(tt.filename)
|
|
if name != tt.wantName || version != tt.wantVersion {
|
|
t.Errorf("parseBinaryFilename(%q) = (%q, %q), want (%q, %q)",
|
|
tt.filename, name, version, tt.wantName, tt.wantVersion)
|
|
}
|
|
}
|
|
}
|