mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-12 01:24:12 +08:00
- 移除 99 个仅读取同包 .go 源码做字符串包含断言的测试函数,共 3746 行 - 判据为函数内出现 os.ReadFile 读取 .go 文件且剥离字符串字面量后不调用任何生产代码 - 保留 2 个同时调用生产接口的测试函数,清理 45 个文件中失去引用的 import - go build、go vet 通过,测试失败集合由 40 项减至 39 项且无新增,减少项为已长期失败的墓碑用例
95 lines
3.4 KiB
Go
95 lines
3.4 KiB
Go
package app
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
"GoNavi-Wails/internal/connection"
|
|
"GoNavi-Wails/shared/i18n"
|
|
)
|
|
|
|
type fakeOracleMetadataDB struct {
|
|
rows []map[string]interface{}
|
|
fields []string
|
|
err error
|
|
}
|
|
|
|
func (db *fakeOracleMetadataDB) Connect(config connection.ConnectionConfig) error { return nil }
|
|
func (db *fakeOracleMetadataDB) Close() error { return nil }
|
|
func (db *fakeOracleMetadataDB) Ping() error { return nil }
|
|
func (db *fakeOracleMetadataDB) Query(query string) ([]map[string]interface{}, []string, error) {
|
|
return db.rows, db.fields, db.err
|
|
}
|
|
func (db *fakeOracleMetadataDB) Exec(query string) (int64, error) { return 0, nil }
|
|
func (db *fakeOracleMetadataDB) GetDatabases() ([]string, error) { return nil, nil }
|
|
func (db *fakeOracleMetadataDB) GetTables(dbName string) ([]string, error) {
|
|
return nil, nil
|
|
}
|
|
func (db *fakeOracleMetadataDB) GetCreateStatement(dbName, tableName string) (string, error) {
|
|
return "", nil
|
|
}
|
|
func (db *fakeOracleMetadataDB) GetColumns(dbName, tableName string) ([]connection.ColumnDefinition, error) {
|
|
return nil, nil
|
|
}
|
|
func (db *fakeOracleMetadataDB) GetAllColumns(dbName string) ([]connection.ColumnDefinitionWithTable, error) {
|
|
return nil, nil
|
|
}
|
|
func (db *fakeOracleMetadataDB) GetIndexes(dbName, tableName string) ([]connection.IndexDefinition, error) {
|
|
return nil, nil
|
|
}
|
|
func (db *fakeOracleMetadataDB) GetForeignKeys(dbName, tableName string) ([]connection.ForeignKeyDefinition, error) {
|
|
return nil, nil
|
|
}
|
|
func (db *fakeOracleMetadataDB) GetTriggers(dbName, tableName string) ([]connection.TriggerDefinition, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
|
|
func TestMethodsDBOracleMetadataCatalogKeysExist(t *testing.T) {
|
|
catalogs, err := i18n.LoadCatalogs()
|
|
if err != nil {
|
|
t.Fatalf("LoadCatalogs() error = %v", err)
|
|
}
|
|
|
|
for _, language := range i18n.SupportedLanguages() {
|
|
if strings.TrimSpace(catalogs[language]["db.backend.error.column_definitions_missing"]) == "" {
|
|
t.Fatalf("%s catalog missing Oracle metadata key %q", language, "db.backend.error.column_definitions_missing")
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestMethodsDBOracleMetadataUsesEnglishMessages(t *testing.T) {
|
|
app := NewAppWithSecretStore(newFakeAppSecretStore())
|
|
app.configDir = t.TempDir()
|
|
app.SetLanguage(string(i18n.LanguageEnUS))
|
|
|
|
t.Run("dictionary fallback missing columns", func(t *testing.T) {
|
|
_, err := inferOracleColumnsFromDictionary(&fakeOracleMetadataDB{}, "APP", "ORDERS", app.appText)
|
|
if err == nil {
|
|
t.Fatal("expected inferOracleColumnsFromDictionary to fail")
|
|
}
|
|
if got, want := err.Error(), "No column definitions were returned"; got != want {
|
|
t.Fatalf("expected %q, got %q", want, got)
|
|
}
|
|
})
|
|
|
|
t.Run("empty select requires table name", func(t *testing.T) {
|
|
_, err := inferOracleColumnsFromEmptySelect(&fakeOracleMetadataDB{}, "APP", " ", app.appText)
|
|
if err == nil {
|
|
t.Fatal("expected inferOracleColumnsFromEmptySelect to fail")
|
|
}
|
|
if got, want := err.Error(), "Table name is required"; got != want {
|
|
t.Fatalf("expected %q, got %q", want, got)
|
|
}
|
|
})
|
|
|
|
t.Run("empty select missing fields", func(t *testing.T) {
|
|
_, err := inferOracleColumnsFromEmptySelect(&fakeOracleMetadataDB{}, "APP", "ORDERS", app.appText)
|
|
if err == nil {
|
|
t.Fatal("expected inferOracleColumnsFromEmptySelect to fail")
|
|
}
|
|
if got, want := err.Error(), "No column definitions were returned"; got != want {
|
|
t.Fatalf("expected %q, got %q", want, got)
|
|
}
|
|
})
|
|
}
|