From cd40158cc4747cb91f0a90fa7d667145aa3b74d4 Mon Sep 17 00:00:00 2001 From: tamsin johnson Date: Thu, 22 Feb 2024 16:52:40 -0800 Subject: [PATCH] lets-go:14.5 get some mocks in place --- snippetbox/internal/models/mocks/snippets.go | 34 ++++++++++++++++++++ snippetbox/internal/models/mocks/users.go | 31 ++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 snippetbox/internal/models/mocks/snippets.go create mode 100644 snippetbox/internal/models/mocks/users.go diff --git a/snippetbox/internal/models/mocks/snippets.go b/snippetbox/internal/models/mocks/snippets.go new file mode 100644 index 0000000..1e0db18 --- /dev/null +++ b/snippetbox/internal/models/mocks/snippets.go @@ -0,0 +1,34 @@ +package mocks + +import ( + "time" + + "snippetbox.alexedwards.net/internal/models" +) + +var mockSnippet = models.Snippet{ + ID: 1, + Title: "An old silent pond", + Content: "An old silent pond...", + Created: time.Now(), + Expires: time.Now(), +} + +type SnippetModel struct{} + +func (m *SnippetModel) Insert(title string, content string, expires int) (int, error) { + return 2, nil +} + +func (m *SnippetModel) Get(id int) (models.Snippet, error) { + switch id { + case 1: + return mockSnippet, nil + default: + return models.Snippet{}, models.ErrNoRecord + } +} + +func (m *SnippetModel) Latest() ([]models.Snippet, error) { + return []models.Snippet{mockSnippet}, nil +} diff --git a/snippetbox/internal/models/mocks/users.go b/snippetbox/internal/models/mocks/users.go new file mode 100644 index 0000000..3273f27 --- /dev/null +++ b/snippetbox/internal/models/mocks/users.go @@ -0,0 +1,31 @@ +package mocks + +import ( + "snippetbox.alexedwards.net/internal/models" +) + +type UserModel struct{} + +func (m *UserModel) Insert(name, email, password string) error { + switch email { + case "dupe@example.com": + return models.ErrDuplicateEmail + default: + return nil + } +} + +func (m *UserModel) Authenticate(email, password string) (int, error) { + if email == "alice@example.com" && password == "pa$$word" { + return 1, nil + } +} + +func (m *UserModel) Exists(id int) (bool, error) { + switch id { + case 1: + return true, nil + default: + return false, nil + } +}