X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/blobdiff_plain/b25c4a19420c2fde1f290dd360c68b84e4eaa1ed..7e2e07da8cc7985e773e619410801c6dd84afe8b:/hotline/server_blackbox_test.go diff --git a/hotline/server_blackbox_test.go b/hotline/server_blackbox_test.go index 41d331b..ee5f76b 100644 --- a/hotline/server_blackbox_test.go +++ b/hotline/server_blackbox_test.go @@ -4,11 +4,12 @@ import ( "bytes" "context" "fmt" + "github.com/davecgh/go-spew/spew" + "github.com/stretchr/testify/assert" "go.uber.org/zap" "go.uber.org/zap/zapcore" "net" "os" - "reflect" "testing" ) @@ -65,6 +66,8 @@ func NewTestLogger() *zap.SugaredLogger { func StartTestServer() (*Server, context.Context, context.CancelFunc) { ctx, cancelRoot := context.WithCancel(context.Background()) + FS = &OSFileStore{} + srv, err := NewServer("test/config/", "localhost", 0, NewTestLogger()) if err != nil { panic(err) @@ -81,6 +84,14 @@ func StartTestServer() (*Server, context.Context, context.CancelFunc) { } func TestHandshake(t *testing.T) { + mfs := &MockFileStore{} + fh, _ := os.Open("./test/config/Agreement.txt") + mfs.On("Open", "/test/config/Agreement.txt").Return(fh, nil) + fh, _ = os.Open("./test/config/config.yaml") + mfs.On("Open", "/test/config/config.yaml").Return(fh, nil) + FS = mfs + spew.Dump(mfs) + srv, _, cancelFunc := StartTestServer() defer cancelFunc() @@ -104,7 +115,7 @@ func TestHandshake(t *testing.T) { } -//func TestLogin(t *testing.T) { +// func TestLogin(t *testing.T) { // // tests := []struct { // name string @@ -120,14 +131,13 @@ func TestHandshake(t *testing.T) { // // }) // } -//} - +// } func TestNewUser(t *testing.T) { srv, _, _ := StartTestServer() tests := []testCase{ - //{ + // { // name: "a valid new account", // mockHandler: func() mockClientHandler { // mh := mockClientHandler{} @@ -170,8 +180,8 @@ func TestNewUser(t *testing.T) { // want: &Transaction{ // Fields: []Field{}, // }, - //}, - //{ + // }, + // { // name: "a newUser request from a user without the required access", // mockHandler: func() *mockClientHandler { // mh := mockClientHandler{} @@ -201,8 +211,8 @@ func TestNewUser(t *testing.T) { // NewField(fieldUserPassword, []byte(NegatedUserString([]byte("testPw")))), // NewField(fieldUserAccess, []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}), // ), - //}, - //{ + // }, + // { // name: "when user does not have required permission", // mockHandler: func() map[int]*mockClientHandler { // mockHandlers := make(map[int]*mockClientHandler) @@ -241,9 +251,9 @@ func TestNewUser(t *testing.T) { // NewField(fieldUserPassword, []byte(NegatedUserString([]byte("testPw")))), // NewField(fieldUserAccess, []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}), // ), - //}, + // }, - //{ + // { // name: "a request to create a user that already exists", // setup: func() { // @@ -269,7 +279,7 @@ func TestNewUser(t *testing.T) { // NewField(fieldError, []byte("Cannot create account guest because there is already an account with that login.")), // }, // }, - //}, + // }, } for _, test := range tests { @@ -291,7 +301,7 @@ func TestNewUser(t *testing.T) { // send test case request _ = c.Send(*test.request) - //time.Sleep(1 * time.Second) + // time.Sleep(1 * time.Second) // === transactions, _ := readN(c.Connection, 1) @@ -310,24 +320,20 @@ func TestNewUser(t *testing.T) { } } +// tranAssertEqual compares equality of transactions slices after stripping out the random ID +func tranAssertEqual(t *testing.T, tran1, tran2 []Transaction) bool { + var newT1 []Transaction + var newT2 []Transaction + for _, trans := range tran1 { + trans.ID = []byte{0, 0, 0, 0} + newT1 = append(newT1, trans) + } + for _, trans := range tran2 { + trans.ID = []byte{0, 0, 0, 0} + newT2 = append(newT2, trans) -// equal is a utility function used only in tests that determines if transactions are equal enough -func (t Transaction) equal(otherT Transaction) bool { - t.ID = []byte{0, 0, 0, 0} - otherT.ID = []byte{0, 0, 0, 0} - - t.TotalSize = []byte{0, 0, 0, 0} - otherT.TotalSize = []byte{0, 0, 0, 0} - - t.DataSize = []byte{0, 0, 0, 0} - otherT.DataSize = []byte{0, 0, 0, 0} - - t.ParamCount = []byte{0, 0} - otherT.ParamCount = []byte{0, 0} - - //spew.Dump(t) - //spew.Dump(otherT) + } - return reflect.DeepEqual(t, otherT) + return assert.Equal(t, newT1, newT2) }