datasource_test.go 2.2 KB

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