sqlstore_test.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package sqlstore
  2. import (
  3. "testing"
  4. "github.com/go-xorm/xorm"
  5. . "github.com/smartystreets/goconvey/convey"
  6. m "github.com/torkelo/grafana-pro/pkg/models"
  7. )
  8. func InitTestDB(t *testing.T) {
  9. x, err := xorm.NewEngine("sqlite3", ":memory:")
  10. if err != nil {
  11. t.Fatalf("Failed to init in memory sqllite3 db %v", err)
  12. }
  13. SetEngine(x, false)
  14. }
  15. type Test struct {
  16. Id int64
  17. Name string
  18. }
  19. func TestDataAccess(t *testing.T) {
  20. Convey("Testing DB", t, func() {
  21. InitTestDB(t)
  22. Convey("Can add datasource", func() {
  23. err := AddDataSource(&m.AddDataSourceCommand{
  24. AccountId: 10,
  25. Type: m.DS_GRAPHITE,
  26. Access: m.DS_ACCESS_DIRECT,
  27. Url: "http://test",
  28. })
  29. So(err, ShouldBeNil)
  30. query := m.GetDataSourcesQuery{AccountId: 10}
  31. err = GetDataSources(&query)
  32. So(err, ShouldBeNil)
  33. So(len(query.Result), ShouldEqual, 1)
  34. ds := query.Result[0]
  35. So(ds.AccountId, ShouldEqual, 10)
  36. })
  37. Convey("Given a datasource", func() {
  38. AddDataSource(&m.AddDataSourceCommand{
  39. AccountId: 10,
  40. Type: m.DS_GRAPHITE,
  41. Access: m.DS_ACCESS_DIRECT,
  42. Url: "http://test",
  43. })
  44. query := m.GetDataSourcesQuery{AccountId: 10}
  45. GetDataSources(&query)
  46. ds := query.Result[0]
  47. Convey("Can delete datasource", func() {
  48. err := DeleteDataSource(&m.DeleteDataSourceCommand{Id: ds.Id, AccountId: ds.AccountId})
  49. So(err, ShouldBeNil)
  50. GetDataSources(&query)
  51. So(len(query.Result), ShouldEqual, 0)
  52. })
  53. Convey("Can not delete datasource with wrong accountId", func() {
  54. err := DeleteDataSource(&m.DeleteDataSourceCommand{Id: ds.Id, AccountId: 123123})
  55. So(err, ShouldBeNil)
  56. GetDataSources(&query)
  57. So(len(query.Result), ShouldEqual, 1)
  58. })
  59. })
  60. })
  61. }