github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/core/rawdata/sql_test.go (about) 1 package rawdata 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 8 "github.com/benoitkugler/goACVE/logs" 9 ) 10 11 func TestConnect(t *testing.T) { 12 s, err := ConnectDB(logs.DBDev) 13 if err != nil { 14 t.Fatal(err) 15 } 16 defer s.Close() 17 if err = s.Ping(); err != nil { 18 t.Fatal(err) 19 } 20 } 21 22 func TestSQL(t *testing.T) { 23 db := MustConnectDBDev() 24 defer db.Close() 25 tx, err := db.Begin() 26 if err != nil { 27 t.Fatal(err) 28 } 29 defer tx.Rollback() 30 31 d1 := randPersonne() 32 d1, err = queriesPersonne(tx, d1) 33 if err != nil { 34 t.Fatal(err) 35 } 36 37 d2 := randCamp() 38 d2.InscriptionSimple = false // pour pouvoir ajouter un groupe 39 d2, err = queriesCamp(tx, d2) 40 if err != nil { 41 t.Fatal(err) 42 } 43 44 d2ter := randCamp() 45 d2ter.InscriptionSimple = true // pour pouvoir ajouter un participant simple 46 d2ter, err = queriesCamp(tx, d2ter) 47 if err != nil { 48 t.Fatal(err) 49 } 50 51 d2bis := randGroupe() 52 d2bis.IdCamp = d2.Id 53 d2bis, err = queriesGroupe(tx, d2bis) 54 if err != nil { 55 t.Fatal(err) 56 } 57 58 d3 := randParticipant() 59 d3.IdPersonne = d1.Id 60 d3.IdCamp = d2.Id 61 d3.IdFacture = NullId() 62 d3, err = queriesParticipant(tx, d3) 63 if err != nil { 64 t.Fatal(err) 65 } 66 67 d3ter := randGroupeParticipant() 68 d3ter.IdCamp = d2.Id 69 d3ter.IdParticipant = d3.Id 70 d3ter.IdGroupe = d2bis.Id 71 d3ter, err = queriesGroupeParticipant(tx, d3ter) 72 if err != nil { 73 t.Fatal(err) 74 } 75 76 d3bis := randParticipantsimple() 77 d3bis.IdPersonne = d1.Id 78 d3bis.IdCamp = d2ter.Id 79 d3bis, err = queriesParticipantsimple(tx, d3bis) 80 if err != nil { 81 t.Fatal(err) 82 } 83 84 d4 := randStructureaide() 85 d4, err = queriesStructureaide(tx, d4) 86 if err != nil { 87 t.Fatal(err) 88 } 89 90 d5 := randAide() 91 d5.IdParticipant = d3.Id 92 d5.IdStructureaide = d4.Id 93 d5, err = queriesAide(tx, d5) 94 if err != nil { 95 t.Fatal(err) 96 } 97 98 d6 := randFacture() 99 d6.IdPersonne = d1.Id 100 d6, err = queriesFacture(tx, d6) 101 if err != nil { 102 t.Fatal(err) 103 } 104 105 d7 := randPaiement() 106 d7.IdFacture = d6.Id 107 d7, err = queriesPaiement(tx, d7) 108 if err != nil { 109 t.Fatal(err) 110 } 111 112 d8 := randEquipier() 113 d8.IdPersonne = d1.Id 114 d8.IdCamp = d2.Id 115 d8, err = queriesEquipier(tx, d8) 116 if err != nil { 117 t.Fatal(err) 118 } 119 120 d3_1 := randGroupeEquipier() 121 d3_1.IdCamp = d2.Id 122 d3_1.IdGroupe = d2bis.Id 123 d3_1.IdEquipier = d8.Id 124 d3_1, err = queriesGroupeEquipier(tx, d3_1) 125 if err != nil { 126 t.Fatal(err) 127 } 128 129 d3_2 := randParticipantEquipier() 130 d3_2.IdGroupe = d2bis.Id 131 d3_2.IdEquipier = d8.Id 132 d3_2.IdParticipant = d3.Id 133 d3_2, err = queriesParticipantEquipier(tx, d3_2) 134 if err != nil { 135 t.Fatal(err) 136 } 137 138 d9 := randDon() 139 d9, err = queriesDon(tx, d9) 140 if err != nil { 141 t.Fatal(err) 142 } 143 144 d9o := randOrganisme() 145 d9o.ContactPropre = true 146 d9o.IdContact = NullId() 147 d9o.IdContactDon = NewOptionnalId(d1.Id) 148 d9o, err = queriesOrganisme(tx, d9o) 149 if err != nil { 150 t.Fatal(err) 151 } 152 153 d9bis := randDonDonateur() 154 d9bis.IdDon = d9.Id 155 d9bis.IdPersonne = NewOptionnalId(d1.Id) 156 d9bis.IdOrganisme = NullId() 157 _, err = queriesDonDonateur(tx, d9bis) 158 if err != nil { 159 t.Fatal(err) 160 } 161 162 err = d9bis.Delete(tx) 163 if err != nil { 164 t.Fatal(err) 165 } 166 167 d9bis.IdOrganisme = NewOptionnalId(d9o.Id) 168 d9bis.IdPersonne = NullId() 169 _, err = queriesDonDonateur(tx, d9bis) 170 if err != nil { 171 t.Fatal(err) 172 } 173 174 d10 := randGroupe() 175 d10.IdCamp = d2.Id 176 d10, err = queriesGroupe(tx, d10) 177 if err != nil { 178 t.Fatal(err) 179 } 180 181 d11 := randMessage() 182 d11.IdFacture = d6.Id 183 d11, err = queriesMessage(tx, d11) 184 if err != nil { 185 t.Fatal(err) 186 } 187 188 d12 := randDocument() 189 d12, err = queriesDocument(tx, d12) 190 if err != nil { 191 t.Fatal(err) 192 } 193 194 d12bis := randContrainte() 195 d12bis.IdPersonne = NullId() 196 d12bis.IdDocument = NullId() 197 d12bis, err = queriesContrainte(tx, d12bis) 198 if err != nil { 199 t.Fatal(err) 200 } 201 202 d13 := randDocumentPersonne() 203 d13.IdDocument = d12.Id 204 d13.IdPersonne = d1.Id 205 d13.IdContrainte = d12bis.Id 206 d13, err = queriesDocumentPersonne(tx, d13) 207 if err != nil { 208 t.Fatal(err) 209 } 210 211 d14 := randContenuDocument() 212 d14.IdDocument = d12.Id 213 d14, err = queriesContenuDocument(tx, d14) 214 if err != nil { 215 t.Fatal(err) 216 } 217 218 d15 := randEquipierContrainte() 219 d15.IdEquipier = d8.Id 220 d15.IdContrainte = d12bis.Id 221 d15, err = queriesEquipierContrainte(tx, d15) 222 if err != nil { 223 t.Fatal(err) 224 } 225 226 d16 := randCampContrainte() 227 d16.IdCamp = d2bis.Id 228 d16.IdContrainte = d12bis.Id 229 d16, err = queriesCampContrainte(tx, d16) 230 if err != nil { 231 t.Fatal(err) 232 } 233 234 d16bis := randGroupeContrainte() 235 d16bis.IdGroupe = d2bis.Id 236 d16bis.IdContrainte = d12bis.Id 237 d16bis, err = queriesGroupeContrainte(tx, d16bis) 238 if err != nil { 239 t.Fatal(err) 240 } 241 242 d17 := randDocumentAide() 243 d17.IdDocument = d12.Id 244 d17.IdAide = d5.Id 245 d17, err = queriesDocumentAide(tx, d17) 246 if err != nil { 247 t.Fatal(err) 248 } 249 250 d18 := randDocumentCamp() 251 d18.IdDocument = d12.Id 252 d18.IdCamp = d2.Id 253 d18, err = queriesDocumentCamp(tx, d18) 254 if err != nil { 255 t.Fatal(err) 256 } 257 258 d19 := randUser() 259 d19, err = queriesUser(tx, d19) 260 if err != nil { 261 t.Fatal(err) 262 } 263 264 d20 := randSondage() 265 d20.IdCamp = d2.Id 266 d20.IdFacture = d6.Id 267 d20, err = queriesSondage(tx, d20) 268 if err != nil { 269 t.Fatal(err) 270 } 271 272 d21 := randLettredirecteur() 273 d21.IdCamp = d2.Id 274 d21, err = queriesLettredirecteur(tx, d21) 275 if err != nil { 276 t.Fatal(err) 277 } 278 279 d22 := randInscription() 280 d22, err = queriesInscription(tx, d22) 281 if err != nil { 282 t.Fatal(err) 283 } 284 285 if _, err = DeleteInscriptionById(tx, d22.Id); err != nil { 286 t.Fatal(err) 287 } 288 if err = d21.Delete(tx); err != nil { 289 t.Fatal(err) 290 } 291 if _, err = DeleteSondageById(tx, d20.Id); err != nil { 292 t.Fatal(err) 293 } 294 if _, err = DeleteUserById(tx, d19.Id); err != nil { 295 t.Fatal(err) 296 } 297 if err = d18.Delete(tx); err != nil { 298 t.Fatal(err) 299 } 300 if err = d17.Delete(tx); err != nil { 301 t.Fatal(err) 302 } 303 if err = d16bis.Delete(tx); err != nil { 304 t.Fatal(err) 305 } 306 if err = d16.Delete(tx); err != nil { 307 t.Fatal(err) 308 } 309 if err = d15.Delete(tx); err != nil { 310 t.Fatal(err) 311 } 312 if err = d14.Delete(tx); err != nil { 313 t.Fatal(err) 314 } 315 if err = d13.Delete(tx); err != nil { 316 t.Fatal(err) 317 } 318 if _, err = DeleteContrainteById(tx, d12bis.Id); err != nil { 319 t.Fatal(err) 320 } 321 if _, err = DeleteDocumentById(tx, d12.Id); err != nil { 322 t.Fatal(err) 323 } 324 if _, err = DeleteMessageById(tx, d11.Id); err != nil { 325 t.Fatal(err) 326 } 327 if _, err = DeleteGroupeById(tx, d10.Id); err != nil { 328 t.Fatal(err) 329 } 330 331 if err = d9bis.Delete(tx); err != nil { 332 t.Fatal(err) 333 } 334 if _, err = DeleteDonById(tx, d9.Id); err != nil { 335 t.Fatal(err) 336 } 337 if _, err = DeleteOrganismeById(tx, d9o.Id); err != nil { 338 t.Fatal(err) 339 } 340 341 if _, err = DeleteEquipierById(tx, d8.Id); err != nil { 342 t.Fatal(err) 343 } 344 if _, err = DeletePaiementById(tx, d7.Id); err != nil { 345 t.Fatal(err) 346 } 347 if _, err = DeleteFactureById(tx, d6.Id); err != nil { 348 t.Fatal(err) 349 } 350 if _, err = DeleteAideById(tx, d5.Id); err != nil { 351 t.Fatal(err) 352 } 353 if _, err = DeleteStructureaideById(tx, d4.Id); err != nil { 354 t.Fatal(err) 355 } 356 if err = d3ter.Delete(tx); err != nil { 357 t.Fatal(err) 358 } 359 if _, err = DeleteParticipantsimpleById(tx, d3bis.Id); err != nil { 360 t.Fatal(err) 361 } 362 if _, err = DeleteParticipantById(tx, d3.Id); err != nil { 363 t.Fatal(err) 364 } 365 if _, err = DeleteCampById(tx, d2ter.Id); err != nil { 366 t.Fatal(err) 367 } 368 if _, err = DeleteGroupeById(tx, d2bis.Id); err != nil { 369 t.Fatal(err) 370 } 371 if _, err = DeleteCampById(tx, d2.Id); err != nil { 372 t.Fatal(err) 373 } 374 if _, err = DeletePersonneById(tx, d1.Id); err != nil { 375 t.Fatal(err) 376 } 377 } 378 379 func TestScanRoles(t *testing.T) { 380 db := MustConnectDBDev() 381 defer db.Close() 382 tx, err := db.Begin() 383 if err != nil { 384 t.Fatal(err) 385 } 386 defer tx.Rollback() 387 388 d1 := randPersonne() 389 d1, err = queriesPersonne(tx, d1) 390 if err != nil { 391 t.Fatal(err) 392 } 393 394 d2 := randCamp() 395 d2.InscriptionSimple = false // pour pouvoir ajouter un équipier 396 d2, err = queriesCamp(tx, d2) 397 if err != nil { 398 t.Fatal(err) 399 } 400 401 d8 := randEquipier() 402 d8.IdPersonne = d1.Id 403 d8.IdCamp = d2.Id 404 d8, err = queriesEquipier(tx, d8) 405 if err != nil { 406 t.Fatal(err) 407 } 408 409 d8.Roles = Roles{RAnimation, RFactotum, RAutre} 410 d8, err = d8.Update(tx) 411 if err != nil { 412 t.Fatal(err) 413 } 414 fmt.Println(d8.Roles) 415 } 416 417 func TestTimeSql(t *testing.T) { 418 db := MustConnectDBDev() 419 defer db.Close() 420 var doc Document 421 doc, err := doc.Insert(db) 422 if err != nil { 423 t.Fatal(err) 424 } 425 if !time.Time(doc.DateHeureModif).IsZero() { 426 t.Error() 427 } 428 _, _ = DeleteDocumentById(db, doc.Id) 429 }