package sync_test import ( "log" "testing" "time" "github.com/remogatto/prettytest" karmen_client "gogs.carducci-dante.gov.it/karmen/client" "gogs.carducci-dante.gov.it/karmen/core/config" "gogs.carducci-dante.gov.it/karmen/core/cron/sync" "gogs.carducci-dante.gov.it/karmen/core/orm" karmen_ldap "gogs.carducci-dante.gov.it/karmen/ldap" ) type testSuite struct { prettytest.Suite } var ( ldap *karmen_ldap.Client karmen *karmen_client.Client conf *config.ConfigT ) func TestRunner(t *testing.T) { prettytest.Run( t, new(testSuite), ) } func (t *testSuite) BeforeAll() { var err error time.Sleep(time.Second * 10) // Wait for the server to go up... conf = new(config.ConfigT) err = config.ReadFile("config.yaml", conf) if err != nil { panic(err) } ldap, err = karmen_ldap.NewClient("localhost:389", conf) if err != nil { panic(err) } karmen, err = karmen_client.Dial(conf.Url, conf.Admin.Username, conf.Admin.Password) if err != nil { log.Println(err) } } func (t *testSuite) AfterAll() { ldap.Close() } func (t *testSuite) TestSyncUsers() { syncJob := sync.NewSyncJob(conf) teachers, err := karmen.GetTeachers() t.Nil(err) entries, err := ldap.Users("ou=People,dc=foo,dc=org") t.Nil(err) users := make([]orm.User, 0) for _, teacher := range teachers { users = append(users, teacher) } err = syncJob.SyncUsers(ldap, karmen, entries, users) t.Nil(err) }