Skip to content

Commit 45d606f

Browse files
authored
add tests for beforequery (#72)
1 parent fe954eb commit 45d606f

File tree

1 file changed

+157
-0
lines changed

1 file changed

+157
-0
lines changed

tests/query_test.go

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1713,3 +1713,160 @@ func TestLargeResultSet(t *testing.T) {
17131713
t.Errorf("Last row incorrect: %+v", results[999])
17141714
}
17151715
}
1716+
1717+
func TestBeforeQueryTableUnscoped(t *testing.T) {
1718+
beforequeryuserunscoped := []User{
1719+
{Name: "beforequery_user_unscoped", Age: 1},
1720+
{Name: "beforequery_user2_unscoped", Age: 2},
1721+
{Name: "beforequery_user3_unscoped", Age: 3},
1722+
{Name: "beforequery_user4_unscoped", Age: 4},
1723+
{Name: "beforequery_user5_unscoped", Age: 5},
1724+
{Name: "beforequery_user6_unscoped", Age: 6},
1725+
{Name: "beforequery_user7_unscoped", Age: 7},
1726+
}
1727+
DB.Save(&beforequeryuserunscoped)
1728+
1729+
var fetched1 []User
1730+
err1 := DB.Table("\"users\" u").Unscoped().Where("\"name\" = ?", "beforequery_user_unscoped").Find(&fetched1).Error
1731+
if err1 != nil {
1732+
t.Fatalf("Failed to query with table alias 'users u': %v", err1)
1733+
}
1734+
if len(fetched1) != 1 || fetched1[0].Name != "beforequery_user_unscoped" {
1735+
t.Errorf("Expected to fetch 'beforequery_user_unscoped' with table alias, got: %+v", fetched1)
1736+
}
1737+
1738+
var fetched2 []User
1739+
err2 := DB.Table(`users`).Unscoped().Where("\"name\" = ?", "beforequery_user2_unscoped").Find(&fetched2).Error
1740+
if err2 != nil {
1741+
t.Fatalf("Failed to query with backtick table name '`users`': %v", err2)
1742+
}
1743+
if len(fetched2) != 1 || fetched2[0].Name != "beforequery_user2_unscoped" {
1744+
t.Errorf("Expected to fetch 'beforequery_user2_unscoped' with backtick table, got: %+v", fetched2)
1745+
}
1746+
1747+
var fetched3 []User
1748+
err3 := DB.Table("(SELECT * FROM \"users\") temp").Unscoped().Where("\"name\" = ?", "beforequery_user3_unscoped").Find(&fetched3).Error
1749+
if err3 != nil {
1750+
t.Fatalf("Failed to query with subquery table: %v", err3)
1751+
}
1752+
if len(fetched3) != 1 || fetched3[0].Name != "beforequery_user3_unscoped" {
1753+
t.Errorf("Expected to fetch 'beforequery_user3_unscoped' with subquery table, got: %+v", fetched3)
1754+
}
1755+
1756+
var fetched4 []User
1757+
err4 := DB.Table("(SELECT * FROM \"users\")").Unscoped().Where("\"name\" = ?", "beforequery_user4_unscoped").Find(&fetched4).Error
1758+
if err4 != nil {
1759+
t.Fatalf("Failed to query with subquery table: %v", err4)
1760+
}
1761+
if len(fetched4) != 1 || fetched4[0].Name != "beforequery_user4_unscoped" {
1762+
t.Errorf("Expected to fetch 'beforequery_user4_unscoped' with subquery table, got: %+v", fetched4)
1763+
}
1764+
1765+
var fetched5 []User
1766+
err5 := DB.Table("\"users\"").Unscoped().Where("\"name\" = ?", "beforequery_user5_unscoped").Find(&fetched5).Error
1767+
if err5 != nil {
1768+
t.Fatalf("Failed to query with subquery table: %v", err5)
1769+
}
1770+
if len(fetched5) != 1 || fetched5[0].Name != "beforequery_user5_unscoped" {
1771+
t.Errorf("Expected to fetch 'beforequery_user5_unscoped' with subquery table, got: %+v", fetched5)
1772+
}
1773+
1774+
var fetched6 []User
1775+
err6 := DB.Table(`"users" "u"`).Unscoped().Where("\"name\" = ?", "beforequery_user6_unscoped").Find(&fetched6).Error
1776+
if err6 != nil {
1777+
t.Fatalf("Failed to query with subquery table: %v", err6)
1778+
}
1779+
if len(fetched6) != 1 || fetched6[0].Name != "beforequery_user6_unscoped" {
1780+
t.Errorf("Expected to fetch 'beforequery_user6_unscoped' with subquery table, got: %+v", fetched6)
1781+
}
1782+
1783+
var fetched7 []User
1784+
err7 := DB.Table(`"users" u`).Unscoped().Where("\"name\" = ?", "beforequery_user7_unscoped").Find(&fetched7).Error
1785+
if err7 != nil {
1786+
t.Fatalf("Failed to query with subquery table: %v", err7)
1787+
}
1788+
if len(fetched7) != 1 || fetched7[0].Name != "beforequery_user7_unscoped" {
1789+
t.Errorf("Expected to fetch 'beforequery_user7_unscoped' with subquery table, got: %+v", fetched7)
1790+
}
1791+
1792+
}
1793+
1794+
func TestBeforeQueryTable(t *testing.T) {
1795+
t.Skip()
1796+
beforequeryuser := []User{
1797+
{Name: "beforequery_user", Age: 11},
1798+
{Name: "beforequery_user2", Age: 12},
1799+
{Name: "beforequery_user3", Age: 13},
1800+
{Name: "beforequery_user4", Age: 14},
1801+
{Name: "beforequery_user5", Age: 15},
1802+
{Name: "beforequery_user6", Age: 16},
1803+
{Name: "beforequery_user7", Age: 17},
1804+
}
1805+
DB.Save(&beforequeryuser)
1806+
1807+
// https://github.com/oracle-samples/gorm-oracle/issues/36
1808+
var fetched1 []User
1809+
err1 := DB.Table("\"users\" u").Where("\"name\" = ?", "beforequery_user").Find(&fetched1).Error
1810+
if err1 != nil {
1811+
t.Fatalf("Failed to query with table alias 'users u': %v", err1)
1812+
}
1813+
if len(fetched1) != 1 || fetched1[0].Name != "beforequery_user" {
1814+
t.Errorf("Expected to fetch 'beforequery_user' with table alias, got: %+v", fetched1)
1815+
}
1816+
1817+
var fetched2 []User
1818+
err2 := DB.Table(`users`).Where("\"name\" = ?", "beforequery_user2").Find(&fetched2).Error
1819+
if err2 != nil {
1820+
t.Fatalf("Failed to query with backtick table name '`users`': %v", err2)
1821+
}
1822+
if len(fetched2) != 1 || fetched2[0].Name != "beforequery_user2" {
1823+
t.Errorf("Expected to fetch 'beforequery_user2' with backtick table, got: %+v", fetched2)
1824+
}
1825+
1826+
// https://github.com/oracle-samples/gorm-oracle/issues/70
1827+
var fetched3 []User
1828+
err3 := DB.Table("(SELECT * FROM \"users\") temp").Where("\"name\" = ?", "beforequery_user3").Find(&fetched3).Error
1829+
if err3 != nil {
1830+
t.Fatalf("Failed to query with subquery table: %v", err3)
1831+
}
1832+
if len(fetched3) != 1 || fetched3[0].Name != "beforequery_user3" {
1833+
t.Errorf("Expected to fetch 'beforequery_user3' with subquery table, got: %+v", fetched3)
1834+
}
1835+
1836+
var fetched4 []User
1837+
err4 := DB.Table("(SELECT * FROM \"users\")").Where("\"name\" = ?", "beforequery_user4").Find(&fetched4).Error
1838+
if err4 != nil {
1839+
t.Fatalf("Failed to query with subquery table: %v", err4)
1840+
}
1841+
if len(fetched4) != 1 || fetched4[0].Name != "beforequery_user4" {
1842+
t.Errorf("Expected to fetch 'beforequery_user4' with subquery table, got: %+v", fetched4)
1843+
}
1844+
1845+
var fetched5 []User
1846+
err5 := DB.Table("\"users\"").Where("\"name\" = ?", "beforequery_user5").Find(&fetched5).Error
1847+
if err5 != nil {
1848+
t.Fatalf("Failed to query with subquery table: %v", err5)
1849+
}
1850+
if len(fetched5) != 1 || fetched5[0].Name != "beforequery_user5" {
1851+
t.Errorf("Expected to fetch 'beforequery_user5' with subquery table, got: %+v", fetched5)
1852+
}
1853+
1854+
var fetched6 []User
1855+
err6 := DB.Table(`"users" "u"`).Where("\"name\" = ?", "beforequery_user6").Find(&fetched6).Error
1856+
if err6 != nil {
1857+
t.Fatalf("Failed to query with subquery table: %v", err6)
1858+
}
1859+
if len(fetched6) != 1 || fetched6[0].Name != "beforequery_user6" {
1860+
t.Errorf("Expected to fetch 'beforequery_user6' with subquery table, got: %+v", fetched6)
1861+
}
1862+
1863+
// https://github.com/oracle-samples/gorm-oracle/issues/36
1864+
var fetched7 []User
1865+
err7 := DB.Table(`"users" u`).Where("\"name\" = ?", "beforequery_user7").Find(&fetched7).Error
1866+
if err7 != nil {
1867+
t.Fatalf("Failed to query with subquery table: %v", err7)
1868+
}
1869+
if len(fetched7) != 1 || fetched7[0].Name != "beforequery_user7" {
1870+
t.Errorf("Expected to fetch 'beforequery_user7' with subquery table, got: %+v", fetched7)
1871+
}
1872+
}

0 commit comments

Comments
 (0)