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 }