implemented storage

This commit is contained in:
2025-06-23 09:03:39 +03:00
parent 406dd18b79
commit d1f8937934
4 changed files with 196 additions and 0 deletions

View 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)
}
})
}