Skip to content

Commit 13db521

Browse files
committed
sendtables: Add ServerClass tests
1 parent b488f70 commit 13db521

File tree

2 files changed

+76
-1
lines changed

2 files changed

+76
-1
lines changed

sendtables/sendtables.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,5 +163,16 @@ func (sc *ServerClass) String() string {
163163
for i, fProp := range sc.flattenedProps {
164164
props[i] = fProp.name
165165
}
166-
return fmt.Sprintf(serverClassStringFormat, sc.id, sc.name, sc.dataTableID, sc.dataTableName, strings.Join(baseClasses, "\n\t\t"), strings.Join(props, "\n\t\t"))
166+
167+
baseClassesStr := "-"
168+
if len(baseClasses) > 0 {
169+
baseClassesStr = strings.Join(baseClasses, "\n\t\t")
170+
}
171+
172+
propsStr := "-"
173+
if len(props) > 0 {
174+
propsStr = strings.Join(props, "\n\t\t")
175+
}
176+
177+
return fmt.Sprintf(serverClassStringFormat, sc.id, sc.name, sc.dataTableID, sc.dataTableName, baseClassesStr, propsStr)
167178
}

sendtables/sendtables_test.go

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package sendtables
2+
3+
import (
4+
"testing"
5+
6+
assert "github.com/stretchr/testify/assert"
7+
)
8+
9+
func TestServerClassGetters(t *testing.T) {
10+
sc := ServerClass{
11+
id: 1,
12+
name: "TestClass",
13+
dataTableID: 2,
14+
dataTableName: "ADataTable",
15+
}
16+
17+
assert.Equal(t, sc.id, sc.ID(), "ID should return the id field")
18+
assert.Equal(t, sc.name, sc.Name(), "Name should return the name field")
19+
assert.Equal(t, sc.dataTableID, sc.DataTableID(), "DataTableID should return the dataTableID field")
20+
assert.Equal(t, sc.dataTableName, sc.DataTableName(), "DataTableName should return the dataTableName field")
21+
}
22+
23+
func TestServerClassPropertyEntries(t *testing.T) {
24+
var sc ServerClass
25+
assert.Empty(t, sc.PropertyEntries())
26+
27+
sc.flattenedProps = []flattenedPropEntry{flattenedPropEntry{name: "prop1"}, flattenedPropEntry{name: "prop2"}}
28+
29+
assert.ElementsMatch(t, []string{"prop1", "prop2"}, sc.PropertyEntries())
30+
}
31+
32+
func TestServerClassString(t *testing.T) {
33+
sc := ServerClass{
34+
id: 1,
35+
name: "TestClass",
36+
dataTableID: 2,
37+
dataTableName: "ADataTable",
38+
}
39+
40+
expectedString := `ServerClass: id=1 name=TestClass
41+
dataTableId=2
42+
dataTableName=ADataTable
43+
baseClasses:
44+
-
45+
properties:
46+
-`
47+
48+
assert.Equal(t, expectedString, sc.String())
49+
50+
sc.baseClasses = []*ServerClass{&ServerClass{name: "AnotherClass"}, &ServerClass{name: "YetAnotherClass"}}
51+
sc.flattenedProps = []flattenedPropEntry{flattenedPropEntry{name: "prop1"}, flattenedPropEntry{name: "prop2"}}
52+
53+
expectedString = `ServerClass: id=1 name=TestClass
54+
dataTableId=2
55+
dataTableName=ADataTable
56+
baseClasses:
57+
AnotherClass
58+
YetAnotherClass
59+
properties:
60+
prop1
61+
prop2`
62+
63+
assert.Equal(t, expectedString, sc.String())
64+
}

0 commit comments

Comments
 (0)