github.com/mckael/restic@v0.8.3/internal/backend/b2/config_test.go (about) 1 package b2 2 3 import "testing" 4 5 var configTests = []struct { 6 s string 7 cfg Config 8 }{ 9 {"b2:bucketname", Config{ 10 Bucket: "bucketname", 11 Prefix: "", 12 Connections: 5, 13 }}, 14 {"b2:bucketname:", Config{ 15 Bucket: "bucketname", 16 Prefix: "", 17 Connections: 5, 18 }}, 19 {"b2:bucketname:/prefix/directory", Config{ 20 Bucket: "bucketname", 21 Prefix: "prefix/directory", 22 Connections: 5, 23 }}, 24 {"b2:foobar", Config{ 25 Bucket: "foobar", 26 Prefix: "", 27 Connections: 5, 28 }}, 29 {"b2:foobar:", Config{ 30 Bucket: "foobar", 31 Prefix: "", 32 Connections: 5, 33 }}, 34 {"b2:foobar:/", Config{ 35 Bucket: "foobar", 36 Prefix: "", 37 Connections: 5, 38 }}, 39 } 40 41 func TestParseConfig(t *testing.T) { 42 for _, test := range configTests { 43 t.Run("", func(t *testing.T) { 44 cfg, err := ParseConfig(test.s) 45 if err != nil { 46 t.Fatalf("%s failed: %v", test.s, err) 47 } 48 49 if cfg != test.cfg { 50 t.Fatalf("input: %s\n wrong config, want:\n %#v\ngot:\n %#v", 51 test.s, test.cfg, cfg) 52 } 53 }) 54 } 55 } 56 57 var invalidConfigTests = []struct { 58 s string 59 err string 60 }{ 61 { 62 "b2", 63 "invalid format, want: b2:bucket-name[:path]", 64 }, 65 { 66 "b2:", 67 "bucket name not found", 68 }, 69 { 70 "b2:bucket_name", 71 "bucket name contains invalid characters, allowed are: a-z, 0-9, dash (-)", 72 }, 73 { 74 "b2:bucketname/prefix/directory/", 75 "bucket name contains invalid characters, allowed are: a-z, 0-9, dash (-)", 76 }, 77 } 78 79 func TestInvalidConfig(t *testing.T) { 80 for _, test := range invalidConfigTests { 81 t.Run("", func(t *testing.T) { 82 cfg, err := ParseConfig(test.s) 83 if err == nil { 84 t.Fatalf("expected error not found for invalid config: %v, cfg is:\n%#v", test.s, cfg) 85 } 86 87 if err.Error() != test.err { 88 t.Fatalf("unexpected error found, want:\n %v\ngot:\n %v", test.err, err.Error()) 89 } 90 }) 91 } 92 }