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  }