mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-05-22 08:50:17 +08:00
108 lines
2.8 KiB
Go
108 lines
2.8 KiB
Go
package jvm
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"GoNavi-Wails/internal/connection"
|
|
)
|
|
|
|
func TestNormalizeConnectionConfigDefaultsToReadOnlyJMX(t *testing.T) {
|
|
raw := connection.ConnectionConfig{
|
|
Type: "jvm",
|
|
Host: "orders-prod.internal",
|
|
Port: 9010,
|
|
}
|
|
|
|
got, err := NormalizeConnectionConfig(raw)
|
|
if err != nil {
|
|
t.Fatalf("NormalizeConnectionConfig returned error: %v", err)
|
|
}
|
|
if got.JVM.ReadOnly == nil || !*got.JVM.ReadOnly {
|
|
t.Fatalf("expected JVM connection to default to readOnly")
|
|
}
|
|
if got.JVM.PreferredMode != ModeJMX {
|
|
t.Fatalf("expected preferred mode %q, got %q", ModeJMX, got.JVM.PreferredMode)
|
|
}
|
|
if len(got.JVM.AllowedModes) != 1 || got.JVM.AllowedModes[0] != ModeJMX {
|
|
t.Fatalf("expected allowed modes [jmx], got %#v", got.JVM.AllowedModes)
|
|
}
|
|
if got.JVM.JMX.Port != 9010 {
|
|
t.Fatalf("expected JMX port to inherit root port 9010, got %d", got.JVM.JMX.Port)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeConnectionConfigFallsBackToFirstAllowedMode(t *testing.T) {
|
|
raw := connection.ConnectionConfig{
|
|
Type: "jvm",
|
|
Host: "cache-svc.internal",
|
|
JVM: connection.JVMConfig{
|
|
AllowedModes: []string{ModeEndpoint, ModeJMX},
|
|
PreferredMode: ModeAgent,
|
|
Endpoint: connection.JVMEndpointConfig{
|
|
Enabled: true,
|
|
BaseURL: "https://cache-svc.internal/manage/jvm",
|
|
},
|
|
},
|
|
}
|
|
|
|
got, err := NormalizeConnectionConfig(raw)
|
|
if err != nil {
|
|
t.Fatalf("NormalizeConnectionConfig returned error: %v", err)
|
|
}
|
|
if got.JVM.PreferredMode != ModeEndpoint {
|
|
t.Fatalf("expected preferred mode %q, got %q", ModeEndpoint, got.JVM.PreferredMode)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeConnectionConfigKeepsExplicitReadOnlyFalse(t *testing.T) {
|
|
readOnly := false
|
|
raw := connection.ConnectionConfig{
|
|
Type: "jvm",
|
|
Port: 9010,
|
|
JVM: connection.JVMConfig{
|
|
ReadOnly: &readOnly,
|
|
},
|
|
}
|
|
|
|
got, err := NormalizeConnectionConfig(raw)
|
|
if err != nil {
|
|
t.Fatalf("NormalizeConnectionConfig returned error: %v", err)
|
|
}
|
|
if got.JVM.ReadOnly == nil {
|
|
t.Fatalf("expected readOnly to remain explicitly configured")
|
|
}
|
|
if *got.JVM.ReadOnly {
|
|
t.Fatalf("expected explicit readOnly=false to be preserved")
|
|
}
|
|
}
|
|
|
|
func TestNormalizeConnectionConfigDefaultsJMXPortTo9010WhenPortsMissing(t *testing.T) {
|
|
raw := connection.ConnectionConfig{
|
|
Type: "jvm",
|
|
Host: "orders-prod.internal",
|
|
Port: 0,
|
|
}
|
|
|
|
got, err := NormalizeConnectionConfig(raw)
|
|
if err != nil {
|
|
t.Fatalf("NormalizeConnectionConfig returned error: %v", err)
|
|
}
|
|
if got.JVM.JMX.Port != 9010 {
|
|
t.Fatalf("expected JMX port default 9010, got %d", got.JVM.JMX.Port)
|
|
}
|
|
}
|
|
|
|
func TestResolveProviderModeRejectsDisallowedRequestedMode(t *testing.T) {
|
|
_, _, err := ResolveProviderMode(connection.ConnectionConfig{
|
|
Type: "jvm",
|
|
Host: "orders.internal",
|
|
JVM: connection.JVMConfig{
|
|
AllowedModes: []string{ModeEndpoint},
|
|
PreferredMode: ModeEndpoint,
|
|
},
|
|
}, ModeJMX)
|
|
if err == nil {
|
|
t.Fatalf("expected disallowed requested mode to fail")
|
|
}
|
|
}
|