Update tests for the same enum in two different schema.

This commit is contained in:
go-jet 2023-04-04 12:35:50 +02:00
parent 5e34bef288
commit 9cf1205acf

View file

@ -13,20 +13,19 @@ import (
) )
func TestSelect(t *testing.T) { func TestSelect(t *testing.T) {
stmt := Album. stmt := SELECT(Album.AllColumns).
SELECT(Album.AllColumns). FROM(Album).
ORDER_BY(Album.AlbumId.ASC()) ORDER_BY(Album.AlbumId.ASC())
//fmt.Println(stmt.DebugSql())
testutils.AssertDebugStatementSql(t, stmt, ` testutils.AssertDebugStatementSql(t, stmt, `
SELECT "Album"."AlbumId" AS "Album.AlbumId", SELECT "Album"."AlbumId" AS "Album.AlbumId",
"Album"."Title" AS "Album.Title", "Album"."Title" AS "Album.Title",
"Album"."ArtistId" AS "Album.ArtistId" "Album"."ArtistId" AS "Album.ArtistId",
"Album"."Type" AS "Album.Type"
FROM chinook."Album" FROM chinook."Album"
ORDER BY "Album"."AlbumId" ASC; ORDER BY "Album"."AlbumId" ASC;
`) `)
dest := []model.Album{} var dest []model.Album
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
@ -71,6 +70,7 @@ SELECT "Artist"."ArtistId" AS "Artist.ArtistId",
"Album"."AlbumId" AS "Album.AlbumId", "Album"."AlbumId" AS "Album.AlbumId",
"Album"."Title" AS "Album.Title", "Album"."Title" AS "Album.Title",
"Album"."ArtistId" AS "Album.ArtistId", "Album"."ArtistId" AS "Album.ArtistId",
"Album"."Type" AS "Album.Type",
"Track"."TrackId" AS "Track.TrackId", "Track"."TrackId" AS "Track.TrackId",
"Track"."Name" AS "Track.Name", "Track"."Name" AS "Track.Name",
"Track"."AlbumId" AS "Track.AlbumId", "Track"."AlbumId" AS "Track.AlbumId",
@ -119,6 +119,7 @@ ORDER BY "Artist"."ArtistId", "Album"."AlbumId", "Track"."TrackId";
"AlbumId": 8, "AlbumId": 8,
"Title": "Warner 25 Anos", "Title": "Warner 25 Anos",
"ArtistId": 6, "ArtistId": 6,
"Type": "Studio",
"Tracks": [ "Tracks": [
{ {
"TrackId": 75, "TrackId": 75,
@ -154,6 +155,7 @@ ORDER BY "Artist"."ArtistId", "Album"."AlbumId", "Track"."TrackId";
"AlbumId": 13, "AlbumId": 13,
"Title": "The Best Of Billy Cobham", "Title": "The Best Of Billy Cobham",
"ArtistId": 10, "ArtistId": 10,
"Type": "Studio",
"Tracks": [ "Tracks": [
{ {
"TrackId": 123, "TrackId": 123,
@ -257,6 +259,7 @@ SELECT "Artist"."ArtistId" AS "Artist.ArtistId",
"Album"."AlbumId" AS "Album.AlbumId", "Album"."AlbumId" AS "Album.AlbumId",
"Album"."Title" AS "Album.Title", "Album"."Title" AS "Album.Title",
"Album"."ArtistId" AS "Album.ArtistId", "Album"."ArtistId" AS "Album.ArtistId",
"Album"."Type" AS "Album.Type",
"Track"."TrackId" AS "Track.TrackId", "Track"."TrackId" AS "Track.TrackId",
"Track"."Name" AS "Track.Name", "Track"."Name" AS "Track.Name",
"Track"."AlbumId" AS "Track.AlbumId", "Track"."AlbumId" AS "Track.AlbumId",
@ -597,17 +600,19 @@ func TestSelfJoin(t *testing.T) {
manager := Employee.AS("Manager") manager := Employee.AS("Manager")
stmt := Employee. stmt := SELECT(
LEFT_JOIN(manager, Employee.ReportsTo.EQ(manager.EmployeeId)). Employee.EmployeeId,
SELECT( Employee.FirstName,
Employee.EmployeeId, Employee.LastName,
Employee.FirstName, manager.EmployeeId,
Employee.LastName, manager.FirstName,
manager.EmployeeId, manager.LastName,
manager.FirstName, ).FROM(
manager.LastName, Employee.
). LEFT_JOIN(manager, Employee.ReportsTo.EQ(manager.EmployeeId)),
ORDER_BY(Employee.EmployeeId) ).ORDER_BY(
Employee.EmployeeId,
)
testutils.AssertDebugStatementSql(t, stmt, ` testutils.AssertDebugStatementSql(t, stmt, `
SELECT "Employee"."EmployeeId" AS "Employee.EmployeeId", SELECT "Employee"."EmployeeId" AS "Employee.EmployeeId",
@ -689,15 +694,17 @@ func TestUnionForQuotedNames(t *testing.T) {
stmt := UNION_ALL( stmt := UNION_ALL(
Album.SELECT(Album.AllColumns).WHERE(Album.AlbumId.EQ(Int(1))), Album.SELECT(Album.AllColumns).WHERE(Album.AlbumId.EQ(Int(1))),
Album.SELECT(Album.AllColumns).WHERE(Album.AlbumId.EQ(Int(2))), Album.SELECT(Album.AllColumns).WHERE(Album.AlbumId.EQ(Int(2))),
). ).ORDER_BY(
ORDER_BY(Album.AlbumId) Album.AlbumId,
)
//fmt.Println(stmt.DebugSql()) //fmt.Println(stmt.DebugSql())
testutils.AssertDebugStatementSql(t, stmt, ` testutils.AssertDebugStatementSql(t, stmt, `
( (
SELECT "Album"."AlbumId" AS "Album.AlbumId", SELECT "Album"."AlbumId" AS "Album.AlbumId",
"Album"."Title" AS "Album.Title", "Album"."Title" AS "Album.Title",
"Album"."ArtistId" AS "Album.ArtistId" "Album"."ArtistId" AS "Album.ArtistId",
"Album"."Type" AS "Album.Type"
FROM chinook."Album" FROM chinook."Album"
WHERE "Album"."AlbumId" = 1 WHERE "Album"."AlbumId" = 1
) )
@ -705,7 +712,8 @@ UNION ALL
( (
SELECT "Album"."AlbumId" AS "Album.AlbumId", SELECT "Album"."AlbumId" AS "Album.AlbumId",
"Album"."Title" AS "Album.Title", "Album"."Title" AS "Album.Title",
"Album"."ArtistId" AS "Album.ArtistId" "Album"."ArtistId" AS "Album.ArtistId",
"Album"."Type" AS "Album.Type"
FROM chinook."Album" FROM chinook."Album"
WHERE "Album"."AlbumId" = 2 WHERE "Album"."AlbumId" = 2
) )
@ -760,33 +768,39 @@ func TestExecWithContext(t *testing.T) {
} }
func TestSubQueriesForQuotedNames(t *testing.T) { func TestSubQueriesForQuotedNames(t *testing.T) {
first10Artist := Artist. first10Artist := SELECT(Artist.AllColumns).
SELECT(Artist.AllColumns). FROM(Artist).
ORDER_BY(Artist.ArtistId). ORDER_BY(Artist.ArtistId).
LIMIT(10). LIMIT(10).
AsTable("first10Artist") AsTable("first10Artist")
artistID := Artist.ArtistId.From(first10Artist) artistID := Artist.ArtistId.From(first10Artist)
first10Albums := Album. first10Albums := SELECT(Album.AllColumns).
SELECT(Album.AllColumns). FROM(Album).
ORDER_BY(Album.AlbumId). ORDER_BY(Album.AlbumId).
LIMIT(10). LIMIT(10).
AsTable("first10Albums") AsTable("first10Albums")
albumArtistID := Album.ArtistId.From(first10Albums) albumArtistID := Album.ArtistId.From(first10Albums)
stmt := first10Artist. stmt := SELECT(
INNER_JOIN(first10Albums, artistID.EQ(albumArtistID)). first10Artist.AllColumns(),
SELECT(first10Artist.AllColumns(), first10Albums.AllColumns()). first10Albums.AllColumns(),
ORDER_BY(artistID) ).FROM(
first10Artist.
INNER_JOIN(first10Albums, artistID.EQ(albumArtistID)),
).ORDER_BY(
artistID,
)
testutils.AssertDebugStatementSql(t, stmt, ` testutils.AssertDebugStatementSql(t, stmt, `
SELECT "first10Artist"."Artist.ArtistId" AS "Artist.ArtistId", SELECT "first10Artist"."Artist.ArtistId" AS "Artist.ArtistId",
"first10Artist"."Artist.Name" AS "Artist.Name", "first10Artist"."Artist.Name" AS "Artist.Name",
"first10Albums"."Album.AlbumId" AS "Album.AlbumId", "first10Albums"."Album.AlbumId" AS "Album.AlbumId",
"first10Albums"."Album.Title" AS "Album.Title", "first10Albums"."Album.Title" AS "Album.Title",
"first10Albums"."Album.ArtistId" AS "Album.ArtistId" "first10Albums"."Album.ArtistId" AS "Album.ArtistId",
"first10Albums"."Album.Type" AS "Album.Type"
FROM ( FROM (
SELECT "Artist"."ArtistId" AS "Artist.ArtistId", SELECT "Artist"."ArtistId" AS "Artist.ArtistId",
"Artist"."Name" AS "Artist.Name" "Artist"."Name" AS "Artist.Name"
@ -797,7 +811,8 @@ FROM (
INNER JOIN ( INNER JOIN (
SELECT "Album"."AlbumId" AS "Album.AlbumId", SELECT "Album"."AlbumId" AS "Album.AlbumId",
"Album"."Title" AS "Album.Title", "Album"."Title" AS "Album.Title",
"Album"."ArtistId" AS "Album.ArtistId" "Album"."ArtistId" AS "Album.ArtistId",
"Album"."Type" AS "Album.Type"
FROM chinook."Album" FROM chinook."Album"
ORDER BY "Album"."AlbumId" ORDER BY "Album"."AlbumId"
LIMIT 10 LIMIT 10
@ -812,8 +827,8 @@ ORDER BY "first10Artist"."Artist.ArtistId";
} }
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
require.NoError(t, err) require.NoError(t, err)
require.Len(t, dest, 8)
} }
func TestMultiTenantDifferentSchema(t *testing.T) { func TestMultiTenantDifferentSchema(t *testing.T) {
@ -821,16 +836,16 @@ func TestMultiTenantDifferentSchema(t *testing.T) {
Artist2 := Artist.FromSchema("chinook2") Artist2 := Artist.FromSchema("chinook2")
Album2 := Album.FromSchema("chinook2") Album2 := Album.FromSchema("chinook2")
first10Artist := Artist2. first10Artist := SELECT(Artist2.AllColumns).
SELECT(Artist2.AllColumns). FROM(Artist2).
ORDER_BY(Artist2.ArtistId). ORDER_BY(Artist2.ArtistId).
LIMIT(10). LIMIT(10).
AsTable("first10Artist") AsTable("first10Artist")
artistID := Artist2.ArtistId.From(first10Artist) artistID := Artist2.ArtistId.From(first10Artist)
first10Albums := Album2. first10Albums := SELECT(Album2.AllColumns).
SELECT(Album2.AllColumns). FROM(Album2).
ORDER_BY(Album2.AlbumId). ORDER_BY(Album2.AlbumId).
LIMIT(10). LIMIT(10).
AsTable("first10Albums") AsTable("first10Albums")
@ -840,16 +855,20 @@ func TestMultiTenantDifferentSchema(t *testing.T) {
stmt := SELECT( stmt := SELECT(
first10Artist.AllColumns(), first10Artist.AllColumns(),
first10Albums.AllColumns(), first10Albums.AllColumns(),
).FROM(first10Artist. ).FROM(
INNER_JOIN(first10Albums, artistID.EQ(albumArtistID)), first10Artist.
).ORDER_BY(artistID) INNER_JOIN(first10Albums, artistID.EQ(albumArtistID)),
).ORDER_BY(
artistID,
)
testutils.AssertDebugStatementSql(t, stmt, ` testutils.AssertDebugStatementSql(t, stmt, `
SELECT "first10Artist"."Artist.ArtistId" AS "Artist.ArtistId", SELECT "first10Artist"."Artist.ArtistId" AS "Artist.ArtistId",
"first10Artist"."Artist.Name" AS "Artist.Name", "first10Artist"."Artist.Name" AS "Artist.Name",
"first10Albums"."Album.AlbumId" AS "Album.AlbumId", "first10Albums"."Album.AlbumId" AS "Album.AlbumId",
"first10Albums"."Album.Title" AS "Album.Title", "first10Albums"."Album.Title" AS "Album.Title",
"first10Albums"."Album.ArtistId" AS "Album.ArtistId" "first10Albums"."Album.ArtistId" AS "Album.ArtistId",
"first10Albums"."Album.Type" AS "Album.Type"
FROM ( FROM (
SELECT "Artist"."ArtistId" AS "Artist.ArtistId", SELECT "Artist"."ArtistId" AS "Artist.ArtistId",
"Artist"."Name" AS "Artist.Name" "Artist"."Name" AS "Artist.Name"
@ -860,7 +879,8 @@ FROM (
INNER JOIN ( INNER JOIN (
SELECT "Album"."AlbumId" AS "Album.AlbumId", SELECT "Album"."AlbumId" AS "Album.AlbumId",
"Album"."Title" AS "Album.Title", "Album"."Title" AS "Album.Title",
"Album"."ArtistId" AS "Album.ArtistId" "Album"."ArtistId" AS "Album.ArtistId",
"Album"."Type" AS "Album.Type"
FROM chinook2."Album" FROM chinook2."Album"
ORDER BY "Album"."AlbumId" ORDER BY "Album"."AlbumId"
LIMIT 10 LIMIT 10
@ -919,7 +939,9 @@ func TestMultiTenantSameSchemaDifferentTablePrefix(t *testing.T) {
Album := table.Album.WithPrefix(tenant) Album := table.Album.WithPrefix(tenant)
return SELECT( return SELECT(
Album.AllColumns, Album.AlbumId,
Album.Title,
Album.ArtistId,
).FROM( ).FROM(
Album, Album,
).ORDER_BY( ).ORDER_BY(
@ -948,17 +970,20 @@ LIMIT $1;
{ {
"AlbumId": 80, "AlbumId": 80,
"Title": "In Your Honor [Disc 2]", "Title": "In Your Honor [Disc 2]",
"ArtistId": 84 "ArtistId": 84,
"Type": ""
}, },
{ {
"AlbumId": 81, "AlbumId": 81,
"Title": "One By One", "Title": "One By One",
"ArtistId": 84 "ArtistId": 84,
"Type": ""
}, },
{ {
"AlbumId": 82, "AlbumId": 82,
"Title": "The Colour And The Shape", "Title": "The Colour And The Shape",
"ArtistId": 84 "ArtistId": 84,
"Type": ""
} }
] ]
`) `)
@ -984,17 +1009,20 @@ LIMIT $1;
{ {
"AlbumId": 152, "AlbumId": 152,
"Title": "Master Of Puppets", "Title": "Master Of Puppets",
"ArtistId": 50 "ArtistId": 50,
"Type": ""
}, },
{ {
"AlbumId": 153, "AlbumId": 153,
"Title": "ReLoad", "Title": "ReLoad",
"ArtistId": 50 "ArtistId": 50,
"Type": ""
}, },
{ {
"AlbumId": 154, "AlbumId": 154,
"Title": "Ride The Lightning", "Title": "Ride The Lightning",
"ArtistId": 50 "ArtistId": 50,
"Type": ""
} }
] ]
`) `)
@ -1007,7 +1035,9 @@ func TestMultiTenantSameSchemaDifferentTableSuffix(t *testing.T) {
Album := table.Album.WithSuffix(tenant) Album := table.Album.WithSuffix(tenant)
return SELECT( return SELECT(
Album.AllColumns, Album.AlbumId,
Album.Title,
Album.ArtistId,
).FROM( ).FROM(
Album, Album,
).ORDER_BY( ).ORDER_BY(
@ -1030,23 +1060,25 @@ LIMIT $1;
var albums []model.Album var albums []model.Album
err := stmt.Query(db, &albums) err := stmt.Query(db, &albums)
require.NoError(t, err) require.NoError(t, err)
testutils.AssertJSON(t, albums, ` testutils.AssertJSON(t, albums, `
[ [
{ {
"AlbumId": 80, "AlbumId": 80,
"Title": "In Your Honor [Disc 2]", "Title": "In Your Honor [Disc 2]",
"ArtistId": 84 "ArtistId": 84,
"Type": ""
}, },
{ {
"AlbumId": 81, "AlbumId": 81,
"Title": "One By One", "Title": "One By One",
"ArtistId": 84 "ArtistId": 84,
"Type": ""
}, },
{ {
"AlbumId": 82, "AlbumId": 82,
"Title": "The Colour And The Shape", "Title": "The Colour And The Shape",
"ArtistId": 84 "ArtistId": 84,
"Type": ""
} }
] ]
`) `)
@ -1072,17 +1104,20 @@ LIMIT $1;
{ {
"AlbumId": 152, "AlbumId": 152,
"Title": "Master Of Puppets", "Title": "Master Of Puppets",
"ArtistId": 50 "ArtistId": 50,
"Type": ""
}, },
{ {
"AlbumId": 153, "AlbumId": 153,
"Title": "ReLoad", "Title": "ReLoad",
"ArtistId": 50 "ArtistId": 50,
"Type": ""
}, },
{ {
"AlbumId": 154, "AlbumId": 154,
"Title": "Ride The Lightning", "Title": "Ride The Lightning",
"ArtistId": 50 "ArtistId": 50,
"Type": ""
} }
] ]
`) `)
@ -1093,18 +1128,21 @@ var album1 = model.Album{
AlbumId: 1, AlbumId: 1,
Title: "For Those About To Rock We Salute You", Title: "For Those About To Rock We Salute You",
ArtistId: 1, ArtistId: 1,
Type: model.AlbumType_Studio,
} }
var album2 = model.Album{ var album2 = model.Album{
AlbumId: 2, AlbumId: 2,
Title: "Balls to the Wall", Title: "Balls to the Wall",
ArtistId: 2, ArtistId: 2,
Type: model.AlbumType_Studio,
} }
var album347 = model.Album{ var album347 = model.Album{
AlbumId: 347, AlbumId: 347,
Title: "Koyaanisqatsi (Soundtrack from the Motion Picture)", Title: "Koyaanisqatsi (Soundtrack from the Motion Picture)",
ArtistId: 275, ArtistId: 275,
Type: model.AlbumType_Studio,
} }
func TestAggregateFunc(t *testing.T) { func TestAggregateFunc(t *testing.T) {