45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
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")
|
|
}
|
|
}
|