package hw3test import ( "bytes" "io" "os" "path/filepath" "testing" ) func TestWriteToDiskSelected(t *testing.T) { selected := &EnvFile{GenSeed: 42, Size: 4096} unused := &EnvFile{GenSeed: 43, Size: 4096} root := &EnvDir{Listing: map[string]EnvNode{ "nested": &EnvDir{Listing: map[string]EnvNode{ "selected": selected, "unused": unused, }}, }} location := filepath.Join(t.TempDir(), "environment") if err := root.WriteToDiskSelected(location, map[string]bool{"nested/selected": true}); err != nil { t.Fatal(err) } gotSelected, err := os.ReadFile(filepath.Join(location, "nested", "selected")) if err != nil { t.Fatal(err) } wantSelected, err := io.ReadAll(selected.Open()) if err != nil { t.Fatal(err) } if !bytes.Equal(gotSelected, wantSelected) { t.Fatal("selected file contents differ from generated contents") } gotUnused, err := os.ReadFile(filepath.Join(location, "nested", "unused")) if err != nil { t.Fatal(err) } if len(gotUnused) != int(unused.Size) || !bytes.Equal(gotUnused, make([]byte, unused.Size)) { t.Fatal("unused file must retain its size without generated contents") } }