mirror of
https://github.com/kovetskiy/mark.git
synced 2026-05-03 22:12:35 +00:00
*: Reorganize code
This commit is contained in:
90
attachment/attachment_test.go
Normal file
90
attachment/attachment_test.go
Normal file
@@ -0,0 +1,90 @@
|
||||
package attachment
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var (
|
||||
replacements = []string{
|
||||
"image1.jpg",
|
||||
"images/image2.jpg",
|
||||
"../image3.jpg",
|
||||
}
|
||||
)
|
||||
|
||||
type bufferCloser struct {
|
||||
*bytes.Buffer
|
||||
}
|
||||
|
||||
func (bufferCloser) Close() error { return nil }
|
||||
|
||||
type virtualOpener struct {
|
||||
PathToBuf map[string]*bufferCloser
|
||||
}
|
||||
|
||||
func (o *virtualOpener) Open(name string) (io.ReadWriteCloser, error) {
|
||||
if buf, ok := o.PathToBuf[name]; ok {
|
||||
return buf, nil
|
||||
}
|
||||
return nil, os.ErrNotExist
|
||||
}
|
||||
|
||||
func TestPrepareAttachmentsWithWorkDirBase(t *testing.T) {
|
||||
|
||||
testingOpener := &virtualOpener{
|
||||
PathToBuf: map[string]*bufferCloser{
|
||||
"image1.jpg": {bytes.NewBuffer(nil)},
|
||||
"images/image2.jpg": {bytes.NewBuffer(nil)},
|
||||
"../image3.jpg": {bytes.NewBuffer(nil)},
|
||||
},
|
||||
}
|
||||
|
||||
attaches, err := prepareAttachments(testingOpener, ".", replacements)
|
||||
t.Logf("attaches: %s", err)
|
||||
if err != nil {
|
||||
println(err.Error())
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
assert.Equal(t, "image1.jpg", attaches[0].Name)
|
||||
assert.Equal(t, "image1.jpg", attaches[0].Replace)
|
||||
|
||||
assert.Equal(t, "images/image2.jpg", attaches[1].Name)
|
||||
assert.Equal(t, "images/image2.jpg", attaches[1].Replace)
|
||||
|
||||
assert.Equal(t, "../image3.jpg", attaches[2].Name)
|
||||
assert.Equal(t, "../image3.jpg", attaches[2].Replace)
|
||||
|
||||
assert.Equal(t, len(attaches), 3)
|
||||
}
|
||||
|
||||
func TestPrepareAttachmentsWithSubDirBase(t *testing.T) {
|
||||
|
||||
testingOpener := &virtualOpener{
|
||||
PathToBuf: map[string]*bufferCloser{
|
||||
"a/b/image1.jpg": {bytes.NewBuffer(nil)},
|
||||
"a/b/images/image2.jpg": {bytes.NewBuffer(nil)},
|
||||
"a/image3.jpg": {bytes.NewBuffer(nil)},
|
||||
},
|
||||
}
|
||||
|
||||
attaches, err := prepareAttachments(testingOpener, "a/b", replacements)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Equal(t, "image1.jpg", attaches[0].Name)
|
||||
assert.Equal(t, "image1.jpg", attaches[0].Replace)
|
||||
|
||||
assert.Equal(t, "images/image2.jpg", attaches[1].Name)
|
||||
assert.Equal(t, "images/image2.jpg", attaches[1].Replace)
|
||||
|
||||
assert.Equal(t, "../image3.jpg", attaches[2].Name)
|
||||
assert.Equal(t, "../image3.jpg", attaches[2].Replace)
|
||||
|
||||
assert.Equal(t, len(attaches), 3)
|
||||
}
|
||||
Reference in New Issue
Block a user