From 94babafbe7542b5372cd12b332090b24a0a15404 Mon Sep 17 00:00:00 2001 From: Jonathan Wenger <jono@elixxir.io> Date: Fri, 20 Nov 2020 19:05:09 +0000 Subject: [PATCH] XX-2794 / Confirm Fact --- ud/confirmFact.go | 24 ++++++++++++++++++ ud/confirmFact_test.go | 56 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 ud/confirmFact.go create mode 100644 ud/confirmFact_test.go diff --git a/ud/confirmFact.go b/ud/confirmFact.go new file mode 100644 index 000000000..ab00ea74c --- /dev/null +++ b/ud/confirmFact.go @@ -0,0 +1,24 @@ +package ud + +import ( + pb "gitlab.com/elixxir/comms/mixmessages" + "gitlab.com/xx_network/comms/connect" + "gitlab.com/xx_network/comms/messages" +) + +type confirmFactComm interface { + SendConfirmFact(host *connect.Host, message *pb.FactConfirmRequest) (*messages.Ack, error) +} + +func (m *Manager) SendConfirmFact(confirmationID, code string) (*messages.Ack, error) { + return m.confirmFact(confirmationID, code, m.comms) +} + +func (m *Manager) confirmFact(confirmationID, code string, comm confirmFactComm) (*messages.Ack, error) { + msg := &pb.FactConfirmRequest{ + ConfirmationID: confirmationID, + Code: code, + } + + return comm.SendConfirmFact(m.host, msg) +} diff --git a/ud/confirmFact_test.go b/ud/confirmFact_test.go new file mode 100644 index 000000000..b048ad7e8 --- /dev/null +++ b/ud/confirmFact_test.go @@ -0,0 +1,56 @@ +package ud + +import ( + pb "gitlab.com/elixxir/comms/mixmessages" + "gitlab.com/xx_network/comms/connect" + "gitlab.com/xx_network/comms/messages" + "gitlab.com/xx_network/primitives/id" + "reflect" + "testing" +) + +type testComm struct { + request *pb.FactConfirmRequest +} + +func (t *testComm) SendConfirmFact(_ *connect.Host, message *pb.FactConfirmRequest) (*messages.Ack, error) { + t.request = message + return &messages.Ack{}, nil +} + +// Happy path. +func TestManager_confirmFact(t *testing.T) { + // Create new host + host, err := connect.NewHost(&id.UDB, "0.0.0.0", nil, connect.GetDefaultHostParams()) + if err != nil { + t.Fatalf("Could not create a new host: %+v", err) + } + + // Set up manager + m := &Manager{ + host: host, + } + + c := &testComm{} + + expectedRequest := &pb.FactConfirmRequest{ + ConfirmationID: "test", + Code: "1234", + } + + msg, err := m.confirmFact(expectedRequest.ConfirmationID, expectedRequest.Code, c) + if err != nil { + t.Errorf("confirmFact() returned an error: %+v", err) + } + + if !reflect.DeepEqual(*msg, messages.Ack{}) { + t.Errorf("confirmFact() did not return the expected Ack message."+ + "\n\texpected: %+v\n\treceived: %+v", messages.Ack{}, *msg) + } + + if !reflect.DeepEqual(expectedRequest, c.request) { + t.Errorf("end point did not recieve the expected request."+ + "\n\texpected: %+v\n\treceived: %+v", expectedRequest, c.request) + } + +} -- GitLab