package model

import (
	"sparrow/pkg/mysql"
	"testing"

	"github.com/jinzhu/gorm"
)

func TestGetDeviceCount(t *testing.T) {

	device := newDevice(t)
	count, err := device.GetDeviceCount(1)
	if err != nil {
		t.Fatal(err)
	}
	t.Log(count)
}

func TestGetActiveNumberOfDate(t *testing.T) {
	d := newDevice(t)
	count, err := d.GetActiveNumberOfDate(1, "2018-12-27")
	if err != nil {
		t.Fatal(err)
	}
	t.Log(count)
}

func TestGetLivelyCountOfDate(t *testing.T) {
	d := newDevice(t)
	count, err := d.GetLivelyCountOfDate(1, "2019-01-02")
	if err != nil {
		t.Fatal(err)
	}
	t.Log(count)
}

// func TestGetActiveOf7Days(t *testing.T) {
// 	d := newDevice(t)
// 	datas, err := d.GetActiveOf7Days(1)
// 	if err != nil {
// 		t.Fatal(err)
// 	}
// 	for k, v := range datas {
// 		t.Logf("%d, %v", k, v)
// 	}
// }

// func TestGetActiveOf14Days(t *testing.T) {
// 	d := newDevice(t)
// 	datas, err := d.GetActiveOf14Days(1)
// 	if err != nil {
// 		t.Fatal(err)
// 	}
// 	for k, v := range datas {
// 		t.Logf("%d, %v", k, v)
// 	}
// }
// func TestGetActiveOf30Days(t *testing.T) {
// 	d := newDevice(t)
// 	datas, err := d.GetActiveOf30Days(1)
// 	if err != nil {
// 		t.Fatal(err)
// 	}
// 	for k, v := range datas {
// 		t.Logf("%d, %v", k, v)
// 	}
// }

func TestGetActiveOfNumDays(t *testing.T) {
	d := newDevice(t)
	datas, err := d.GetActiveOfNumDays(1, 30)
	if err != nil {
		t.Fatal(err)
	}
	for k, v := range datas {
		t.Logf("%d, %v", k, v)
	}
}
func TestGetLivelyOfNumDays(t *testing.T) {
	d := newDevice(t)
	datas, err := d.GetLivelyOfNumDays(1, 30)
	if err != nil {
		t.Fatal(err)
	}
	for k, v := range datas {
		t.Logf("%d, %v", k, v)
	}
}
func TestGetDevices(t *testing.T) {
	d := newDevice(t)
	datas, total, err := d.GetDevices(1, 0, 1, 10, "")
	if err != nil {
		t.Fatal(err)
	}
	t.Logf("%v,%d", datas, total)
}
func newDevice(t *testing.T) *Device {
	db, err := getDB()
	if err != nil {
		t.Fatal(err)
	}
	device := new(Device).Init(db)
	return device
}

func getDB() (*gorm.DB, error) {
	db, err := mysql.GetClient("39.98.250.155", "3306", "gxt-iot-db", "root", "gEkYDPloQcp93t4WHr3X")
	if err != nil {
		return nil, err
	}
	gormdb, err := gorm.Open("mysql", db)
	if err != nil {
		return nil, err
	}
	gormdb.SingularTable(true)
	gormdb.LogMode(true)
	return gormdb, nil
}
