-
Notifications
You must be signed in to change notification settings - Fork 1
/
config_test.go
48 lines (38 loc) · 1.42 KB
/
config_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package main
import (
"os"
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestThresholds(t *testing.T) {
configPath := "/tmp/config.yaml"
config = NewConfig(configPath)
config.DBPath = "/tmp/test_parse.db"
sensor = NewSensor()
defer os.Remove(configPath)
refreshThresholds = time.Millisecond * 50 // for test auto-refresh
// default
sensor.Temp = config.Thresholds.Temp[1]
sensor.Humidity = config.Thresholds.Humidity[1]
sensor.CO2 = config.Thresholds.CO2[1]
sensor.validate()
assert.Equal(t, config.currentThresholds.CO2[1], config.Thresholds.CO2[1])
assert.Equal(t, config.currentThresholds.Humidity[1], config.Thresholds.Humidity[1])
assert.Equal(t, config.currentThresholds.Temp[1], config.Thresholds.Temp[1])
// up
sensor.Temp++
sensor.Humidity++
sensor.CO2++
config.tempUp()
config.humidityUp()
config.co2Up()
assert.Equal(t, config.currentThresholds.Temp[1], config.Thresholds.Temp[1]+config.Steps.Temp)
assert.Equal(t, config.currentThresholds.Humidity[1], config.Thresholds.Humidity[1]+config.Steps.Humidity)
assert.Equal(t, config.currentThresholds.CO2[1], config.Thresholds.CO2[1]+config.Steps.CO2)
// auto-reset
time.Sleep(refreshThresholds * 2)
assert.Equal(t, config.currentThresholds.CO2[1], config.Thresholds.CO2[1])
assert.Equal(t, config.currentThresholds.Humidity[1], config.Thresholds.Humidity[1])
assert.Equal(t, config.currentThresholds.Temp[1], config.Thresholds.Temp[1])
}