package factories import ( "github.com/icrowley/fake" "rocketgit.ru/rsmon/worker/app/models" ) // MonitorFactory provides functionality. func MonitorFactory(group *models.Group, name string) models.Monitor { if name == "" { name = fake.Company() } host := fake.DomainName() monitor := models.Monitor{ Enabled: true, Name: &name, Host: host, } if group == nil { g := GroupFactory(nil) group = &g } monitor.Group = group monitor.GroupID = group.ID return monitor } // PersistedMonitor provides functionality. func PersistedMonitor(group *models.Group) models.Monitor { monitor := MonitorFactory(group, "") if monitor.Group.ID == 0 { err := models.DB().Save(&monitor.Group).Error if err != nil { panic(err) } monitor.GroupID = monitor.Group.ID } err := models.DB().Save(&monitor).Error if err != nil { panic(err) } return monitor } // MonitorWithNotification provides functionality. func MonitorWithNotification() (models.Contact, models.Notification, models.Monitor) { user := PersistedUser("test@test.ru", "123") account, err := models.CreateAccountForUser(fake.Company(), &user) if err != nil { panic(err) } contact := PersistedContact(account, &user) group := PersistedGroup(account) notification := PersistedNotification(account, []int64{contact.ID}, []int64{group.ID}, 300, false) monitor := PersistedMonitor(&group) return contact, notification, monitor }