mirror of
https://github.com/awalsh128/cache-apt-pkgs-action.git
synced 2026-01-01 08:11:28 +00:00
124 lines
2.9 KiB
Go
124 lines
2.9 KiB
Go
package cache
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"awalsh128.com/cache-apt-pkgs-action/internal/pkgs"
|
|
)
|
|
|
|
func TestKey_PlainText(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
key Key
|
|
expected string
|
|
}{
|
|
{
|
|
name: "Empty key",
|
|
key: Key{
|
|
Packages: pkgs.NewPackages(),
|
|
Version: "",
|
|
GlobalVersion: "",
|
|
OsArch: "",
|
|
},
|
|
expected: "Packages: '', Version: '', GlobalVersion: '', OsArch: ''",
|
|
},
|
|
{
|
|
name: "Single package",
|
|
key: Key{
|
|
Packages: pkgs.NewPackagesFromSlice([]string{"xdot=1.3-1"}),
|
|
Version: "test",
|
|
GlobalVersion: "v2",
|
|
OsArch: "amd64",
|
|
},
|
|
expected: "Packages: 'xdot=1.3-1', Version: 'test', GlobalVersion: 'v2', OsArch: 'amd64'",
|
|
},
|
|
{
|
|
name: "Multiple packages",
|
|
key: Key{
|
|
Packages: pkgs.NewPackagesFromSlice([]string{"xdot=1.3-1", "rolldice=1.16-1build3"}),
|
|
Version: "test",
|
|
GlobalVersion: "v2",
|
|
OsArch: "amd64",
|
|
},
|
|
expected: "Packages: 'xdot=1.3-1,rolldice=1.16-1build3', Version: 'test', GlobalVersion: 'v2', OsArch: 'amd64'",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
result := tt.key.PlainText()
|
|
if result != tt.expected {
|
|
t.Errorf("PlainText() = %v, want %v", result, tt.expected)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestKey_Hash(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
key1 Key
|
|
key2 Key
|
|
wantSame bool
|
|
}{
|
|
{
|
|
name: "Same keys hash to same value",
|
|
key1: Key{
|
|
Packages: pkgs.NewPackagesFromSlice([]string{"xdot=1.3-1"}),
|
|
Version: "test",
|
|
GlobalVersion: "v2",
|
|
OsArch: "amd64",
|
|
},
|
|
key2: Key{
|
|
Packages: pkgs.NewPackagesFromSlice([]string{"xdot=1.3-1"}),
|
|
Version: "test",
|
|
GlobalVersion: "v2",
|
|
OsArch: "amd64",
|
|
},
|
|
wantSame: true,
|
|
},
|
|
{
|
|
name: "Different packages hash to different values",
|
|
key1: Key{
|
|
Packages: pkgs.NewPackagesFromSlice([]string{"xdot=1.3-1"}),
|
|
Version: "test",
|
|
GlobalVersion: "v2",
|
|
OsArch: "amd64",
|
|
},
|
|
key2: Key{
|
|
Packages: pkgs.NewPackagesFromSlice([]string{"rolldice=1.16-1build3"}),
|
|
Version: "test",
|
|
GlobalVersion: "v2",
|
|
OsArch: "amd64",
|
|
},
|
|
wantSame: false,
|
|
},
|
|
{
|
|
name: "Different versions hash to different values",
|
|
key1: Key{
|
|
Packages: pkgs.NewPackagesFromSlice([]string{"xdot=1.3-1"}),
|
|
Version: "test1",
|
|
GlobalVersion: "v2",
|
|
OsArch: "amd64",
|
|
},
|
|
key2: Key{
|
|
Packages: pkgs.NewPackagesFromSlice([]string{"xdot=1.3-1"}),
|
|
Version: "test2",
|
|
GlobalVersion: "v2",
|
|
OsArch: "amd64",
|
|
},
|
|
wantSame: false,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
hash1 := tt.key1.Hash()
|
|
hash2 := tt.key2.Hash()
|
|
if (hash1 == hash2) != tt.wantSame {
|
|
t.Errorf("Hash equality = %v, want %v", hash1 == hash2, tt.wantSame)
|
|
}
|
|
})
|
|
}
|
|
}
|