()
| 1702 | } |
| 1703 | |
| 1704 | func (s *SQLTestSuite) TestSession() { |
| 1705 | sess := s.Session() |
| 1706 | |
| 1707 | var all []map[string]interface{} |
| 1708 | |
| 1709 | err := sess.Collection("artist").Truncate() |
| 1710 | s.NoError(err) |
| 1711 | |
| 1712 | _, err = sess.SQL().InsertInto("artist").Values(struct { |
| 1713 | Name string `db:"name"` |
| 1714 | }{"Rinko Kikuchi"}).Exec() |
| 1715 | s.NoError(err) |
| 1716 | |
| 1717 | // Using explicit iterator. |
| 1718 | iter := sess.SQL().SelectFrom("artist").Iterator() |
| 1719 | err = iter.All(&all) |
| 1720 | |
| 1721 | s.NoError(err) |
| 1722 | s.NotZero(all) |
| 1723 | |
| 1724 | // Using explicit iterator to fetch one item. |
| 1725 | var item map[string]interface{} |
| 1726 | iter = sess.SQL().SelectFrom("artist").Iterator() |
| 1727 | err = iter.One(&item) |
| 1728 | |
| 1729 | s.NoError(err) |
| 1730 | s.NotZero(item) |
| 1731 | |
| 1732 | // Using explicit iterator and NextScan. |
| 1733 | iter = sess.SQL().SelectFrom("artist").Iterator() |
| 1734 | var id int |
| 1735 | var name string |
| 1736 | |
| 1737 | if s.Adapter() == "ql" { |
| 1738 | err = iter.NextScan(&name) |
| 1739 | id = 1 |
| 1740 | } else { |
| 1741 | err = iter.NextScan(&id, &name) |
| 1742 | } |
| 1743 | |
| 1744 | s.NoError(err) |
| 1745 | s.NotZero(id) |
| 1746 | s.NotEmpty(name) |
| 1747 | s.NoError(iter.Close()) |
| 1748 | |
| 1749 | err = iter.NextScan(&id, &name) |
| 1750 | s.Error(err) |
| 1751 | |
| 1752 | // Using explicit iterator and ScanOne. |
| 1753 | iter = sess.SQL().SelectFrom("artist").Iterator() |
| 1754 | id, name = 0, "" |
| 1755 | if s.Adapter() == "ql" { |
| 1756 | err = iter.ScanOne(&name) |
| 1757 | id = 1 |
| 1758 | } else { |
| 1759 | err = iter.ScanOne(&id, &name) |
| 1760 | } |
| 1761 |
nothing calls this directly
no test coverage detected