1
// Copyright (c) 2016-2019 Uber Technologies, Inc.
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
7
// http://www.apache.org/licenses/LICENSE-2.0
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
22
"github.com/stretchr/testify/require"
25
func TestMatchReader(t *testing.T) {
31
{"abcd", "abcd", true},
32
{"abcd", "wxyz", false},
35
for _, test := range tests {
36
t.Run(fmt.Sprintf("%q==%q", test.expected, test.actual), func(t *testing.T) {
37
require := require.New(t)
39
f, err := ioutil.TempFile("", "")
41
defer os.Remove(f.Name())
43
_, err = f.Write([]byte(test.actual))
50
m := MatchReader([]byte(test.expected))
51
require.Equal(test.matches, m.Matches(f))
52
require.Equal(test.expected, m.String())
57
func TestMatchReaderTypeCheck(t *testing.T) {
58
require := require.New(t)
60
m := MatchReader([]byte("foo"))
61
require.False(m.Matches(nil))
64
func TestMatchWriter(t *testing.T) {
65
require := require.New(t)
67
f, err := ioutil.TempFile("", "")
69
defer os.Remove(f.Name())
71
b := []byte("some text")
74
require.True(m.Matches(f))
75
require.Equal("WriterMatcher", m.String())
81
// WriterMatcher should write to the file.
82
result, err := ioutil.ReadAll(f)
83
require.Equal(string(b), string(result))
86
func TestMatchWriterTypeCheck(t *testing.T) {
87
require := require.New(t)
89
m := MatchWriter([]byte("foo"))
90
require.False(m.Matches(nil))
93
func TestMatchWriterAt(t *testing.T) {
94
require := require.New(t)
96
f, err := ioutil.TempFile("", "")
98
defer os.Remove(f.Name())
100
b := []byte("some text")
102
m := MatchWriterAt(b)
103
require.True(m.Matches(f))
104
require.Equal("WriterAtMatcher", m.String())
107
_, err = f.Seek(0, 0)
110
// WriterAtMatcher should write to the file.
111
result, err := ioutil.ReadAll(f)
112
require.Equal(string(b), string(result))
115
func TestMatchWriterAtTypeCheck(t *testing.T) {
116
require := require.New(t)
118
m := MatchWriterAt([]byte("foo"))
119
require.False(m.Matches(nil))
122
func TestMatchRegex(t *testing.T) {
128
{"foo/.+", "foo/bar", true},
129
{"foo/.+", "foo/", false},
130
{"foo", "foo", true},
132
for _, test := range tests {
133
t.Run(fmt.Sprintf("%q==%q", test.expected, test.actual), func(t *testing.T) {
134
require := require.New(t)
136
m := MatchRegex(test.expected)
137
require.Equal(test.matches, m.Matches(test.actual))
138
require.Equal(test.expected, m.String())
143
func TestMatchRegexTypeCheck(t *testing.T) {
144
require := require.New(t)
146
m := MatchRegex("foo")
147
require.False(m.Matches(nil))