blob: 836defcdb3494e4449d29dbf14bb788363b7e5cd [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package index
import (
"fmt"
"io/ioutil"
"os"
"reflect"
"testing"
"fuchsia.googlesource.com/pm/pkg"
)
func TestStatic(t *testing.T) {
f, err := ioutil.TempFile("", t.Name())
if err != nil {
t.Fatal(err)
}
defer os.Remove(f.Name())
fmt.Fprintf(f, "a/0=331e2e4b22e61fba85c595529103f957d7fe19731a278853361975d639a1bdd8\n")
f.Seek(0, os.SEEK_SET)
si := NewStatic()
err = si.LoadFrom(f)
if err != nil {
t.Fatal(err)
}
expectList := []pkg.Package{{Name: "a", Version: "0"}}
gotList, err := si.List()
if err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(gotList, expectList) {
t.Errorf("static.List() %v != %v", gotList, expectList)
}
if !si.HasName("a") {
t.Error("static.HasName(`a`) = false, want true")
}
if si.HasName("b") {
t.Error("static.HasName(`b`) = true, want false")
}
getPackageCases := []struct {
name, version string
result string
}{
{"a", "0", "331e2e4b22e61fba85c595529103f957d7fe19731a278853361975d639a1bdd8"},
{"a", "1", ""},
{"b", "0", ""},
}
for _, tc := range getPackageCases {
if got, _ := si.Get(pkg.Package{Name: tc.name, Version: tc.version}); got != tc.result {
t.Errorf("static.Get(%q, %q) = %q want %q", tc.name, tc.version, got, tc.result)
}
}
if got, want := si.ListVersions("a"), []string{"0"}; !reflect.DeepEqual(got, want) {
t.Errorf("static.ListVersions(`a`) = %v, want %v", got, want)
}
}