Added plan of tests

This commit is contained in:
Alexander Pivkin
2025-12-20 10:21:45 +03:00
parent a889e1c7dd
commit 640a6d2a46
171 changed files with 57454 additions and 0 deletions
@@ -0,0 +1,31 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.17.2
package main
import (
"context"
"database/sql"
)
type DBTX interface {
ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
PrepareContext(context.Context, string) (*sql.Stmt, error)
QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}
func New(db DBTX) *Queries {
return &Queries{db: db}
}
type Queries struct {
db DBTX
}
func (q *Queries) WithTx(tx *sql.Tx) *Queries {
return &Queries{
db: tx,
}
}
@@ -0,0 +1,19 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.17.2
package main
import (
"time"
)
type Student struct {
ID int64
Fname string
Lname string
DateOfBirth time.Time
Email string
Address string
Gender string
}
@@ -0,0 +1,8 @@
-- name: addStudent :execlastid
insert into students (fname, lname, date_of_birth, email, gender, address) values (?, ?, ?, ?, ?, ?);
-- name: studentByID :one
SELECT * FROM students WHERE id = ?;
-- name: fetchStudents :many
SELECT * FROM students LIMIT 10;
@@ -0,0 +1,93 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.17.2
// source: query.sql
package main
import (
"context"
"time"
)
const addStudent = `-- name: addStudent :execlastid
insert into students (fname, lname, date_of_birth, email, gender, address) values (?, ?, ?, ?, ?, ?)
`
type addStudentParams struct {
Fname string
Lname string
DateOfBirth time.Time
Email string
Gender string
Address string
}
func (q *Queries) addStudent(ctx context.Context, arg addStudentParams) (int64, error) {
result, err := q.db.ExecContext(ctx, addStudent,
arg.Fname,
arg.Lname,
arg.DateOfBirth,
arg.Email,
arg.Gender,
arg.Address,
)
if err != nil {
return 0, err
}
return result.LastInsertId()
}
const fetchStudents = `-- name: fetchStudents :many
SELECT id, fname, lname, date_of_birth, email, address, gender FROM students LIMIT 10
`
func (q *Queries) fetchStudents(ctx context.Context) ([]Student, error) {
rows, err := q.db.QueryContext(ctx, fetchStudents)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Student
for rows.Next() {
var i Student
if err := rows.Scan(
&i.ID,
&i.Fname,
&i.Lname,
&i.DateOfBirth,
&i.Email,
&i.Address,
&i.Gender,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const studentByID = `-- name: studentByID :one
SELECT id, fname, lname, date_of_birth, email, address, gender FROM students WHERE id = ?
`
func (q *Queries) studentByID(ctx context.Context, id int64) (Student, error) {
row := q.db.QueryRowContext(ctx, studentByID, id)
var i Student
err := row.Scan(
&i.ID,
&i.Fname,
&i.Lname,
&i.DateOfBirth,
&i.Email,
&i.Address,
&i.Gender,
)
return i, err
}
@@ -0,0 +1,10 @@
CREATE TABLE `students` (
`id` bigint NOT NULL AUTO_INCREMENT,
`fname` varchar(50) not null,
`lname` varchar(50) not null,
`date_of_birth` datetime not null,
`email` varchar(50) not null,
`address` varchar(50) not null,
`gender` varchar(50) not null,
PRIMARY KEY (`id`)
);
@@ -0,0 +1,52 @@
package main
import (
"context"
"database/sql"
"fmt"
"log"
"time"
_ "github.com/go-sql-driver/mysql"
)
func main() {
conn, err := sql.Open("mysql", "theuser:thepass@tcp(localhost:3306)/thedb?parseTime=true")
if err != nil {
log.Fatal(err)
}
fmt.Println("Connected!")
db := New(conn)
//initializing record to be inserted
newSt := addStudentParams{
Fname: "Leon",
Lname: "Ashling",
DateOfBirth: time.Date(1994, time.August, 14, 23, 51, 42, 0, time.UTC),
Email: "lashling5@senate.gov",
Gender: "Male",
Address: "39 Kipling Pass",
}
// inserting the record
sID, err := db.addStudent(context.Background(), newSt)
if err != nil {
log.Fatal(err)
}
fmt.Printf("addSudent id: %v \n", sID)
//retreive record by id
st, err := db.studentByID(context.Background(), sID)
if err != nil {
log.Println(err)
}
fmt.Printf("studentByID record: %v \n", st)
//fetching multiple records
students, err := db.fetchStudents(context.Background())
if err != nil {
log.Println(err)
}
fmt.Printf("fetchStudents count: %v \n", len(students))
}
@@ -0,0 +1,7 @@
version: 1
packages:
- path: "./"
name: "main"
engine: "mysql"
schema: "schema.sql"
queries: "query.sql"