package pic import ( //"log" "log" "path/filepath" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestNewPicture(t *testing.T) { // для тестирования базу данных не учитываем p := NewPicture("альбом") assert.Equal(t, p.Album, "альбом", "должны быть одинаковыми") } func TestBaseName(t *testing.T) { base := baseName("c:\\Проверка файла с каталогом\\test.jpg") assert.Equal(t, base, "test", "должны быть одинаковыми") base = baseName("/каталог файла/test.jpg") assert.Equal(t, base, "test", "должны быть одинаковыми") base = baseName("/test.jpg") assert.Equal(t, base, "test", "должны быть одинаковыми") base = baseName("test.jpg") assert.Equal(t, base, "test", "должны быть одинаковыми") base = baseName("test.jpg") assert.NotEqual(t, base, "неверное имя", "должны быть разными") } func TestCmdFfmpeg(t *testing.T) { // правильный файл cmd, out, err := cmdFfmpeg("testdir\\test.gif") log.Printf("cmd: %s\n", cmd) assert.Nil(t, err) assert.Equal(t, out, "testdir\\test-2x.webp", "должны быть одинаковыми") assert.Contains(t, cmd, "ffmpeg", "команда должна сформироваться") // не верный файл cmd, out, err = cmdFfmpeg("test.jpg") assert.Error(t, err, "должна быть ошибка") assert.Equal(t, out, "", "должен быть пустой строкой") assert.Equal(t, cmd, "", "должен быть пустой строкой") } func TestGetSize(t *testing.T) { out := ` Stream #0:0: Video: webp <какой-то текст> 1200x1980 <еще какой-то текст> ` w, h := getSize(out) assert.Equal(t, w, "1200", "должны быть 1200") assert.Equal(t, h, "1980", "должны быть 1980") } func TestConvert(t *testing.T) { // предварительно скопируем тестовый файл во временный каталог tmpgif := "test.gif" require.FileExists(t, tmpgif) tmpdir := t.TempDir() filename := filepath.Join(tmpdir, tmpgif) err := copyFile(tmpgif, filename) require.NoError(t, err) require.FileExists(t, filename) webp, err := convert(filename) assert.NoError(t, err) require.FileExists(t, webp.filename) // скопируем обратно, что бы посмотреть, что получилось err = copyFile(webp.filename, "d:/projects/pic/test.webp") assert.NoError(t, err) }