feat: add BVK exchange library
This commit is contained in:
66
handler_test.go
Normal file
66
handler_test.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package mila
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestHandlerSetAndGetContent(t *testing.T) {
|
||||
handler := NewHandler(DefaultConfig(), NewMemoryStore())
|
||||
|
||||
params := url.Values{}
|
||||
params.Set("route", "3")
|
||||
params.Set("str", "Гостиный двор - Gostiny dvor")
|
||||
params.Set("tpl_name", "Гостиный двор")
|
||||
|
||||
req := httptest.NewRequest(http.MethodGet, "/set-content?"+params.Encode(), nil)
|
||||
rec := httptest.NewRecorder()
|
||||
handler.ServeHTTP(rec, req)
|
||||
|
||||
if rec.Code != http.StatusOK {
|
||||
t.Fatalf("set-content status=%d body=%s", rec.Code, rec.Body.String())
|
||||
}
|
||||
|
||||
req = httptest.NewRequest(http.MethodGet, "/get-content", nil)
|
||||
rec = httptest.NewRecorder()
|
||||
handler.ServeHTTP(rec, req)
|
||||
|
||||
if rec.Code != http.StatusOK {
|
||||
t.Fatalf("get-content status=%d body=%s", rec.Code, rec.Body.String())
|
||||
}
|
||||
|
||||
var state ContentState
|
||||
if err := json.NewDecoder(rec.Body).Decode(&state); err != nil {
|
||||
t.Fatalf("decode response: %v", err)
|
||||
}
|
||||
if state.Route != "3" || state.Text != "Гостиный двор - Gostiny dvor" || state.Template != "Гостиный двор" {
|
||||
t.Fatalf("unexpected state: %+v", state)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHandlerGetBeforeSetReturns503(t *testing.T) {
|
||||
handler := NewHandler(DefaultConfig(), NewMemoryStore())
|
||||
|
||||
req := httptest.NewRequest(http.MethodGet, "/get-content", nil)
|
||||
rec := httptest.NewRecorder()
|
||||
handler.ServeHTTP(rec, req)
|
||||
|
||||
if rec.Code != http.StatusServiceUnavailable {
|
||||
t.Fatalf("status=%d body=%s", rec.Code, rec.Body.String())
|
||||
}
|
||||
}
|
||||
|
||||
func TestHandlerRejectsInvalidSetContent(t *testing.T) {
|
||||
handler := NewHandler(DefaultConfig(), NewMemoryStore())
|
||||
|
||||
req := httptest.NewRequest(http.MethodGet, "/set-content?route=1234&str=ok&tpl_name=tpl", nil)
|
||||
rec := httptest.NewRecorder()
|
||||
handler.ServeHTTP(rec, req)
|
||||
|
||||
if rec.Code != http.StatusBadRequest {
|
||||
t.Fatalf("status=%d body=%s", rec.Code, rec.Body.String())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user