Golang_HomeWork/hw02_unpack_string/unpack_test.go

77 lines
1.2 KiB
Go

package hw02_unpack_string //nolint:golint,stylecheck
import (
"testing"
"github.com/stretchr/testify/require"
)
type test struct {
input string
expected string
err error
}
func TestUnpack(t *testing.T) {
for _, tst := range [...]test{
{
input: "a4bc2d5e",
expected: "aaaabccddddde",
},
{
input: "abccd",
expected: "abccd",
},
{
input: "3abc",
expected: "",
err: ErrInvalidString,
},
{
input: "45",
expected: "",
err: ErrInvalidString,
},
{
input: "aaa10b",
expected: "",
err: ErrInvalidString,
},
{
input: "",
expected: "",
},
} {
result, err := Unpack(tst.input)
require.Equal(t, tst.err, err)
require.Equal(t, tst.expected, result)
}
}
func TestUnpackWithEscape(t *testing.T) {
t.Skip() // Remove if task with asterisk completed
for _, tst := range [...]test{
{
input: `qwe\4\5`,
expected: `qwe45`,
},
{
input: `qwe\45`,
expected: `qwe44444`,
},
{
input: `qwe\\5`,
expected: `qwe\\\\\`,
},
{
input: `qwe\\\3`,
expected: `qwe\3`,
},
} {
result, err := Unpack(tst.input)
require.Equal(t, tst.err, err)
require.Equal(t, tst.expected, result)
}
}