working on valuemonitor
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
package settings
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestStringValueMonitor(t *testing.T) {
|
||||
key, value := "my key to monitor", "first value"
|
||||
monitor, err := NewValueMonitor(TheSettings, key, func(s string) (string, error) { return value, nil })
|
||||
if err != nil {
|
||||
t.Fatalf("error opening new value monitor: %v\n", err)
|
||||
}
|
||||
if want, got := value, monitor.GetValue(); want != got {
|
||||
t.Fatalf("error: wanted %q; got %q\n", want, got)
|
||||
}
|
||||
value = "second value"
|
||||
TheSettings.SetKeyValue(key, value)
|
||||
if want, got := value, monitor.GetValue(); want != got {
|
||||
t.Fatalf("error: wanted %q; got %q\n", want, got)
|
||||
}
|
||||
value = "third value"
|
||||
f, err := os.OpenFile(TheSettings.GetFilename(), os.O_APPEND|os.O_WRONLY, 0664)
|
||||
if err != nil {
|
||||
t.Fatalf("error opening file writer to append settings: %v\n", err)
|
||||
}
|
||||
_, err = f.WriteString(fmt.Sprintf("\n%s=%s\n", key, value))
|
||||
if err != nil {
|
||||
t.Fatalf("error appending to file: %v\n", err)
|
||||
}
|
||||
err = TheSettings.Update()
|
||||
if err != nil {
|
||||
t.Fatalf("error updating the settings: %v\n", err)
|
||||
}
|
||||
if want, got := value, monitor.GetValue(); want != got {
|
||||
t.Fatalf("error: wanted %q; got %q\n", want, got)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user