Skip to content

Commit

Permalink
sendtables: Add ServerClass tests
Browse files Browse the repository at this point in the history
  • Loading branch information
markus-wa committed Oct 2, 2018
1 parent b488f70 commit 13db521
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 1 deletion.
13 changes: 12 additions & 1 deletion sendtables/sendtables.go
Expand Up @@ -163,5 +163,16 @@ func (sc *ServerClass) String() string {
for i, fProp := range sc.flattenedProps {
props[i] = fProp.name
}
return fmt.Sprintf(serverClassStringFormat, sc.id, sc.name, sc.dataTableID, sc.dataTableName, strings.Join(baseClasses, "\n\t\t"), strings.Join(props, "\n\t\t"))

baseClassesStr := "-"
if len(baseClasses) > 0 {
baseClassesStr = strings.Join(baseClasses, "\n\t\t")
}

propsStr := "-"
if len(props) > 0 {
propsStr = strings.Join(props, "\n\t\t")
}

return fmt.Sprintf(serverClassStringFormat, sc.id, sc.name, sc.dataTableID, sc.dataTableName, baseClassesStr, propsStr)
}
64 changes: 64 additions & 0 deletions sendtables/sendtables_test.go
@@ -0,0 +1,64 @@
package sendtables

import (
"testing"

assert "github.com/stretchr/testify/assert"
)

func TestServerClassGetters(t *testing.T) {
sc := ServerClass{
id: 1,
name: "TestClass",
dataTableID: 2,
dataTableName: "ADataTable",
}

assert.Equal(t, sc.id, sc.ID(), "ID should return the id field")
assert.Equal(t, sc.name, sc.Name(), "Name should return the name field")
assert.Equal(t, sc.dataTableID, sc.DataTableID(), "DataTableID should return the dataTableID field")
assert.Equal(t, sc.dataTableName, sc.DataTableName(), "DataTableName should return the dataTableName field")
}

func TestServerClassPropertyEntries(t *testing.T) {
var sc ServerClass
assert.Empty(t, sc.PropertyEntries())

sc.flattenedProps = []flattenedPropEntry{flattenedPropEntry{name: "prop1"}, flattenedPropEntry{name: "prop2"}}

assert.ElementsMatch(t, []string{"prop1", "prop2"}, sc.PropertyEntries())
}

func TestServerClassString(t *testing.T) {
sc := ServerClass{
id: 1,
name: "TestClass",
dataTableID: 2,
dataTableName: "ADataTable",
}

expectedString := `ServerClass: id=1 name=TestClass
dataTableId=2
dataTableName=ADataTable
baseClasses:
-
properties:
-`

assert.Equal(t, expectedString, sc.String())

sc.baseClasses = []*ServerClass{&ServerClass{name: "AnotherClass"}, &ServerClass{name: "YetAnotherClass"}}
sc.flattenedProps = []flattenedPropEntry{flattenedPropEntry{name: "prop1"}, flattenedPropEntry{name: "prop2"}}

expectedString = `ServerClass: id=1 name=TestClass
dataTableId=2
dataTableName=ADataTable
baseClasses:
AnotherClass
YetAnotherClass
properties:
prop1
prop2`

assert.Equal(t, expectedString, sc.String())
}

0 comments on commit 13db521

Please sign in to comment.