diff --git a/groupChat/receiveRequest_test.go b/groupChat/receiveRequest_test.go index e39bbebbeac999409ddfe8fc20e6f3e30957f1bc..265309f6e92fe1057e495143029550b4f9360325 100644 --- a/groupChat/receiveRequest_test.go +++ b/groupChat/receiveRequest_test.go @@ -10,10 +10,10 @@ package groupChat import ( "github.com/cloudflare/circl/dh/sidh" "github.com/golang/protobuf/proto" - "gitlab.com/elixxir/client/cmix" + "gitlab.com/elixxir/client/catalog" "gitlab.com/elixxir/client/e2e/ratchet/partner/session" + "gitlab.com/elixxir/client/e2e/receive" gs "gitlab.com/elixxir/client/groupChat/groupStore" - "gitlab.com/elixxir/client/stoppable" util "gitlab.com/elixxir/client/storage/utility" "math/rand" "reflect" @@ -23,7 +23,7 @@ import ( ) // Tests that the correct group is received from the request. -func TestManager_receiveRequest(t *testing.T) { +func TestRequestListener_Hear(t *testing.T) { prng := rand.New(rand.NewSource(42)) requestChan := make(chan gs.Group) requestFunc := func(g gs.Group) { requestChan <- g } @@ -44,11 +44,12 @@ func TestManager_receiveRequest(t *testing.T) { t.Errorf("Failed to marshal proto message: %+v", err) } - msg := cmix.TargetedCmixMessage{ + msg := receive.Message{ Sender: g.Members[0].ID, Payload: requestMarshaled, - MessageType: message.GroupCreationRequest, + MessageType: catalog.GroupCreationRequest, } + listener := requestListener{m: m} myVariant := sidh.KeyVariantSidhA mySIDHPrivKey := util.NewSIDHPrivateKey(myVariant) @@ -71,10 +72,7 @@ func TestManager_receiveRequest(t *testing.T) { session.GetDefaultParams(), ) - rawMessages := make(chan message.Receive) - quit := stoppable.NewSingle("groupReceiveRequestTestStoppable") - go m.receiveRequest(rawMessages, quit) - rawMessages <- msg + go listener.Hear(msg) select { case receivedGrp := <-requestChan: @@ -89,7 +87,7 @@ func TestManager_receiveRequest(t *testing.T) { // Tests that the callback is not called when the group already exists in the // manager. -func TestManager_receiveRequest_GroupExists(t *testing.T) { +func TestRequestListener_Hear_GroupExists(t *testing.T) { prng := rand.New(rand.NewSource(42)) requestChan := make(chan gs.Group) requestFunc := func(g gs.Group) { requestChan <- g } @@ -106,15 +104,14 @@ func TestManager_receiveRequest_GroupExists(t *testing.T) { t.Errorf("Failed to marshal proto message: %+v", err) } - msg := message.Receive{ + listener := requestListener{m: m} + + msg := receive.Message{ Payload: requestMarshaled, - MessageType: message.GroupCreationRequest, + MessageType: catalog.GroupCreationRequest, } - rawMessages := make(chan message.Receive) - stop := stoppable.NewSingle("testStoppable") - go m.receiveRequest(rawMessages, stop) - rawMessages <- msg + go listener.Hear(msg) select { case <-requestChan: @@ -124,47 +121,21 @@ func TestManager_receiveRequest_GroupExists(t *testing.T) { } } -// Tests that the quit channel quits the worker. -func TestManager_receiveRequest_QuitChan(t *testing.T) { - prng := rand.New(rand.NewSource(42)) - requestChan := make(chan gs.Group) - requestFunc := func(g gs.Group) { requestChan <- g } - m, _ := newTestManagerWithStore(prng, 10, 0, requestFunc, nil, t) - - rawMessages := make(chan message.Receive) - stop := stoppable.NewSingle("testStoppable") - done := make(chan struct{}) - go func() { - m.receiveRequest(rawMessages, stop) - done <- struct{}{} - }() - if err := stop.Close(); err != nil { - t.Errorf("Failed to signal close to process: %+v", err) - } - - select { - case <-done: - case <-time.NewTimer(5 * time.Millisecond).C: - t.Error("receiveRequest() failed to close when the quit.") - } -} - // Tests that the callback is not called when the send message is not of the // correct type. -func TestManager_receiveRequest_SendMessageTypeError(t *testing.T) { +func TestRequestListener_Hear_BadMessageType(t *testing.T) { prng := rand.New(rand.NewSource(42)) requestChan := make(chan gs.Group) requestFunc := func(g gs.Group) { requestChan <- g } m, _ := newTestManagerWithStore(prng, 10, 0, requestFunc, nil, t) - msg := message.Receive{ - MessageType: message.NoType, + msg := receive.Message{ + MessageType: catalog.NoType, } - rawMessages := make(chan message.Receive) - stop := stoppable.NewSingle("singleStoppable") - go m.receiveRequest(rawMessages, stop) - rawMessages <- msg + listener := requestListener{m: m} + + go listener.Hear(msg) select { case receivedGrp := <-requestChan: @@ -212,9 +183,9 @@ func TestManager_readRequest(t *testing.T) { t.Errorf("Failed to marshal proto message: %+v", err) } - msg := message.Receive{ + msg := receive.Message{ Payload: requestMarshaled, - MessageType: message.GroupCreationRequest, + MessageType: catalog.GroupCreationRequest, } newGrp, err := m.readRequest(msg) @@ -232,8 +203,8 @@ func TestManager_readRequest(t *testing.T) { func TestManager_readRequest_MessageTypeError(t *testing.T) { m, _ := newTestManager(rand.New(rand.NewSource(42)), t) expectedErr := sendMessageTypeErr - msg := message.Receive{ - MessageType: message.NoType, + msg := receive.Message{ + MessageType: catalog.NoType, } _, err := m.readRequest(msg) @@ -255,9 +226,9 @@ func TestManager_readRequest_ProtoUnmarshalError(t *testing.T) { t.Errorf("Failed to marshal proto message: %+v", err) } - msg := message.Receive{ + msg := receive.Message{ Payload: requestMarshaled, - MessageType: message.GroupCreationRequest, + MessageType: catalog.GroupCreationRequest, } _, err = m.readRequest(msg) @@ -271,9 +242,9 @@ func TestManager_readRequest_ProtoUnmarshalError(t *testing.T) { func TestManager_readRequest_DeserializeMembershipError(t *testing.T) { m, _ := newTestManager(rand.New(rand.NewSource(42)), t) expectedErr := strings.SplitN(protoUnmarshalErr, "%", 2)[0] - msg := message.Receive{ + msg := receive.Message{ Payload: []byte("Invalid message."), - MessageType: message.GroupCreationRequest, + MessageType: catalog.GroupCreationRequest, } _, err := m.readRequest(msg) diff --git a/groupChat/utils_test.go b/groupChat/utils_test.go index efa002ebef24db9516325115dee171da848da1d8..9e2a31355679f087b52a21133095bdd49fd271f7 100644 --- a/groupChat/utils_test.go +++ b/groupChat/utils_test.go @@ -14,9 +14,9 @@ import ( "gitlab.com/elixxir/client/catalog" "gitlab.com/elixxir/client/cmix" "gitlab.com/elixxir/client/cmix/gateway" - "gitlab.com/elixxir/client/cmix/rounds" "gitlab.com/elixxir/client/cmix/identity" "gitlab.com/elixxir/client/cmix/message" + "gitlab.com/elixxir/client/cmix/rounds" clientE2E "gitlab.com/elixxir/client/e2e" "gitlab.com/elixxir/client/e2e/ratchet/partner" "gitlab.com/elixxir/client/e2e/ratchet/partner/session" @@ -242,11 +242,11 @@ type testE2eMessage struct { Payload []byte } -func (tnm *testE2eManager) AddPartner(partnerID *id.ID, partnerPubKey, myPrivKey *cyclic.Int, partnerSIDHPubKey *sidh.PublicKey, mySIDHPrivKey *sidh.PrivateKey, sendParams, receiveParams session.Params) (*partner.Manager, error) { +func (tnm *testE2eManager) AddPartner(partnerID *id.ID, partnerPubKey, myPrivKey *cyclic.Int, partnerSIDHPubKey *sidh.PublicKey, mySIDHPrivKey *sidh.PrivateKey, sendParams, receiveParams session.Params) (partner.Manager, error) { panic("implement me") } -func (tnm *testE2eManager) GetPartner(partnerID *id.ID) (*partner.Manager, error) { +func (tnm *testE2eManager) GetPartner(partnerID *id.ID) (partner.Manager, error) { panic("implement me") }