-
Notifications
You must be signed in to change notification settings - Fork 0
/
raf_test.go
88 lines (72 loc) · 2.3 KB
/
raf_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
const titlePropRegexGroup = "\\ \\-\\ ([A-Za-z0-9\\ ]+)\\ \\-"
func mockState(cnt int) renamerState {
return renamerState{
fileName: "",
idx: cnt,
extension: "",
}
}
func TestExtractPropGroup(t *testing.T) {
p, err := NewProp("title", titlePropRegexGroup)
assert.Nil(t, err)
vals := extractVarValues("wedding - chapel first - video01", []Prop{p}, Opts{})
assert.NotNil(t, vals)
title, ok := vals["$title"]
assert.True(t, ok)
assert.Equal(t, "chapel first", title)
}
func TestExtractProp(t *testing.T) {
p, err := NewProp("title", "\\ \\-\\ [A-Za-z0-9\\ ]+\\ \\-")
assert.Nil(t, err)
vals := extractVarValues("wedding - chapel first - video01", []Prop{p}, Opts{})
assert.NotNil(t, vals)
title, ok := vals["$title"]
assert.True(t, ok)
assert.Equal(t, " - chapel first -", title)
}
func TestExtractPropNoMatch(t *testing.T) {
p, err := NewProp("title", titlePropRegexGroup)
assert.Nil(t, err)
vals := extractVarValues("wedding_chapel first - video01", []Prop{p}, Opts{})
assert.NotNil(t, vals)
title, ok := vals["$title"]
assert.True(t, ok)
assert.Equal(t, "", title)
}
func TestRenameStringSimple(t *testing.T) {
values := make(map[string]string)
values["$title"] = "test title"
out, err := ParseOutput("rip - $title.mkv")
assert.Nil(t, err)
renamed, _, err := GenerateName(values, out, mockState(0), Opts{})
assert.Nil(t, err)
assert.Equal(t, "rip - test title.mkv", renamed)
}
func TestRenameStringMissingProperty(t *testing.T) {
values := make(map[string]string)
values["$title"] = "test title"
out, err := ParseOutput("rip - $title2.mkv")
assert.Nil(t, err)
renamed, warn, err := GenerateName(values, out, mockState(0), Opts{})
assert.Nil(t, err)
assert.NotNil(t, warn)
assert.Equal(t, 1, len(warn))
assert.Equal(t, RenameWarningtypePropertyMissing, warn[0].Type)
assert.Equal(t, "$title2", warn[0].Value)
assert.Equal(t, "rip - .mkv", renamed)
}
func TestRenamePaddingFormatter(t *testing.T) {
values := make(map[string]string)
values["$title"] = "test title"
values["$cnt"] = "1"
out, err := ParseOutput("rip - $cnt[%03] - $title.mkv")
assert.Nil(t, err)
renamed, _, err := GenerateName(values, out, mockState(0), Opts{})
assert.Nil(t, err)
assert.Equal(t, "rip - 001 - test title.mkv", renamed)
}