Skip to content

Commit 957a23f

Browse files
committed
Add TestGenDiffWithFixturesYaml
1 parent fa151fc commit 957a23f

File tree

4 files changed

+39
-8
lines changed

4 files changed

+39
-8
lines changed

src/gendiff.go

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88
"path/filepath"
99
"sort"
1010
"strings"
11+
12+
"github.com/stretchr/testify/assert/yaml"
1113
)
1214

1315
func GenDiff(path1, path2, format string) (string, error) {
@@ -35,19 +37,28 @@ func toAbsolutePath(path1, path2 string) (p1, p2 string) {
3537
}
3638

3739
func parseDataFromFiles(path1, path2 string) (data1, data2 map[string]interface{}, err error) {
40+
dataFile1, _ := os.ReadFile(path1)
41+
dataFile2, _ := os.ReadFile(path2)
42+
var data11 map[string]interface{}
43+
var data22 map[string]interface{}
3844
switch {
3945
case filepath.Ext(path1) == ".json" && filepath.Ext(path2) == ".json":
40-
var data1 map[string]interface{}
41-
var data2 map[string]interface{}
42-
dataFile1, _ := os.ReadFile(path1)
43-
dataFile2, _ := os.ReadFile(path2)
44-
if err := json.Unmarshal(dataFile1, &data1); err != nil {
46+
47+
if err := json.Unmarshal(dataFile1, &data11); err != nil {
4548
return nil, nil, errors.New("не удалось преобразовать из json")
4649
}
47-
if err := json.Unmarshal(dataFile2, &data2); err != nil {
50+
if err := json.Unmarshal(dataFile2, &data22); err != nil {
4851
return nil, nil, errors.New("не удалось преобразовать из json")
4952
}
50-
return data1, data2, nil
53+
return data11, data22, nil
54+
case filepath.Ext(path1) == ".yml" && filepath.Ext(path2) == ".yml":
55+
if err := yaml.Unmarshal(dataFile1, &data11); err != nil {
56+
return nil, nil, errors.New("не удалось преобразовать из yaml")
57+
}
58+
if err := yaml.Unmarshal(dataFile2, &data22); err != nil {
59+
return nil, nil, errors.New("не удалось преобразовать из yaml")
60+
}
61+
return data11, data22, nil
5162
default:
5263
return nil, nil, errors.New("неизвестный формат данных")
5364
}

src/gendiff_test.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
)
1212

1313
// мой тест с использованием фикстур
14-
func TestGenDiffWithFixtures(t *testing.T) {
14+
func TestGenDiffWithFixturesJson(t *testing.T) {
1515
path1 := filepath.Join("../testdata/fixture/file1.json") //фикстура №1
1616
path2 := filepath.Join("../testdata/fixture/file2.json") //фикстура №2
1717
path3 := filepath.Join("../testdata/fixture/result.txt") //фикстура №3
@@ -24,6 +24,19 @@ func TestGenDiffWithFixtures(t *testing.T) {
2424
assert.Equal(t, string(bytes), str) // утверждаем, что ожидаемая строка равна полученной строке
2525
}
2626

27+
func TestGenDiffWithFixturesYaml(t *testing.T) {
28+
path1 := filepath.Join("../testdata/fixture/file1.yml") //фикстура №1
29+
path2 := filepath.Join("../testdata/fixture/file2.yml") //фикстура №2
30+
path3 := filepath.Join("../testdata/fixture/result.txt") //фикстура №3
31+
32+
str, err := GenDiff(path1, path2, "stylish")
33+
require.NoError(t, err) // если произошла ошибка в основном коде, то и нет смысла двигаться дальше
34+
35+
bytes, err := os.ReadFile(path3)
36+
require.NoError(t, err) // если произошла ошибка чтения, то нет смысла идти дальше
37+
assert.Equal(t, string(bytes), str) // утверждаем, что ожидаемая строка равна полученной строке
38+
}
39+
2740
// мой тест до использовния фикстур
2841
func TestGenDiff(t *testing.T) {
2942
var testCases = []struct {

testdata/fixture/file1.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
host: hexlet.io
2+
timeout: 50
3+
proxy: 123.234.53.22
4+
follow: false

testdata/fixture/file2.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
timeout: 20
2+
verbose: true
3+
host: hexlet.io

0 commit comments

Comments
 (0)