From 7b57bb9c2cbf7043e78c58380356835c533d4fb2 Mon Sep 17 00:00:00 2001 From: Ivanov-Dmitry-programmist Date: Sat, 15 Mar 2025 13:09:29 +0300 Subject: [PATCH 1/2] Create precode_test.go --- precode_test.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 precode_test.go diff --git a/precode_test.go b/precode_test.go new file mode 100644 index 00000000..a7fde1d3 --- /dev/null +++ b/precode_test.go @@ -0,0 +1,48 @@ +package tests + +import ( + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "net/http" + "net/http/httptest" + "strings" + "testing" +) +// Проверка статуса ответа и тела ответа +func TestMainHandler_StatusOkAndBodyNotEmpty(t *testing.T) { + req := httptest.NewRequest("GET", "/cafe?count=2&city=moscow", nil) + + responseRecorder := httptest.NewRecorder() + handler := http.HandlerFunc(mainHandle) + handler.ServeHTTP(responseRecorder, req) + + assert.Equal(t, http.StatusOK, responseRecorder.Code) + assert.NotEmpty(t, responseRecorder.Body.String()) +} +// Проверка неподдерживаемого города +func TestMainHandlerWrongCity(t *testing.T) { + req := httptest.NewRequest("GET", "/cafe?count=2&city=spb", nil) + + responseRecorder := httptest.NewRecorder() + handler := http.HandlerFunc(mainHandle) + handler.ServeHTTP(responseRecorder, req) + + require.Equal(t, http.StatusBadRequest, responseRecorder.Code) + assert.Contains(t, responseRecorder.Body.String(), "wrong city value") +} +// Проверка количества кафе +func TestMainHandler_WhenCountMoreThanTotal(t *testing.T) { + totalCount := 4 + req := httptest.NewRequest("GET", "/cafe?count=100&city=moscow", nil) + + responseRecorder := httptest.NewRecorder() + handler := http.HandlerFunc(mainHandle) + handler.ServeHTTP(responseRecorder, req) + + checkCafeString := "Мир кофе,Сладкоежка,Кофе и завтраки,Сытый студент" + + list := strings.Split(responseRecorder.Body.String(), ",") + + assert.GreaterOrEqual(t, totalCount, (len(list))) + assert.Equal(t, responseRecorder.Body.String(), checkCafeString) +} From f5ef9dd3c0fcb8be578de5902385edaf22e8b454 Mon Sep 17 00:00:00 2001 From: Ivanov-Dmitry-programmist Date: Sat, 15 Mar 2025 13:10:35 +0300 Subject: [PATCH 2/2] Update precode.go --- precode.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/precode.go b/precode.go index 5139755e..5075fb5f 100644 --- a/precode.go +++ b/precode.go @@ -46,13 +46,10 @@ func mainHandle(w http.ResponseWriter, req *http.Request) { w.Write([]byte(answer)) } -func TestMainHandlerWhenCountMoreThanTotal(t *testing.T) { - totalCount := 4 - req := ... // здесь нужно создать запрос к сервису - - responseRecorder := httptest.NewRecorder() - handler := http.HandlerFunc(mainHandle) - handler.ServeHTTP(responseRecorder, req) - - // здесь нужно добавить необходимые проверки +func main() { + http.HandleFunc("/cafe", mainHandle) + err := http.ListenAndServe(":8080", nil) + if err != nil { + panic(err) + } }