98 lines
2.7 KiB
Go
98 lines
2.7 KiB
Go
package api
|
|
|
|
import (
|
|
"context"
|
|
|
|
"training-tracker/internal/models"
|
|
)
|
|
|
|
// mockExerciseRepo is a mock implementation of ExerciseRepository for testing
|
|
type mockExerciseRepo struct {
|
|
exercises []models.Exercise
|
|
exercise *models.Exercise
|
|
err error
|
|
deleteErr error
|
|
}
|
|
|
|
func (m *mockExerciseRepo) List(ctx context.Context) ([]models.Exercise, error) {
|
|
return m.exercises, m.err
|
|
}
|
|
|
|
func (m *mockExerciseRepo) GetByID(ctx context.Context, id int64) (*models.Exercise, error) {
|
|
return m.exercise, m.err
|
|
}
|
|
|
|
func (m *mockExerciseRepo) Create(ctx context.Context, req *models.CreateExerciseRequest) (*models.Exercise, error) {
|
|
return m.exercise, m.err
|
|
}
|
|
|
|
func (m *mockExerciseRepo) Update(ctx context.Context, id int64, req *models.CreateExerciseRequest) (*models.Exercise, error) {
|
|
return m.exercise, m.err
|
|
}
|
|
|
|
func (m *mockExerciseRepo) Delete(ctx context.Context, id int64) error {
|
|
return m.deleteErr
|
|
}
|
|
|
|
// mockPlanRepo is a mock implementation of PlanRepository for testing
|
|
type mockPlanRepo struct {
|
|
plans []models.TrainingPlan
|
|
plan *models.TrainingPlan
|
|
err error
|
|
deleteErr error
|
|
}
|
|
|
|
func (m *mockPlanRepo) List(ctx context.Context) ([]models.TrainingPlan, error) {
|
|
return m.plans, m.err
|
|
}
|
|
|
|
func (m *mockPlanRepo) GetByID(ctx context.Context, id int64) (*models.TrainingPlan, error) {
|
|
return m.plan, m.err
|
|
}
|
|
|
|
func (m *mockPlanRepo) Create(ctx context.Context, req *models.CreatePlanRequest) (*models.TrainingPlan, error) {
|
|
return m.plan, m.err
|
|
}
|
|
|
|
func (m *mockPlanRepo) Update(ctx context.Context, id int64, req *models.CreatePlanRequest) (*models.TrainingPlan, error) {
|
|
return m.plan, m.err
|
|
}
|
|
|
|
func (m *mockPlanRepo) Delete(ctx context.Context, id int64) error {
|
|
return m.deleteErr
|
|
}
|
|
|
|
// mockSessionRepo is a mock implementation of SessionRepository for testing
|
|
type mockSessionRepo struct {
|
|
sessions []models.Session
|
|
session *models.Session
|
|
entry *models.SessionEntry
|
|
err error
|
|
deleteErr error
|
|
entryErr error
|
|
}
|
|
|
|
func (m *mockSessionRepo) List(ctx context.Context) ([]models.Session, error) {
|
|
return m.sessions, m.err
|
|
}
|
|
|
|
func (m *mockSessionRepo) GetByID(ctx context.Context, id int64) (*models.Session, error) {
|
|
return m.session, m.err
|
|
}
|
|
|
|
func (m *mockSessionRepo) Create(ctx context.Context, req *models.CreateSessionRequest) (*models.Session, error) {
|
|
return m.session, m.err
|
|
}
|
|
|
|
func (m *mockSessionRepo) Update(ctx context.Context, id int64, req *models.CreateSessionRequest) (*models.Session, error) {
|
|
return m.session, m.err
|
|
}
|
|
|
|
func (m *mockSessionRepo) Delete(ctx context.Context, id int64) error {
|
|
return m.deleteErr
|
|
}
|
|
|
|
func (m *mockSessionRepo) AddEntry(ctx context.Context, sessionID int64, req *models.CreateSessionEntryRequest) (*models.SessionEntry, error) {
|
|
return m.entry, m.entryErr
|
|
}
|