You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
1.8 KiB
94 lines
1.8 KiB
3 years ago
|
package internal
|
||
|
|
||
|
import "testing"
|
||
|
|
||
|
func TestGetType(t *testing.T) {
|
||
|
|
||
|
t.Run("TypeLocal", func(t *testing.T) {
|
||
|
l := Location{
|
||
|
Type: "local",
|
||
|
}
|
||
|
result, err := l.getType()
|
||
|
if err != nil {
|
||
|
t.Errorf("unexpected error: %v", err)
|
||
|
}
|
||
|
assertEqual(t, result, TypeLocal)
|
||
|
})
|
||
|
|
||
|
t.Run("TypeVolume", func(t *testing.T) {
|
||
|
l := Location{
|
||
|
Type: "volume",
|
||
|
}
|
||
|
result, err := l.getType()
|
||
|
if err != nil {
|
||
|
t.Errorf("unexpected error: %v", err)
|
||
|
}
|
||
|
assertEqual(t, result, TypeVolume)
|
||
|
})
|
||
|
|
||
|
t.Run("Empty type", func(t *testing.T) {
|
||
|
l := Location{
|
||
|
Type: "",
|
||
|
}
|
||
|
result, err := l.getType()
|
||
|
if err != nil {
|
||
|
t.Errorf("unexpected error: %v", err)
|
||
|
}
|
||
|
assertEqual(t, result, TypeLocal)
|
||
|
})
|
||
|
|
||
|
t.Run("Invalid type", func(t *testing.T) {
|
||
|
l := Location{
|
||
|
Type: "foo",
|
||
|
}
|
||
|
_, err := l.getType()
|
||
|
if err == nil {
|
||
|
t.Error("expected error")
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func TestBuildTag(t *testing.T) {
|
||
|
result := buildTag("foo", "bar")
|
||
|
expected := "ar:foo:bar"
|
||
|
assertEqual(t, result, expected)
|
||
|
}
|
||
|
|
||
|
func TestGetLocationTags(t *testing.T) {
|
||
|
l := Location{
|
||
|
name: "foo",
|
||
|
}
|
||
|
result := l.getLocationTags()
|
||
|
expected := "ar:location:foo"
|
||
|
assertEqual(t, result, expected)
|
||
|
}
|
||
|
|
||
|
func TestHasBackend(t *testing.T) {
|
||
|
t.Run("backend present", func(t *testing.T) {
|
||
|
l := Location{
|
||
|
name: "foo",
|
||
|
To: []string{"foo", "bar"},
|
||
|
}
|
||
|
result := l.hasBackend("foo")
|
||
|
assertEqual(t, result, true)
|
||
|
})
|
||
|
|
||
|
t.Run("backend absent", func(t *testing.T) {
|
||
|
l := Location{
|
||
|
name: "foo",
|
||
|
To: []string{"bar", "baz"},
|
||
|
}
|
||
|
result := l.hasBackend("foo")
|
||
|
assertEqual(t, result, false)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func TestBuildRestoreCommand(t *testing.T) {
|
||
|
l := Location{
|
||
|
name: "foo",
|
||
|
}
|
||
|
result := buildRestoreCommand(l, "to", "snapshot", []string{"options"})
|
||
|
expected := []string{"restore", "--target", "to", "--tag", "ar:location:foo", "snapshot", "options"}
|
||
|
assertSliceEqual(t, result, expected)
|
||
|
}
|