datasource_test.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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_INFLUXDB,
  26. Access: m.DS_ACCESS_DIRECT,
  27. Url: "http://test",
  28. Database: "site",
  29. })
  30. So(err, ShouldBeNil)
  31. query := m.GetDataSourcesQuery{AccountId: 10}
  32. err = GetDataSources(&query)
  33. So(err, ShouldBeNil)
  34. So(len(query.Result), ShouldEqual, 1)
  35. ds := query.Result[0]
  36. So(ds.AccountId, ShouldEqual, 10)
  37. So(ds.Database, ShouldEqual, "site")
  38. })
  39. Convey("Given a datasource", func() {
  40. AddDataSource(&m.AddDataSourceCommand{
  41. AccountId: 10,
  42. Type: m.DS_GRAPHITE,
  43. Access: m.DS_ACCESS_DIRECT,
  44. Url: "http://test",
  45. })
  46. query := m.GetDataSourcesQuery{AccountId: 10}
  47. GetDataSources(&query)
  48. ds := query.Result[0]
  49. Convey("Can delete datasource", func() {
  50. err := DeleteDataSource(&m.DeleteDataSourceCommand{Id: ds.Id, AccountId: ds.AccountId})
  51. So(err, ShouldBeNil)
  52. GetDataSources(&query)
  53. So(len(query.Result), ShouldEqual, 0)
  54. })
  55. Convey("Can not delete datasource with wrong accountId", func() {
  56. err := DeleteDataSource(&m.DeleteDataSourceCommand{Id: ds.Id, AccountId: 123123})
  57. So(err, ShouldBeNil)
  58. GetDataSources(&query)
  59. So(len(query.Result), ShouldEqual, 1)
  60. })
  61. })
  62. })
  63. }