From a09320edd18d6ec9927415ad98b876bfe7bce5f2 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Sat, 9 Oct 2021 20:11:02 +0800 Subject: [PATCH] feat: loadFromJSON --- convert.go | 19 +++++++++++++++++++ convert_test.go | 21 +++++++++++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/convert.go b/convert.go index 654e3976..5d579043 100644 --- a/convert.go +++ b/convert.go @@ -64,3 +64,22 @@ func (tc *TestCase) dump2YAML(path string) error { } return nil } + +func loadFromJSON(path string) (*TCase, error) { + path, err := filepath.Abs(path) + if err != nil { + log.Printf("convert absolute path error: %v, path: %v", err, path) + return nil, err + } + log.Printf("load testcase from json path: %s", path) + + file, err := ioutil.ReadFile(path) + if err != nil { + log.Printf("dump json path error: %v", err) + return nil, err + } + + tc := &TCase{} + err = json.Unmarshal(file, tc) + return tc, err +} diff --git a/convert_test.go b/convert_test.go index c3f8e45b..a538c1cb 100644 --- a/convert_test.go +++ b/convert_test.go @@ -49,11 +49,28 @@ var demoTestCase = &TestCase{ }, } -func TestDump2JSON(t *testing.T) { - err := demoTestCase.dump2JSON("demo.json") +func TestDumpAndLoadJSON(t *testing.T) { + jsonPath := "demo.json" + err := demoTestCase.dump2JSON(jsonPath) if !assert.NoError(t, err) { t.Fail() } + tc, err := loadFromJSON(jsonPath) + if !assert.NoError(t, err) { + t.Fail() + } + if !assert.Equal(t, tc.Config.Name, demoTestCase.Config.Name) { + t.Fail() + } + if !assert.Equal(t, tc.Config.BaseURL, demoTestCase.Config.BaseURL) { + t.Fail() + } + if !assert.Equal(t, tc.TestSteps[1].Name, demoTestCase.TestSteps[1].Name()) { + t.Fail() + } + if !assert.Equal(t, tc.TestSteps[1].Request, demoTestCase.TestSteps[1].ToStruct().Request) { + t.Fail() + } } func TestDump2YAML(t *testing.T) {