-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuilder_test.go
101 lines (86 loc) · 2.4 KB
/
builder_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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package ocmf_go
import (
"crypto/ecdsa"
"crypto/elliptic"
"crypto/rand"
"testing"
"github.com/stretchr/testify/suite"
)
type builderTestSuite struct {
suite.Suite
}
func (s *builderTestSuite) TestNewBuilder() {
tests := []struct {
name string
opts []BuilderOption
}{
{},
}
for _, tt := range tests {
s.T().Run(tt.name, func(t *testing.T) {
})
}
}
func (s *builderTestSuite) TestBuilder_Valid() {
curve := elliptic.P256()
privateKey, err := ecdsa.GenerateKey(curve, rand.Reader)
s.Require().NoError(err)
builder := NewBuilder(privateKey).
WithPagination("1").
WithMeterSerial("exampleSerial123").
WithIdentificationStatus(true).
WithIdentificationType(string(RfidNone)).
AddReading(Reading{
Time: "2018-07-24T13:22:04,000+0200 S",
ReadingValue: 123,
ReadingUnit: string(UnitskWh),
Status: string(MeterOk),
})
s.Equal("1", builder.payload.Pagination)
s.Equal("exampleSerial123", builder.payload.MeterSerial)
s.Equal(true, builder.payload.IdentificationStatus)
s.Equal(string(RfidNone), builder.payload.IdentificationType)
s.Len(builder.payload.Readings, 1)
s.Equal("2018-07-24T13:22:04,000+0200 S", builder.payload.Readings[0].Time)
s.Equal(float64(123), builder.payload.Readings[0].ReadingValue)
s.Equal(string(UnitskWh), builder.payload.Readings[0].ReadingUnit)
s.Equal(string(MeterOk), builder.payload.Readings[0].Status)
payload, err := builder.Build()
s.NoError(err)
s.NotNil(payload)
}
func (s *builderTestSuite) TestBuilder_MissingAttributes() {
builder := NewBuilder(nil).
// WithPagination("1").
WithMeterSerial("exampleSerial123").
WithIdentificationStatus(true).
WithIdentificationType(string(RfidNone)).
AddReading(Reading{
Time: "2021-01-01T00:00:00Z",
ReadingValue: 123,
ReadingUnit: string(UnitskWh),
Status: string(MeterOk),
})
payload, err := builder.Build()
s.Error(err)
s.Nil(payload)
}
func (s *builderTestSuite) TestBuilder_CantSign() {
builder := NewBuilder(nil).
WithPagination("1").
WithMeterSerial("exampleSerial123").
WithIdentificationStatus(true).
WithIdentificationType(string(RfidNone)).
AddReading(Reading{
Time: "2021-01-01T00:00:00Z",
ReadingValue: 123,
ReadingUnit: string(UnitskWh),
Status: string(MeterOk),
})
payload, err := builder.Build()
s.Error(err)
s.Nil(payload)
}
func TestBuilder(t *testing.T) {
suite.Run(t, new(builderTestSuite))
}