github.com/d0sbit/gocode@v0.0.0-20211001144653-a968ce917518/config/config_test.go (about)

     1  package config
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  
     7  	"github.com/psanford/memfs"
     8  )
     9  
    10  func TestConfig(t *testing.T) {
    11  
    12  	mfs := memfs.New()
    13  	must(t, mfs.WriteFile("example.config", []byte(`
    14  val2 = "bleh"
    15  val1 = "blah"
    16  `), 0644))
    17  
    18  	inf, err := mfs.Open("example.config")
    19  	must(t, err)
    20  
    21  	var c Config
    22  	_, err = c.ReadFrom(inf)
    23  	must(t, err)
    24  
    25  	inf.Close()
    26  
    27  	t.Logf("c.Settings: %#v", c.Settings)
    28  
    29  	if c.Settings["val1"] != "blah" {
    30  		t.Fail()
    31  	}
    32  	if c.Settings["val2"] != "bleh" {
    33  		t.Fail()
    34  	}
    35  
    36  	c.Settings["val3"] = "blee"
    37  
    38  	var buf bytes.Buffer
    39  	_, err = c.WriteTo(&buf)
    40  	must(t, err)
    41  	t.Logf("out: %s", buf.Bytes())
    42  
    43  	if !bytes.Contains(buf.Bytes(), []byte("blee")) {
    44  		t.Fail()
    45  	}
    46  }
    47  
    48  func must(t *testing.T, err error) {
    49  	t.Helper()
    50  	if err != nil {
    51  		t.Fatal(err)
    52  	}
    53  }