github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/server/documents/checks_test.go (about) 1 package documents 2 3 import ( 4 "testing" 5 6 "github.com/benoitkugler/goACVE/logs" 7 "github.com/benoitkugler/goACVE/server/core/rawdata" 8 "github.com/benoitkugler/goACVE/server/shared" 9 ) 10 11 func TestCheckDoublons(t *testing.T) { 12 db, err := rawdata.ConnectDB(logs.DBDev) 13 if err != nil { 14 t.Fatal(err) 15 } 16 17 ct := Controller{Controller: shared.Controller{DB: db}} 18 // setup 19 liens, err := rawdata.SelectAllDocumentPersonnes(ct.DB) 20 if err != nil { 21 t.Fatal(err) 22 } 23 lien := liens[0] 24 fileContent := []byte(rawdata.RandString(20, true)) // assez petit pour éviter la compression 25 26 tx, err := ct.DB.Begin() 27 if err != nil { 28 t.Fatal(err) 29 } 30 doc, err := insertDocument(tx, lien.IdPersonne, lien.IdContrainte, "Test : doc ref") 31 if err != nil { 32 t.Fatal(err) 33 } 34 contenu := rawdata.ContenuDocument{Contenu: fileContent, IdDocument: doc.Id} 35 err = rawdata.InsertManyContenuDocuments(tx, contenu) 36 if err != nil { 37 t.Fatal(err) 38 } 39 // prépare un nouvel upload 40 doc2, err := insertDocument(tx, lien.IdPersonne, lien.IdContrainte, "Test : doc 2") 41 if err != nil { 42 t.Fatal(err) 43 } 44 err = tx.Commit() 45 if err != nil { 46 t.Fatal(err) 47 } 48 49 // test 50 errToTest := checkDoublons(ct.DB, fileContent, doc2.Id) 51 if errToTest == nil { 52 t.Fatal("expected non nil error") 53 } 54 errToTest = checkDoublons(ct.DB, fileContent[:10], doc2.Id) 55 if errToTest != nil { 56 t.Fatal("expected nil error") 57 } 58 errToTest = checkDoublons(ct.DB, fileContent, doc.Id) 59 if errToTest != nil { 60 t.Fatal("expected nil error") 61 } 62 63 _, _ = rawdata.DeleteDocumentsByIds(ct.DB, doc.Id, doc2.Id) 64 }