implemented storage
This commit is contained in:
70
internal/storage/sqlite_test.go
Normal file
70
internal/storage/sqlite_test.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSQLiteStorage(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
// Используем in-memory базу данных для тестов
|
||||
storage, err := NewSQLiteStorage(ctx, ":memory:")
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to create in-memory storage: %v", err)
|
||||
}
|
||||
defer storage.Close()
|
||||
|
||||
t.Run("Set and Get", func(t *testing.T) {
|
||||
yandexID := "12345"
|
||||
telegramID := "file_abcde"
|
||||
|
||||
err := storage.Set(ctx, yandexID, telegramID)
|
||||
if err != nil {
|
||||
t.Fatalf("Set() error = %v", err)
|
||||
}
|
||||
|
||||
gotID, err := storage.Get(ctx, yandexID)
|
||||
if err != nil {
|
||||
t.Fatalf("Get() error = %v", err)
|
||||
}
|
||||
|
||||
if gotID != telegramID {
|
||||
t.Errorf("Get() got = %v, want %v", gotID, telegramID)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Get not found", func(t *testing.T) {
|
||||
_, err := storage.Get(ctx, "non_existent_id")
|
||||
if !errors.Is(err, ErrNotFound) {
|
||||
t.Errorf("Expected ErrNotFound, got %v", err)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("Count", func(t *testing.T) {
|
||||
// Сначала очистим (в in-memory это не нужно, но для полноты)
|
||||
// или просто проверим текущее состояние
|
||||
count, err := storage.Count(ctx)
|
||||
if err != nil {
|
||||
t.Fatalf("Count() error = %v", err)
|
||||
}
|
||||
if count != 1 { // У нас осталась одна запись с предыдущего теста
|
||||
t.Errorf("Count() got = %d, want 1", count)
|
||||
}
|
||||
|
||||
// Добавим еще одну запись
|
||||
err = storage.Set(ctx, "67890", "file_fghij")
|
||||
if err != nil {
|
||||
t.Fatalf("Set() error = %v", err)
|
||||
}
|
||||
|
||||
newCount, err := storage.Count(ctx)
|
||||
if err != nil {
|
||||
t.Fatalf("Count() error = %v", err)
|
||||
}
|
||||
if newCount != 2 {
|
||||
t.Errorf("Count() got = %d, want 2", newCount)
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user