(t *testing.T)
| 779 | } |
| 780 | |
| 781 | func TestGetSchema(t *testing.T) { |
| 782 | ts := createBasicHTTPHandlerTestSuite() |
| 783 | ts.startServer(t) |
| 784 | ts.prepareData(t) |
| 785 | defer ts.stopServer(t) |
| 786 | resp, err := ts.FetchStatus("/schema") |
| 787 | require.NoError(t, err) |
| 788 | decoder := json.NewDecoder(resp.Body) |
| 789 | var dbs []*model.DBInfo |
| 790 | err = decoder.Decode(&dbs) |
| 791 | require.NoError(t, err) |
| 792 | require.NoError(t, resp.Body.Close()) |
| 793 | expects := []string{"information_schema", "metrics_schema", "mysql", "performance_schema", "sys", "test", "tidb"} |
| 794 | names := make([]string, len(dbs)) |
| 795 | for i, v := range dbs { |
| 796 | names[i] = v.Name.L |
| 797 | } |
| 798 | sort.Strings(names) |
| 799 | require.Equal(t, expects, names) |
| 800 | store := testkit.CreateMockStore(t) |
| 801 | |
| 802 | tk := testkit.NewTestKit(t, store) |
| 803 | userTbl := external.GetTableByName(t, tk, "mysql", "user") |
| 804 | resp, err = ts.FetchStatus(fmt.Sprintf("/schema?table_id=%d", userTbl.Meta().ID)) |
| 805 | require.NoError(t, err) |
| 806 | var ti *model.TableInfo |
| 807 | decoder = json.NewDecoder(resp.Body) |
| 808 | err = decoder.Decode(&ti) |
| 809 | require.NoError(t, err) |
| 810 | require.NoError(t, resp.Body.Close()) |
| 811 | require.Equal(t, "user", ti.Name.L) |
| 812 | |
| 813 | resp, err = ts.FetchStatus("/schema?table_id=a") |
| 814 | require.NoError(t, err) |
| 815 | require.NoError(t, resp.Body.Close()) |
| 816 | |
| 817 | resp, err = ts.FetchStatus("/schema?table_id=1") |
| 818 | require.NoError(t, err) |
| 819 | require.NoError(t, resp.Body.Close()) |
| 820 | |
| 821 | resp, err = ts.FetchStatus("/schema?table_id=-1") |
| 822 | require.NoError(t, err) |
| 823 | require.NoError(t, resp.Body.Close()) |
| 824 | |
| 825 | resp, err = ts.FetchStatus("/schema/tidb") |
| 826 | require.NoError(t, err) |
| 827 | var lt []*model.TableInfo |
| 828 | decoder = json.NewDecoder(resp.Body) |
| 829 | err = decoder.Decode(<) |
| 830 | require.NoError(t, err) |
| 831 | require.NoError(t, resp.Body.Close()) |
| 832 | require.Greater(t, len(lt), 2) |
| 833 | |
| 834 | resp, err = ts.FetchStatus("/schema/tidb?id_name_only=true") |
| 835 | require.NoError(t, err) |
| 836 | var lti []*model.TableNameInfo |
| 837 | decoder = json.NewDecoder(resp.Body) |
| 838 | err = decoder.Decode(<i) |
nothing calls this directly
no test coverage detected