github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/client/controllers/requests_test.go (about)

     1  package controllers
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"io"
     7  	"mime/multipart"
     8  	"net/http"
     9  	"os"
    10  	"path/filepath"
    11  	"testing"
    12  	"time"
    13  
    14  	"github.com/benoitkugler/goACVE/server/core/apiserver"
    15  	dm "github.com/benoitkugler/goACVE/server/core/datamodel"
    16  	rd "github.com/benoitkugler/goACVE/server/core/rawdata"
    17  )
    18  
    19  func TestUrl(t *testing.T) {
    20  	Server = newServerTest()
    21  	endpoint := "/strcutureaides"
    22  	fmt.Println(Server.ApiURL(""))
    23  	fmt.Println(Server.ApiURL(endpoint))
    24  }
    25  
    26  func TestStream(t *testing.T) {
    27  	base := dm.GetBase(true)
    28  	ids := base.Factures.Ids()[0:5]
    29  
    30  	Server = newServerTest()
    31  	endpoint, method := apiserver.UrlNotifieMessagePersos, http.MethodPost
    32  	params := apiserver.NotifieManyIn{
    33  		Contenu:     " Un beau  message",
    34  		IdsFactures: ids,
    35  	}
    36  	ti := time.Now()
    37  	w := envoiMessagesHandler{
    38  		streamHandler: streamHandler{
    39  			base:        base,
    40  			idsDossiers: ids,
    41  			onError: func(n int, s string) {
    42  				fmt.Println("error :", n, s)
    43  			},
    44  		},
    45  		onSuccess: func(n int, f apiserver.NotifieManyOut) {
    46  			fmt.Println("succes :", n, f.Message.Id, time.Since(ti))
    47  		},
    48  	}
    49  	fmt.Println("starting")
    50  	if err := requestMonitor(endpoint, method, params, &w); err != nil {
    51  		t.Fatal(err)
    52  	}
    53  }
    54  
    55  func TestDocuments(t *testing.T) {
    56  
    57  	base := dm.GetBase(true)
    58  
    59  	Server = newServerTest()
    60  	main := MainController{Base: base}
    61  	main.InitControllers(rd.Modules{})
    62  	main.ShowError = func(err error) { fmt.Println("Error !", err) }
    63  	main.ShowStandard = func(msg string, wait bool) { fmt.Println(msg, wait) }
    64  
    65  	docs := main.Base.GetAllDocuments(false)
    66  
    67  	doc := main.Base.Documents[docs[0].Id.Int64()]
    68  	doc.Description = "dlmfkldkfl"
    69  	out := main.UpdateDocument(doc)
    70  	fmt.Println(out)
    71  
    72  	up := main.UploadDocument("/home/benoit/Documents/CALENDRIER_ESTELLE.pdf", doc.Id, func(u uint8) {})
    73  	if up == nil {
    74  		t.Fatal()
    75  	}
    76  	fmt.Println(*up)
    77  
    78  	path := main.DownloadDocument(up.Id, func(u uint8) {
    79  		fmt.Println(u)
    80  	})
    81  	if path == "" {
    82  		t.Fatal()
    83  	}
    84  	u, err := os.Stat(path)
    85  	if err != nil {
    86  		t.Fatal(err)
    87  	}
    88  	fmt.Println(u.Size()/1000, "KB")
    89  
    90  	//main.SupprimeDocument(doc.Id)
    91  	//
    92  	//out = main.CreeUploadDocument("/home/benoit/Documents/diapo_planeto.pdf", rd.RawDocument{
    93  	//	NomClient:   "dp.pdf",
    94  	//	Categorie:   "bafa",
    95  	//	Description: "Ceci n'est pas un exercice !",
    96  	//})
    97  	//if out == nil {
    98  	//	t.Fatal()
    99  	//}
   100  	//fmt.Println(*out)
   101  }
   102  
   103  func TestUpload(t *testing.T) {
   104  	url := "http://localhost:1323/test"
   105  	filep := "test.tar"
   106  
   107  	file, err := os.Open(filep)
   108  	if err != nil {
   109  		t.Fatal(err)
   110  	}
   111  	defer file.Close()
   112  
   113  	body := &bytes.Buffer{}
   114  	writer := multipart.NewWriter(body)
   115  	part, err := writer.CreateFormFile("file", filepath.Base(filep))
   116  	if err != nil {
   117  		t.Fatal(err)
   118  	}
   119  	if _, err = io.Copy(part, file); err != nil {
   120  		t.Fatal(err)
   121  	}
   122  	if err = writer.WriteField("id", "78"); err != nil {
   123  		t.Fatal(err)
   124  	}
   125  	if err = writer.Close(); err != nil {
   126  		t.Fatal(err)
   127  	}
   128  
   129  	max := len(body.Bytes())
   130  	counter := &writeCounter{max: uint64(max), callback: func(u uint8) {
   131  		fmt.Println(u)
   132  	}}
   133  	customReader := io.TeeReader(body, counter)
   134  	req, err := http.NewRequest("POST", url, customReader)
   135  	if err != nil {
   136  		t.Fatal(err)
   137  	}
   138  	req.Header.Set("Content-Type", writer.FormDataContentType())
   139  
   140  	client := &http.Client{}
   141  	resp, err := client.Do(req)
   142  	if err != nil {
   143  		t.Fatal(err)
   144  	}
   145  
   146  	body = &bytes.Buffer{}
   147  
   148  	if _, err = body.ReadFrom(resp.Body); err != nil {
   149  		t.Fatal(err)
   150  	}
   151  	defer resp.Body.Close()
   152  	fmt.Println(resp.StatusCode)
   153  	fmt.Println(resp.Header)
   154  	fmt.Println(body)
   155  
   156  }
   157  
   158  func TestPlage(t *testing.T) {
   159  	c := time.Now()
   160  	fmt.Println(c.Before(c))
   161  }
   162  
   163  func TestMultipart(t *testing.T) {
   164  	Server = newServerTest()
   165  	out, err := requeteResponseMultipart("dons/recu", http.MethodPost, nil)
   166  	if err != nil {
   167  		t.Fatal(err)
   168  	}
   169  	fmt.Println(out)
   170  }