fix(config): apollo get the original configuration file directly (#2100)
parent
123fc1e6c8
commit
4b7afe52af
@ -1,189 +0,0 @@ |
|||||||
package apollo |
|
||||||
|
|
||||||
import ( |
|
||||||
"reflect" |
|
||||||
"testing" |
|
||||||
) |
|
||||||
|
|
||||||
func Test_genKey(t *testing.T) { |
|
||||||
type args struct { |
|
||||||
ns string |
|
||||||
sub string |
|
||||||
} |
|
||||||
tests := []struct { |
|
||||||
name string |
|
||||||
args args |
|
||||||
want string |
|
||||||
}{ |
|
||||||
{ |
|
||||||
name: "case 1", |
|
||||||
args: args{ |
|
||||||
ns: "", |
|
||||||
sub: "has_no_ns", |
|
||||||
}, |
|
||||||
want: "has_no_ns", |
|
||||||
}, |
|
||||||
{ |
|
||||||
name: "case 2", |
|
||||||
args: args{ |
|
||||||
ns: "ns.ext", |
|
||||||
sub: "sub", |
|
||||||
}, |
|
||||||
want: "ns.sub", |
|
||||||
}, |
|
||||||
{ |
|
||||||
name: "case 3", |
|
||||||
args: args{ |
|
||||||
ns: "", |
|
||||||
sub: "", |
|
||||||
}, |
|
||||||
want: "", |
|
||||||
}, |
|
||||||
{ |
|
||||||
name: "case 4", |
|
||||||
args: args{ |
|
||||||
ns: "ns.ext", |
|
||||||
sub: "sub.sub2.sub3", |
|
||||||
}, |
|
||||||
want: "ns.sub.sub2.sub3", |
|
||||||
}, |
|
||||||
{ |
|
||||||
name: "case 5", |
|
||||||
args: args{ |
|
||||||
ns: "ns.more.ext", |
|
||||||
sub: "sub.sub2.sub3", |
|
||||||
}, |
|
||||||
want: "ns.more.sub.sub2.sub3", |
|
||||||
}, |
|
||||||
} |
|
||||||
for _, tt := range tests { |
|
||||||
t.Run(tt.name, func(t *testing.T) { |
|
||||||
if got := genKey(tt.args.ns, tt.args.sub); got != tt.want { |
|
||||||
t.Errorf("genKey() = %v, want %v", got, tt.want) |
|
||||||
} |
|
||||||
}) |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
func Test_format(t *testing.T) { |
|
||||||
type args struct { |
|
||||||
ns string |
|
||||||
} |
|
||||||
tests := []struct { |
|
||||||
name string |
|
||||||
args args |
|
||||||
want string |
|
||||||
}{ |
|
||||||
{ |
|
||||||
name: "case 0", |
|
||||||
args: args{ |
|
||||||
ns: "ns.yaml", |
|
||||||
}, |
|
||||||
want: "yaml", |
|
||||||
}, |
|
||||||
{ |
|
||||||
name: "case 1", |
|
||||||
args: args{ |
|
||||||
ns: "ns", |
|
||||||
}, |
|
||||||
want: "json", |
|
||||||
}, |
|
||||||
{ |
|
||||||
name: "case 2", |
|
||||||
args: args{ |
|
||||||
ns: "ns.more.json", |
|
||||||
}, |
|
||||||
want: "json", |
|
||||||
}, |
|
||||||
{ |
|
||||||
name: "case 3", |
|
||||||
args: args{ |
|
||||||
ns: "", |
|
||||||
}, |
|
||||||
want: "json", |
|
||||||
}, |
|
||||||
} |
|
||||||
for _, tt := range tests { |
|
||||||
t.Run(tt.name, func(t *testing.T) { |
|
||||||
if got := format(tt.args.ns); got != tt.want { |
|
||||||
t.Errorf("format() = %v, want %v", got, tt.want) |
|
||||||
} |
|
||||||
}) |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
func Test_convertProperties(t *testing.T) { |
|
||||||
type args struct { |
|
||||||
key string |
|
||||||
value interface{} |
|
||||||
target map[string]interface{} |
|
||||||
} |
|
||||||
tests := []struct { |
|
||||||
name string |
|
||||||
args args |
|
||||||
want map[string]interface{} |
|
||||||
}{ |
|
||||||
{ |
|
||||||
name: "case 0", |
|
||||||
args: args{ |
|
||||||
key: "application.name", |
|
||||||
value: "app name", |
|
||||||
target: map[string]interface{}{}, |
|
||||||
}, |
|
||||||
want: map[string]interface{}{ |
|
||||||
"application": map[string]interface{}{ |
|
||||||
"name": "app name", |
|
||||||
}, |
|
||||||
}, |
|
||||||
}, |
|
||||||
{ |
|
||||||
name: "case 1", |
|
||||||
args: args{ |
|
||||||
key: "application", |
|
||||||
value: []string{"1", "2", "3"}, |
|
||||||
target: map[string]interface{}{}, |
|
||||||
}, |
|
||||||
want: map[string]interface{}{ |
|
||||||
"application": []string{"1", "2", "3"}, |
|
||||||
}, |
|
||||||
}, |
|
||||||
} |
|
||||||
for _, tt := range tests { |
|
||||||
t.Run(tt.name, func(t *testing.T) { |
|
||||||
resolve(tt.args.key, tt.args.value, tt.args.target) |
|
||||||
if !reflect.DeepEqual(tt.args.target, tt.want) { |
|
||||||
t.Errorf("convertProperties() = %v, want %v", tt.args.target, tt.want) |
|
||||||
} |
|
||||||
}) |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
func Test_convertProperties_duplicate(t *testing.T) { |
|
||||||
target := map[string]interface{}{} |
|
||||||
resolve("application.name", "name", target) |
|
||||||
_, ok := target["application"] |
|
||||||
if !reflect.DeepEqual(ok, true) { |
|
||||||
t.Errorf("ok = %v, want %v", ok, true) |
|
||||||
} |
|
||||||
_, ok = target["application"].(map[string]interface{})["name"] |
|
||||||
if !reflect.DeepEqual(ok, true) { |
|
||||||
t.Errorf("ok = %v, want %v", ok, true) |
|
||||||
} |
|
||||||
if !reflect.DeepEqual(target["application"].(map[string]interface{})["name"], "name") { |
|
||||||
t.Errorf("target[\"application\"][\"name\"] = %v, want %v", target["application"].(map[string]interface{})["name"], "name") |
|
||||||
} |
|
||||||
|
|
||||||
// cause duplicate, the oldest value will be kept
|
|
||||||
resolve("application.name.first", "first name", target) |
|
||||||
_, ok = target["application"] |
|
||||||
if !reflect.DeepEqual(ok, true) { |
|
||||||
t.Errorf("ok = %v, want %v", ok, true) |
|
||||||
} |
|
||||||
_, ok = target["application"].(map[string]interface{})["name"] |
|
||||||
if !reflect.DeepEqual(ok, true) { |
|
||||||
t.Errorf("ok = %v, want %v", ok, true) |
|
||||||
} |
|
||||||
if !reflect.DeepEqual(target["application"].(map[string]interface{})["name"], "name") { |
|
||||||
t.Errorf("target[\"application\"][\"name\"] = %v, want %v", target["application"].(map[string]interface{})["name"], "name") |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue