59 lines
965 B
Go
59 lines
965 B
Go
package ships
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestTestShip(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
tShip := NewTestShip(true, 100)
|
|
|
|
// interface conformance test
|
|
var ship Ship = tShip
|
|
|
|
srvShip := tShip.Reverse()
|
|
|
|
for i := 0; i < 100; i++ {
|
|
// client send
|
|
err := ship.Load(testData)
|
|
if err != nil {
|
|
t.Fatalf("%s failed: %s", ship, err)
|
|
}
|
|
|
|
// server recv
|
|
buf := getTestBuf()
|
|
_, err = srvShip.UnloadTo(buf)
|
|
if err != nil {
|
|
t.Fatalf("%s failed: %s", ship, err)
|
|
}
|
|
|
|
// check data
|
|
assert.Equal(t, testData, buf, "should match")
|
|
fmt.Print(".")
|
|
|
|
// server send
|
|
err = srvShip.Load(testData)
|
|
if err != nil {
|
|
t.Fatalf("%s failed: %s", ship, err)
|
|
}
|
|
|
|
// client recv
|
|
buf = getTestBuf()
|
|
_, err = ship.UnloadTo(buf)
|
|
if err != nil {
|
|
t.Fatalf("%s failed: %s", ship, err)
|
|
}
|
|
|
|
// check data
|
|
assert.Equal(t, testData, buf, "should match")
|
|
fmt.Print(".")
|
|
}
|
|
|
|
ship.Sink()
|
|
srvShip.Sink()
|
|
}
|