diff --git a/ud/confirmFact.go b/ud/confirmFact.go new file mode 100644 index 0000000000000000000000000000000000000000..ab00ea74c99ce9735321f6dbe533af625c4b823c --- /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 0000000000000000000000000000000000000000..b048ad7e87a5b3f54b2f734135d24bf3a34f12e3 --- /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) + } + +}