orm_test.go 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. package orm
  2. import (
  3. "os"
  4. "testing"
  5. // "time"
  6. "github.com/jinzhu/gorm"
  7. "github.com/remogatto/prettytest"
  8. _ "github.com/jinzhu/gorm/dialects/sqlite"
  9. )
  10. type testSuite struct {
  11. prettytest.Suite
  12. }
  13. func TestRunner(t *testing.T) {
  14. prettytest.Run(
  15. t,
  16. new(testSuite),
  17. )
  18. }
  19. func (t *testSuite) BeforeAll() {
  20. var (
  21. db *gorm.DB
  22. err error
  23. )
  24. _, err = os.Stat("test.db")
  25. if err == nil {
  26. err := os.Remove("test.db")
  27. if err != nil {
  28. panic(err)
  29. }
  30. }
  31. db, err = gorm.Open("sqlite3", "test.db")
  32. if err != nil {
  33. panic(err)
  34. }
  35. Use(db)
  36. AutoMigrate()
  37. }
  38. func (t *testSuite) TestDB() {
  39. t.Not(t.Nil(DB()))
  40. }
  41. func (t *testSuite) TestGetActivityAll() {
  42. activity, err := new(Activity).Read(map[string]string{"id": "1"}, nil)
  43. t.Nil(err)
  44. if !t.Failed() {
  45. t.Equal("Amilcare", activity.(*Activity).Teacher.Name)
  46. }
  47. }
  48. // func (t *testSuite) TestGetActivityForUpdate() {
  49. // data, err := GetActivityForUpdate(map[string]string{"id": "1"})
  50. // t.Nil(err)
  51. // if !t.Failed() {
  52. // t.Equal("Amilcare", data.(ActivityForUpdate).Activity.Teacher.Name)
  53. // t.Equal("1 A", data.(ActivityForUpdate).AllClasses[0].Name)
  54. // t.Equal("ITALIANO", data.(ActivityForUpdate).AllSubjects[1].Name)
  55. // t.Equal("Costanza", data.(ActivityForUpdate).AllTeachers[2].Name)
  56. // }
  57. // }
  58. // func (t *testSuite) TestSaveActivity() {
  59. // activity, err := GetActivity(map[string]string{"id": "1"})
  60. // t.Nil(err)
  61. // t.Equal(uint(1), activity.(*Activity).SubjectID)
  62. // activity.(*Activity).SubjectID = 2
  63. // _, err = SaveActivity(activity)
  64. // t.Nil(err)
  65. // if !t.Failed() {
  66. // activity, _ = GetActivity(map[string]string{"id": "1"})
  67. // t.Equal(uint(2), activity.(*Activity).SubjectID)
  68. // }
  69. // }
  70. // func (t *testSuite) TestDeleteActivity() {
  71. // var activities []*Activity
  72. // err := DB().Find(&activities).Error
  73. // t.Nil(err)
  74. // numActivities := len(activities)
  75. // activity, err := CreateActivity(
  76. // &Activity{
  77. // SubjectID: 1,
  78. // TeacherID: 1,
  79. // ClassID: 1,
  80. // })
  81. // t.Nil(err)
  82. // err = DB().Find(&activities).Error
  83. // t.Nil(err)
  84. // t.Equal(numActivities+1, len(activities))
  85. // act, err := DeleteActivity(map[string]string{"id": strconv.Itoa(int(activity.ID))}, nil)
  86. // t.Nil(err)
  87. // t.Equal(14, act.GetID())
  88. // err = DB().Find(&activities).Error
  89. // t.Nil(err)
  90. // t.Equal(numActivities, len(activities))
  91. // }
  92. // func (t *testSuite) TestGetTeacher() {
  93. // teacher, err := new(Teacher).Read(map[string]string{"id": "1"})
  94. // t.Nil(err)
  95. // if !t.Failed() {
  96. // t.Equal("Amilcare", teacher.(*Teacher).Name)
  97. // t.Equal("AGOSTINO", teacher.(*Teacher).Surname)
  98. // }
  99. // }
  100. // func (t *testSuite) TestGetTeacherAll() {
  101. // teacher, err := GetTeacherAll(map[string]string{"id": "1"})
  102. // t.Nil(err)
  103. // if !t.Failed() {
  104. // t.Equal("Amilcare", teacher.(*Teacher).Name)
  105. // t.Equal("AGOSTINO", teacher.(*Teacher).Surname)
  106. // t.Equal("1 A", teacher.(*Teacher).Activities[0].Class.Name)
  107. // t.Equal("1 B", teacher.(*Teacher).Activities[1].Class.Name)
  108. // t.Equal(4, teacher.(*Teacher).ActualHours)
  109. // }
  110. // teacher, err = GetTeacherAll(map[string]string{"id": "3"})
  111. // t.Nil(err)
  112. // if !t.Failed() {
  113. // t.Equal("Costanza", teacher.(*Teacher).Name)
  114. // t.Equal("LUNGA", teacher.(*Teacher).Surname)
  115. // t.Equal(true, teacher.(*Teacher).IsCoordinator)
  116. // }
  117. // }
  118. // func (t *testSuite) TestGetStudentAll() {
  119. // student, err := GetStudentAll(map[string]string{"id": "1"})
  120. // t.Nil(err)
  121. // if !t.Failed() {
  122. // t.Equal("Mario", student.(*Student).Name)
  123. // t.Equal("ROSSI", student.(*Student).Surname)
  124. // t.Equal("1 A", student.(*Student).Class.Name)
  125. // t.Equal("LUNGA", student.(*Student).Class.Coordinator.Surname)
  126. // }
  127. // }
  128. // func (t *testSuite) TestGetTeachers() {
  129. // teachers, err := new(Teacher).ReadAll(map[string]string{})
  130. // t.Nil(err)
  131. // t.Equal(11, len(teachers.([]*Teacher)))
  132. // teacher := teachers.([]*Teacher)[0]
  133. // classes, err := teacher.GetClasses()
  134. // t.Nil(err)
  135. // t.Equal(2, len(classes))
  136. // t.Equal(2, len(teacher.Classes))
  137. // class := classes[0]
  138. // t.Equal("1 A", class.Name)
  139. // }
  140. // func (t *testSuite) TestGetTeachersAll() {
  141. // teachers, err := GetTeachersAll(map[string]string{})
  142. // t.Nil(err)
  143. // t.Equal(11, len(teachers.([]*Teacher)))
  144. // t.Equal("1 A", teachers.([]*Teacher)[0].Classes[0].Name)
  145. // t.Equal("SCIENZE", teachers.([]*Teacher)[0].Subjects[0].Name)
  146. // t.Equal(1, len(teachers.([]*Teacher)[0].SubjectsByClass[1]))
  147. // }
  148. // func (t *testSuite) TestGetTeachersFast() {
  149. // teachers, err := GetTeachersFast(map[string]string{})
  150. // t.Nil(err)
  151. // t.Equal(11, len(teachers.([]*Teacher)))
  152. // }
  153. // func (t *testSuite) TestGetTeacherActByClass() {
  154. // teacher, err := GetTeacher(map[string]string{"id": "1"})
  155. // t.Nil(err)
  156. // if !t.Failed() {
  157. // _, err := teacher.(*Teacher).GetActivitiesByClass("1")
  158. // t.Nil(err)
  159. // if !t.Failed() {
  160. // t.True(len(teacher.(*Teacher).Activities) > 0)
  161. // }
  162. // }
  163. // }
  164. // func (t *testSuite) TestGetTeacherSubjByClass() {
  165. // teacher, err := GetTeacherAll(map[string]string{"id": "1"})
  166. // t.Nil(err)
  167. // t.Equal(2, len(teacher.(*Teacher).Subjects))
  168. // if !t.Failed() {
  169. // subjects, err := teacher.(*Teacher).GetSubjectsByClassID("1")
  170. // t.Nil(err)
  171. // if !t.Failed() {
  172. // t.Equal(1, len(subjects))
  173. // }
  174. // }
  175. // }
  176. // func (t *testSuite) TestSaveTeacher() {
  177. // teacher, err := GetTeacher(map[string]string{"id": "1"})
  178. // t.Nil(err)
  179. // teacher.(*Teacher).Name = "Roberto"
  180. // _, err = SaveTeacher(teacher)
  181. // t.Nil(err)
  182. // if !t.Failed() {
  183. // teacher, _ = GetTeacher(map[string]string{"id": "1"})
  184. // t.Equal("Roberto", teacher.(*Teacher).Name)
  185. // }
  186. // }
  187. // func (t *testSuite) TestCreateDeleteTeacher() {
  188. // teacher, err := CreateTeacher(&Teacher{Credential: Credential{Name: "Giovanni", Surname: "GIACOBBE"}})
  189. // t.Nil(err)
  190. // if !t.Failed() {
  191. // _, err = DeleteTeacher(map[string]string{"id": strconv.Itoa(int(teacher.ID))}, nil)
  192. // t.Nil(err)
  193. // teachers, _ := GetTeachers(map[string]string{})
  194. // t.Equal(11, len(teachers.([]*Teacher)))
  195. // }
  196. // teacher, err = CreateTeacher(&Teacher{Credential: Credential{Name: "Amilcare", Surname: "AGOSTINO"}})
  197. // t.Not(t.Nil(err))
  198. // }
  199. // func (t *testSuite) TestGetDepartments() {
  200. // departments, err := GetDepartments(map[string]string{})
  201. // t.Nil(err)
  202. // t.Equal(2, len(departments.([]*Department)))
  203. // if !t.Failed() {
  204. // department := departments.([]*Department)[0]
  205. // subjects, err := department.GetSubjects()
  206. // t.Nil(err)
  207. // t.Equal(1, len(subjects))
  208. // t.Equal(1, len(department.Subjects))
  209. // subject := subjects[0]
  210. // t.Equal("FRANCESE", subject.Name)
  211. // }
  212. // }
  213. // func (t *testSuite) TestGetDepartment() {
  214. // department, err := GetDepartment(map[string]string{"id": "1"})
  215. // t.Nil(err)
  216. // if !t.Failed() {
  217. // t.Equal("LINGUE STRANIERE", department.(*Department).Name)
  218. // }
  219. // }
  220. // func (t *testSuite) TestGetDepartmentAll() {
  221. // department, err := GetDepartmentAll(map[string]string{"id": "1"})
  222. // t.Nil(err)
  223. // if !t.Failed() {
  224. // t.Equal("FRANCESE", department.(*Department).Subjects[0].Name)
  225. // t.Equal("DELLE ROSE", department.(*Department).Teachers[0].Surname)
  226. // }
  227. // }
  228. // func (t *testSuite) TestGetSubjectForAdd() {
  229. // data, err := GetSubjectForAdd(nil)
  230. // t.Nil(err)
  231. // if !t.Failed() {
  232. // t.Equal("LINGUE STRANIERE", data.(SubjectForAdd).AllDepartments[0].Name)
  233. // }
  234. // }
  235. // func (t *testSuite) TestSaveStudent() {
  236. // student, err := GetStudentAll(map[string]string{"id": "1"})
  237. // t.Nil(err)
  238. // t.Equal(uint(1), student.(*Student).ClassID)
  239. // student.(*Student).ClassID = 2
  240. // student.(*Student).Handicap = true
  241. // _, err = SaveStudent(student)
  242. // t.Nil(err)
  243. // if !t.Failed() {
  244. // student, _ = GetStudent(map[string]string{"id": "1"})
  245. // t.Equal(uint(2), student.(*Student).ClassID)
  246. // t.Equal(true, student.(*Student).Handicap)
  247. // }
  248. // }
  249. // // Groups
  250. // func (t *testSuite) TestGetGroups() {
  251. // groups, err := GetGroups(map[string]string{})
  252. // t.Nil(err)
  253. // t.Equal(1, len(groups.([]*Group)))
  254. // }
  255. // func (t *testSuite) TestGetGroup() {
  256. // group, err := GetGroup(map[string]string{"id": "1"})
  257. // t.Nil(err)
  258. // if !t.Failed() {
  259. // t.Equal("Gruppo", group.(*Group).Name)
  260. // }
  261. // }
  262. // func (t *testSuite) TestTeacherQuery() {
  263. // group := new(Group)
  264. // // Select all
  265. // group.Query = "surname:*"
  266. // teachers, err := group.executeTeacherQuery()
  267. // t.Nil(err)
  268. // if !t.Failed() {
  269. // t.Equal(11, len(teachers))
  270. // }
  271. // // Select teacher with surname beginning with the letter A
  272. // group.Query = "surname:A*"
  273. // teachers, err = group.executeTeacherQuery()
  274. // t.Nil(err)
  275. // if !t.Failed() {
  276. // t.Equal(2, len(teachers))
  277. // }
  278. // // Select teacher with surname beginning with the letter A
  279. // group.Query = "coordinator:true"
  280. // teachers, err = group.executeTeacherQuery()
  281. // t.Nil(err)
  282. // if !t.Failed() {
  283. // t.Equal(1, len(teachers))
  284. // }
  285. // }