changed adapter test case

created test folder to add test config and use it in adapter test cases.
This commit is contained in:
MohitKatare-protean
2025-04-09 11:23:38 +05:30
parent 3c688ca458
commit 5b32a51682
4 changed files with 47 additions and 57 deletions

View File

@@ -6,6 +6,7 @@ import (
"flag"
"net/http"
"os"
"path/filepath"
"strings"
"testing"
"time"
@@ -99,18 +100,17 @@ func TestMainFunction(t *testing.T) {
main()
}
// TestRunSuccess tests the successful execution of the run function with different configurations.
func TestRunSuccess(t *testing.T) {
tests := []struct {
name string
configData string
configPath string
mockMgr func() (*plugin.Manager, func(), error)
mockLogger func(cfg *Config) error
mockServer func(ctx context.Context, mgr handler.PluginManager, cfg *Config) (http.Handler, error)
}{
{
name: "Valid Config",
configData: "valid_config.yaml",
configPath: "../test/validConfig.yaml",
mockMgr: func() (*plugin.Manager, func(), error) {
return &plugin.Manager{}, func() {}, nil
},
@@ -128,51 +128,6 @@ func TestRunSuccess(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
testFilePath := tt.configData
mockConfig := `appName: "testAdapter"
log:
level: debug
destinations:
- type: stdout
context_keys:
- transaction_id
- message_id
http:
port: 8080
timeout:
read: 30
write: 30
idle: 30
plugin:
root: "/mock/plugins"
pluginZipPath: "/mock/plugins/plugins_bundle.zip"
plugins:
- testPlugin1
- testPlugin2
modules:
- name: testModule
type: transaction
path: /testPath
targetType: msgQ
plugin:
schemaValidator:
id: testValidator
publisher:
id: testPublisher
config:
project: test-project
topic: test-topic
router:
id: testRouter
config:
routingConfigPath: "/mock/configs/testRouting-config.yaml"`
err := os.WriteFile(testFilePath, []byte(mockConfig), 0644)
if err != nil {
t.Errorf("Failed to create test config file: %v", err)
}
defer os.Remove(testFilePath)
// Mock dependencies
originalNewManager := newManagerFunc
newManagerFunc = func(ctx context.Context, cfg *plugin.ManagerConfig) (*plugin.Manager, func(), error) {
@@ -186,9 +141,8 @@ modules:
}
defer func() { newServerFunc = originalNewServer }()
// Run function
err = run(ctx, testFilePath)
if err != nil {
// Run the app using static config file
if err := run(ctx, filepath.Clean(tt.configPath)); err != nil {
t.Errorf("Expected no error, but got: %v", err)
}
})

41
cmd/test/validConfig.yaml Normal file
View File

@@ -0,0 +1,41 @@
appName: "testAdapter"
log:
level: debug
destinations:
- type: stdout
context_keys:
- transaction_id
- message_id
http:
port: 8080
timeout:
read: 30
write: 30
idle: 30
plugin:
root: "/mock/plugins"
pluginZipPath: "/mock/plugins/plugins_bundle.zip"
plugins:
- testPlugin1
- testPlugin2
modules:
- name: testModule
type: transaction
path: /testPath
targetType: msgQ
plugin:
schemaValidator:
id: testValidator
publisher:
id: testPublisher
config:
project: test-project
topic: test-topic
router:
id: testRouter
config:
routingConfigPath: "/mock/configs/testRouting-config.yaml"

5
go.mod
View File

@@ -22,10 +22,7 @@ require (
require github.com/zenazn/pkcs7pad v0.0.0-20170308005700-253a5b1f0e03
require (
github.com/google/uuid v1.6.0
golang.org/x/text v0.23.0 // indirect
)
require golang.org/x/text v0.23.0 // indirect
require (
github.com/mattn/go-colorable v0.1.13 // indirect

2
go.sum
View File

@@ -7,8 +7,6 @@ github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cn
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=