4 "github.com/stretchr/testify/assert"
10 Name string `yaml:"name"`
11 Value int `yaml:"value"`
14 func TestLoadFromYAMLFile(t *testing.T) {
23 name: "Valid YAML file",
24 fileName: "valid.yaml",
25 content: "name: Test\nvalue: 123\n",
26 wantData: TestData{Name: "Test", Value: 123},
30 name: "File not found",
31 fileName: "nonexistent.yaml",
37 name: "Invalid YAML content",
38 fileName: "invalid.yaml",
39 content: "name: Test\nvalue: invalid_int\n",
45 for _, tt := range tests {
46 t.Run(tt.name, func(t *testing.T) {
47 // Setup: Create a temporary file with the provided content if content is not empty
49 err := os.WriteFile(tt.fileName, []byte(tt.content), 0644)
50 assert.NoError(t, err)
51 defer os.Remove(tt.fileName) // Cleanup the file after the test
55 err := loadFromYAMLFile(tt.fileName, &data)
60 assert.NoError(t, err)
61 assert.Equal(t, tt.wantData, data)