4
4
"time"
5
5
6
6
"github.com/enbility/cemd/api"
7
+ eebusutil "github.com/enbility/eebus-go/util"
8
+ spineapi "github.com/enbility/spine-go/api"
9
+ "github.com/enbility/spine-go/model"
7
10
"github.com/stretchr/testify/assert"
8
11
)
9
12
@@ -26,6 +29,73 @@ func (s *UCLPCServerSuite) Test_ConsumptionLimit() {
26
29
assert .Nil (s .T (), err )
27
30
}
28
31
32
+ func (s * UCLPCServerSuite ) Test_PendingConsumptionLimits () {
33
+ data := s .sut .PendingConsumptionLimits ()
34
+ assert .Equal (s .T (), 0 , len (data ))
35
+
36
+ msgCounter := model .MsgCounterType (500 )
37
+
38
+ msg := & spineapi.Message {
39
+ RequestHeader : & model.HeaderType {
40
+ MsgCounter : eebusutil .Ptr (msgCounter ),
41
+ },
42
+ Cmd : model.CmdType {
43
+ LoadControlLimitListData : & model.LoadControlLimitListDataType {},
44
+ },
45
+ }
46
+
47
+ s .sut .loadControlWriteCB (msg )
48
+
49
+ data = s .sut .PendingConsumptionLimits ()
50
+ assert .Equal (s .T (), 0 , len (data ))
51
+
52
+ msg .Cmd = model.CmdType {
53
+ LoadControlLimitListData : & model.LoadControlLimitListDataType {
54
+ LoadControlLimitData : []model.LoadControlLimitDataType {},
55
+ },
56
+ }
57
+
58
+ s .sut .loadControlWriteCB (msg )
59
+
60
+ data = s .sut .PendingConsumptionLimits ()
61
+ assert .Equal (s .T (), 0 , len (data ))
62
+
63
+ msg .Cmd = model.CmdType {
64
+ LoadControlLimitListData : & model.LoadControlLimitListDataType {
65
+ LoadControlLimitData : []model.LoadControlLimitDataType {
66
+ {},
67
+ },
68
+ },
69
+ }
70
+
71
+ s .sut .loadControlWriteCB (msg )
72
+
73
+ data = s .sut .PendingConsumptionLimits ()
74
+ assert .Equal (s .T (), 0 , len (data ))
75
+
76
+ msg .Cmd = model.CmdType {
77
+ LoadControlLimitListData : & model.LoadControlLimitListDataType {
78
+ LoadControlLimitData : []model.LoadControlLimitDataType {
79
+ {
80
+ LimitId : eebusutil .Ptr (model .LoadControlLimitIdType (0 )),
81
+ IsLimitActive : eebusutil .Ptr (true ),
82
+ Value : model .NewScaledNumberType (1000 ),
83
+ TimePeriod : model .NewTimePeriodTypeWithRelativeEndTime (time .Minute * 2 ),
84
+ },
85
+ },
86
+ },
87
+ }
88
+
89
+ s .sut .loadControlWriteCB (msg )
90
+
91
+ data = s .sut .PendingConsumptionLimits ()
92
+ assert .Equal (s .T (), 1 , len (data ))
93
+
94
+ s .sut .ApproveOrDenyConsumptionLimit (model .MsgCounterType (499 ), true , "" )
95
+
96
+ s .sut .ApproveOrDenyConsumptionLimit (msgCounter , true , "" )
97
+ }
98
+
29
99
func (s * UCLPCServerSuite ) Test_Failsafe () {
30
100
limit , changeable , err := s .sut .FailsafeConsumptionActivePowerLimit ()
31
101
assert .Equal (s .T (), 0.0 , limit )
0 commit comments