pkg-proxy/internal/handler/cran_test.go

52 lines
1.3 KiB
Go
Raw Permalink Normal View History

2026-01-20 21:52:44 +00:00
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)
}
}
}