sync_test.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package sync_test
  2. import (
  3. "log"
  4. "testing"
  5. "time"
  6. "github.com/remogatto/prettytest"
  7. karmen_client "gogs.carducci-dante.gov.it/karmen/client"
  8. "gogs.carducci-dante.gov.it/karmen/core/config"
  9. "gogs.carducci-dante.gov.it/karmen/core/cron/sync"
  10. "gogs.carducci-dante.gov.it/karmen/core/orm"
  11. karmen_ldap "gogs.carducci-dante.gov.it/karmen/ldap"
  12. )
  13. type testSuite struct {
  14. prettytest.Suite
  15. }
  16. var (
  17. ldap *karmen_ldap.Client
  18. karmen *karmen_client.Client
  19. conf *config.ConfigT
  20. )
  21. func TestRunner(t *testing.T) {
  22. prettytest.Run(
  23. t,
  24. new(testSuite),
  25. )
  26. }
  27. func (t *testSuite) BeforeAll() {
  28. var err error
  29. time.Sleep(time.Second * 10) // Wait for the server to go up...
  30. conf = new(config.ConfigT)
  31. err = config.ReadFile("config.yaml", conf)
  32. if err != nil {
  33. panic(err)
  34. }
  35. ldap, err = karmen_ldap.NewClient("localhost:389", conf)
  36. if err != nil {
  37. panic(err)
  38. }
  39. karmen, err = karmen_client.Dial(conf.Url, conf.Admin.Username, conf.Admin.Password)
  40. if err != nil {
  41. log.Println(err)
  42. }
  43. }
  44. func (t *testSuite) AfterAll() {
  45. ldap.Close()
  46. }
  47. func (t *testSuite) TestSyncUsers() {
  48. syncJob := sync.NewSyncJob(conf)
  49. teachers, err := karmen.GetTeachers()
  50. t.Nil(err)
  51. entries, err := ldap.Users("ou=People,dc=foo,dc=org")
  52. t.Nil(err)
  53. users := make([]orm.User, 0)
  54. for _, teacher := range teachers {
  55. users = append(users, teacher)
  56. }
  57. err = syncJob.SyncUsers(ldap, karmen, entries, users)
  58. t.Nil(err)
  59. }