mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-17 06:09:53 +05:00
Add coverage tests on engine
This commit is contained in:
committed by
Dan Christian Bogos
parent
de77f9b363
commit
f669be786a
@@ -20,6 +20,8 @@ package engine
|
||||
|
||||
import (
|
||||
"encoding/csv"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -300,3 +302,74 @@ func TestCsvURLRead(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCsvURLOpenSuccess(t *testing.T) {
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
w.WriteHeader(http.StatusOK)
|
||||
w.Write([]byte("field1,field2,field3\nvalue1,value2,value3\n"))
|
||||
}))
|
||||
defer server.Close()
|
||||
c := &csvURL{}
|
||||
err := c.Open(server.URL, ',', 3)
|
||||
if err != nil {
|
||||
t.Fatalf("expected no error, got: %v", err)
|
||||
}
|
||||
if c.csvReader == nil {
|
||||
t.Fatalf("expected csvReader to be initialized")
|
||||
}
|
||||
|
||||
record, err := c.csvReader.Read()
|
||||
if err != nil {
|
||||
t.Fatalf("expected no error while reading CSV, got: %v", err)
|
||||
}
|
||||
|
||||
expectedRecord := []string{"field1", "field2", "field3"}
|
||||
for i, field := range expectedRecord {
|
||||
if record[i] != field {
|
||||
t.Errorf("expected field %s, got: %s", field, record[i])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCsvURLOpenInvalidURL(t *testing.T) {
|
||||
c := &csvURL{}
|
||||
err := c.Open("invalid-url", ',', 3)
|
||||
if err == nil {
|
||||
t.Fatalf("expected an error for invalid URL, got none")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCsvURLOpenNotFound(t *testing.T) {
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
w.WriteHeader(http.StatusNotFound)
|
||||
}))
|
||||
defer server.Close()
|
||||
c := &csvURL{}
|
||||
err := c.Open(server.URL, ',', 3)
|
||||
if err == nil {
|
||||
t.Fatalf("expected ErrNotFound, got none")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCsvURLOpenPathNotReachable(t *testing.T) {
|
||||
c := &csvURL{}
|
||||
err := c.Open("http://invalid.localhost", ',', 3)
|
||||
if err == nil {
|
||||
t.Fatalf("expected path not reachable error, got none")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCsvURLClosePageNotNil(t *testing.T) {
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
w.WriteHeader(http.StatusOK)
|
||||
w.Write([]byte("CsvUrlClose"))
|
||||
}))
|
||||
defer server.Close()
|
||||
c := &csvURL{}
|
||||
resp, err := http.Get(server.URL)
|
||||
if err != nil {
|
||||
t.Fatalf("expected no error while getting mock URL, got: %v", err)
|
||||
}
|
||||
c.page = resp.Body
|
||||
c.Close()
|
||||
}
|
||||
|
||||
@@ -22,7 +22,9 @@ import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/cgrates/birpc/context"
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func TestGetStorageTypes(t *testing.T) {
|
||||
@@ -115,3 +117,77 @@ func TestAppendToMysqlDSNOptsBasic(t *testing.T) {
|
||||
t.Errorf("AppendToMysqlDSNOpts(nil) = %s; want %s", result, utils.EmptyString)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMongoGetContext(t *testing.T) {
|
||||
testCtx := context.Background()
|
||||
ms := &MongoStorage{
|
||||
ctx: testCtx,
|
||||
}
|
||||
gotCtx := ms.GetContext()
|
||||
if gotCtx != testCtx {
|
||||
t.Errorf("GetContext() = %v; want %v", gotCtx, testCtx)
|
||||
}
|
||||
}
|
||||
func TestMongoSelectDatabase(t *testing.T) {
|
||||
initialDB := "mongo"
|
||||
ms := &MongoStorage{
|
||||
db: initialDB,
|
||||
}
|
||||
newDB := "db"
|
||||
if err := ms.SelectDatabase(newDB); err != nil {
|
||||
t.Errorf("SelectDatabase() returned an error: %v", err)
|
||||
}
|
||||
if got := ms.db; got != newDB {
|
||||
t.Errorf("SelectDatabase() updated db to %v, want %v", got, newDB)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMongoGetStorageType(t *testing.T) {
|
||||
ms := &MongoStorage{}
|
||||
storageType := ms.GetStorageType()
|
||||
expectedStorageType := utils.MetaMongo
|
||||
if storageType != expectedStorageType {
|
||||
t.Errorf("Expected storage type: %s, got: %s", expectedStorageType, storageType)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRemoveKeysForPrefix(t *testing.T) {
|
||||
sqlStorage := SQLStorage{}
|
||||
testPrefix := "644"
|
||||
err := sqlStorage.RemoveKeysForPrefix(testPrefix)
|
||||
if err != utils.ErrNotImplemented {
|
||||
t.Errorf("Expected error: %v, got: %v", utils.ErrNotImplemented, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetKeysForPrefix(t *testing.T) {
|
||||
sqlStorage := SQLStorage{}
|
||||
testPrefix := "390"
|
||||
keys, err := sqlStorage.GetKeysForPrefix(testPrefix)
|
||||
if err != utils.ErrNotImplemented {
|
||||
t.Errorf("Expected error: %v, got: %v", utils.ErrNotImplemented, err)
|
||||
}
|
||||
if keys != nil {
|
||||
t.Errorf("Expected keys to be nil, got: %v", keys)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMysqlSelectDatabase(t *testing.T) {
|
||||
sqlStorage := SQLStorage{}
|
||||
testDBName := "mysql"
|
||||
err := sqlStorage.SelectDatabase(testDBName)
|
||||
if err != nil {
|
||||
t.Errorf("Expected nil error, got: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestExportGormDB(t *testing.T) {
|
||||
mockDB := &gorm.DB{}
|
||||
sqlStorage := &SQLStorage{
|
||||
db: mockDB,
|
||||
}
|
||||
resultDB := sqlStorage.ExportGormDB()
|
||||
if resultDB != mockDB {
|
||||
t.Errorf("ExportGormDB() = %v; want %v", resultDB, mockDB)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user