123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- package orm
- import (
- "testing"
- "time"
- "github.com/jinzhu/gorm"
- "github.com/remogatto/prettytest"
- )
- type testSuite struct {
- prettytest.Suite
- }
- func TestRunner(t *testing.T) {
- prettytest.Run(
- t,
- new(testSuite),
- )
- }
- func (t *testSuite) BeforeAll() {
- var (
- db *gorm.DB
- err error
- )
- connected := false
- for !connected {
- time.Sleep(10 * time.Second)
- db, err = New("karmen:karmen@/karmen_test?charset=utf8&parseTime=True&loc=Local")
- if err != nil {
- time.Sleep(5 * time.Second)
- continue
- }
- connected = true
- }
- Use(db)
- AutoMigrate()
- }
- func (t *testSuite) TestDB() {
- t.Not(t.Nil(DB()))
- }
- func (t *testSuite) TestGetActivityAll() {
- activity, err := GetActivityAll(map[string]string{"id": "1"})
- t.Nil(err)
- if !t.Failed() {
- t.Equal("Amilcare", activity.(*Activity).Teacher.Name)
- }
- }
- func (t *testSuite) TestGetActivityForUpdate() {
- data, err := GetActivityForUpdate(map[string]string{"id": "1"})
- t.Nil(err)
- if !t.Failed() {
- t.Equal("Amilcare", data.(ActivityForUpdate).Activity.Teacher.Name)
- t.Equal("1 A", data.(ActivityForUpdate).AllClasses[0].Name)
- t.Equal("ITALIANO", data.(ActivityForUpdate).AllSubjects[1].Name)
- t.Equal("Costanza", data.(ActivityForUpdate).AllTeachers[2].Name)
- }
- }
- func (t *testSuite) TestSaveActivity() {
- activity, err := GetActivity(map[string]string{"id": "1"})
- t.Nil(err)
- t.Equal(uint(1), activity.(*Activity).SubjectID)
- activity.(*Activity).SubjectID = 2
- _, err = SaveActivity(activity)
- t.Nil(err)
- if !t.Failed() {
- activity, _ = GetActivity(map[string]string{"id": "1"})
- t.Equal(uint(2), activity.(*Activity).SubjectID)
- }
- }
- func (t *testSuite) TestGetTeacher() {
- teacher, err := GetTeacher(map[string]string{"id": "1"})
- t.Nil(err)
- if !t.Failed() {
- t.Equal("Amilcare", teacher.(*Teacher).Name)
- t.Equal("AGOSTINO", teacher.(*Teacher).Surname)
- }
- }
- func (t *testSuite) TestGetTeacherAll() {
- teacher, err := GetTeacherAll(map[string]string{"id": "1"})
- t.Nil(err)
- if !t.Failed() {
- t.Equal("Amilcare", teacher.(*Teacher).Name)
- t.Equal("AGOSTINO", teacher.(*Teacher).Surname)
- t.Equal("1 A", teacher.(*Teacher).Activities[0].Class.Name)
- }
- }
- func (t *testSuite) TestGetTeachers() {
- teachers, err := GetTeachers(map[string]string{})
- t.Nil(err)
- t.Equal(9, len(teachers.([]*Teacher)))
- teacher := teachers.([]*Teacher)[0]
- classes, err := teacher.GetClasses()
- t.Nil(err)
- t.Equal(1, len(classes))
- t.Equal(1, len(teacher.Classes))
- class := classes[0]
- t.Equal("1 A", class.Name)
- }
- func (t *testSuite) TestGetTeachersAll() {
- teachers, err := GetTeachersAll(map[string]string{})
- t.Nil(err)
- t.Equal(9, len(teachers.([]*Teacher)))
- t.Equal("1 A", teachers.([]*Teacher)[0].Classes[0].Name)
- t.Equal("MATEMATICA", teachers.([]*Teacher)[0].Subjects[0].Name)
- }
- func (t *testSuite) TestGetTeacherActivitiesByClass() {
- teacher, err := GetTeacher(map[string]string{"id": "1"})
- t.Nil(err)
- if !t.Failed() {
- _, err := teacher.(*Teacher).GetActivitiesByClass("1")
- t.Nil(err)
- if !t.Failed() {
- t.True(len(teacher.(*Teacher).Activities) > 0)
- }
- }
- }
- func (t *testSuite) TestGetClasses() {
- classes, err := GetClasses()
- t.Nil(err)
- t.Equal(1, len(classes))
- class := classes[0]
- teachers, err := class.GetTeachers()
- t.Nil(err)
- t.Equal(9, len(teachers))
- t.Equal(9, len(class.Teachers))
- teacher := teachers[0]
- t.Equal("AGOSTINO", teacher.Surname)
- classes, err = GetClassesAll()
- t.True(len(classes[0].Teachers) > 0)
- if !t.Failed() {
- t.Equal("AGOSTINO", classes[0].Teachers[0].Surname)
- }
- }
- func (t *testSuite) TestGetClass() {
- class, err := GetClass("1")
- t.Nil(err)
- if !t.Failed() {
- t.Equal("1 A", class.Name)
- // Test teachers
- t.True(len(class.Teachers) > 0)
- t.Equal("AGOSTINO", class.Teachers[0].Surname)
- t.Equal("PETRUZZELLI", class.Teachers[8].Surname)
- t.Equal("LUNGA", class.Coordinator.Surname)
- t.Equal("DONADONI", class.Minuter.Surname)
- // Test activities
- t.True(len(class.Activities) > 0)
- t.Equal("1 A", class.Activities[0].Class.Name)
- t.Equal("AGOSTINO", class.Activities[0].Teacher.Surname)
- t.Equal("MATEMATICA", class.Activities[0].Subject.Name)
- t.Equal(2, class.Activities[0].Hours)
- }
- }
- func (t *testSuite) TestSaveTeacher() {
- teacher, err := GetTeacher(map[string]string{"id": "1"})
- t.Nil(err)
- teacher.(*Teacher).Name = "Roberto"
- _, err = SaveTeacher(teacher)
- t.Nil(err)
- if !t.Failed() {
- teacher, _ = GetTeacher(map[string]string{"id": "1"})
- t.Equal("Roberto", teacher.(*Teacher).Name)
- }
- }
- func (t *testSuite) TestCreateDeleteTeacher() {
- teacher := new(Teacher)
- teacher.Name = "Giovanni"
- teacher.Surname = "Giacobbe"
- _, err := CreateTeacher(teacher)
- t.Nil(err)
- if !t.Failed() {
- teacherFromDb, _ := GetTeacher(map[string]string{"id": "10"})
- t.Equal("Giovanni", teacherFromDb.(*Teacher).Name)
- err := DeleteTeacher(teacherFromDb.(*Teacher))
- t.Nil(err)
- teachers, _ := GetTeachers(map[string]string{})
- t.Equal(9, len(teachers.([]*Teacher)))
- }
- }
|