github.com/ngocphuongnb/tetua@v0.0.7-alpha/app/mock/disk.go (about)

     1  package mock
     2  
     3  import (
     4  	"context"
     5  	"errors"
     6  	"io"
     7  	"mime/multipart"
     8  
     9  	"github.com/ngocphuongnb/tetua/app/fs"
    10  )
    11  
    12  type Disk struct {
    13  }
    14  
    15  func (d *Disk) Name() string {
    16  	return "disk_mock"
    17  }
    18  
    19  func (d *Disk) Url(path string) string {
    20  	return "/disk_mock/" + path
    21  }
    22  
    23  func (d *Disk) Delete(ctx context.Context, path string) error {
    24  	if path == "/delete/error" {
    25  		return errors.New("Delete file error")
    26  	}
    27  	return nil
    28  }
    29  
    30  func (d *Disk) Put(ctx context.Context, in io.Reader, size int64, mime, dst string) (*fs.FileInfo, error) {
    31  	return nil, nil
    32  }
    33  
    34  func (d *Disk) PutMultipart(ctx context.Context, m *multipart.FileHeader, dsts ...string) (*fs.FileInfo, error) {
    35  	if m.Filename == "error.jpg" {
    36  		return nil, errors.New("PutMultipart error")
    37  	}
    38  
    39  	mime := ""
    40  
    41  	if mimes := m.Header["Content-Type"]; len(mimes) > 0 {
    42  		mime = mimes[0]
    43  	}
    44  
    45  	return &fs.FileInfo{
    46  		Disk: d.Name(),
    47  		Path: m.Filename,
    48  		Type: mime,
    49  		Size: 100,
    50  	}, nil
    51  }