Ejemplo n.º 1
0
	Describe("query counting", func() {
		It("increments the global (;_;) counter", func() {
			_, err := countingConn.Query("SELECT $1::int", 1)
			Expect(err).NotTo(HaveOccurred())

			Expect(metric.DatabaseQueries.Max()).To(Equal(1))

			_, err = countingConn.Exec("SELECT $1::int", 1)
			Expect(err).NotTo(HaveOccurred())

			Expect(metric.DatabaseQueries.Max()).To(Equal(2))

			countingConn.QueryRow("SELECT $1::int", 1)

			Expect(metric.DatabaseQueries.Max()).To(Equal(3))

			By("working in transactions")
			underlyingTx := &fakes.FakeTx{}
			underlyingConn.BeginReturns(underlyingTx, nil)

			tx, err := countingConn.Begin()
			Expect(err).NotTo(HaveOccurred())

			_, err = tx.Query("SELECT $1::int", 1)
			Expect(err).NotTo(HaveOccurred())

			Expect(metric.DatabaseQueries.Max()).To(Equal(4))
		})
	})
})