50 lines
1.4 KiB
Go
50 lines
1.4 KiB
Go
package smsc
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"math/rand"
|
|
"testing"
|
|
)
|
|
|
|
func generateCode() string {
|
|
return fmt.Sprintf("%04d", rand.Intn(10000))
|
|
}
|
|
|
|
func TestSendSMS(t *testing.T) {
|
|
// Создаем тестовый запрос
|
|
req := RequestSMS{
|
|
ApiKey: "80g8w5-t4D5n2X5v2!8s1S3p5E2n2X68e", // Замените на реальный API-ключ для теста
|
|
Phone: "79397804368", // Замените на реальный номер телефона
|
|
Message: "Код подтверждения: " + generateCode(),
|
|
}
|
|
|
|
// Вызываем тестируемую функцию
|
|
resp := SendSMS(req)
|
|
|
|
// Проверяем, что нет ошибки
|
|
if resp.Error != "" {
|
|
t.Errorf("Ошибка при отправке SMS: %s", resp.Error)
|
|
}
|
|
|
|
// Проверяем, что ID и Cnt имеют ожидаемые значения (если применимо)
|
|
// Эти проверки могут быть опциональными, так как значения зависят от ответа сервера
|
|
if resp.ID == 0 {
|
|
t.Error("Ожидался ненулевой ID")
|
|
}
|
|
if resp.Cnt == 0 {
|
|
t.Error("Ожидался ненулевой Cnt")
|
|
}
|
|
|
|
printJSON(t, resp)
|
|
}
|
|
|
|
func printJSON(t *testing.T, data any) {
|
|
jsonData, err := json.MarshalIndent(data, "", " ")
|
|
if err != nil {
|
|
t.Errorf("Ошибка при преобразовании в JSON: %v", err)
|
|
return
|
|
}
|
|
fmt.Println(string(jsonData))
|
|
}
|