Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
user-discovery-bot
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
archives
user-discovery-bot
Commits
bca789e0
Commit
bca789e0
authored
Jan 10, 2020
by
Jonah Husson
Browse files
Options
Downloads
Patches
Plain Diff
change mock send to use channels
parent
c2f9fefc
No related branches found
No related tags found
1 merge request
!5
Update udb to use new switchboard interfaces
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
testutil/mockSender.go
+4
-11
4 additions, 11 deletions
testutil/mockSender.go
udb/receive_test.go
+46
-15
46 additions, 15 deletions
udb/receive_test.go
udb/register_test.go
+14
-5
14 additions, 5 deletions
udb/register_test.go
with
64 additions
and
31 deletions
testutil/mockSender.go
+
4
−
11
View file @
bca789e0
...
@@ -3,26 +3,19 @@ package testutil
...
@@ -3,26 +3,19 @@ package testutil
import
(
import
(
"gitlab.com/elixxir/client/cmixproto"
"gitlab.com/elixxir/client/cmixproto"
"gitlab.com/elixxir/primitives/id"
"gitlab.com/elixxir/primitives/id"
"strings"
)
)
type
MockSender
struct
{
type
MockSender
struct
{
Val
bool
ch
chan
string
find
string
exclude
string
}
}
func
(
d
*
MockSender
)
Send
(
recipientID
*
id
.
User
,
msg
string
,
msgType
cmixproto
.
Type
)
{
func
(
d
*
MockSender
)
Send
(
recipientID
*
id
.
User
,
msg
string
,
msgType
cmixproto
.
Type
)
{
if
strings
.
Contains
(
msg
,
d
.
find
)
&&
(
d
.
exclude
==
""
||
!
strings
.
Contains
(
msg
,
d
.
exclude
))
{
d
.
ch
<-
msg
d
.
Val
=
true
}
}
}
func
NewMockSender
(
find
,
exclude
string
)
*
MockSender
{
func
NewMockSender
(
ch
chan
string
)
*
MockSender
{
d
:=
MockSender
{
d
:=
MockSender
{
Val
:
false
,
ch
:
ch
,
find
:
find
,
exclude
:
exclude
,
}
}
return
&
d
return
&
d
}
}
This diff is collapsed.
Click to expand it.
udb/receive_test.go
+
46
−
15
View file @
bca789e0
...
@@ -6,12 +6,14 @@ import (
...
@@ -6,12 +6,14 @@ import (
"gitlab.com/elixxir/primitives/id"
"gitlab.com/elixxir/primitives/id"
fingerprint2
"gitlab.com/elixxir/user-discovery-bot/fingerprint"
fingerprint2
"gitlab.com/elixxir/user-discovery-bot/fingerprint"
"gitlab.com/elixxir/user-discovery-bot/testutil"
"gitlab.com/elixxir/user-discovery-bot/testutil"
"strings"
"testing"
"testing"
"time"
"time"
)
)
func
TestSearchListener_Hear
(
t
*
testing
.
T
)
{
func
TestSearchListener_Hear
(
t
*
testing
.
T
)
{
mockSender
:=
testutil
.
NewMockSender
(
"FOUND"
,
""
)
ch
:=
make
(
chan
string
,
1
)
mockSender
:=
testutil
.
NewMockSender
(
ch
)
mockDB
:=
testutil
.
GetMockDatabase
(
"testid"
,
"testval"
,
"testkeyid"
,
"testkey"
,
false
,
false
)
mockDB
:=
testutil
.
GetMockDatabase
(
"testid"
,
"testval"
,
"testkeyid"
,
"testkey"
,
false
,
false
)
var
listener
=
SearchListener
{
var
listener
=
SearchListener
{
Sender
:
mockSender
,
Sender
:
mockSender
,
...
@@ -23,15 +25,22 @@ func TestSearchListener_Hear(t *testing.T) {
...
@@ -23,15 +25,22 @@ func TestSearchListener_Hear(t *testing.T) {
listener
.
Hear
(
msg
,
false
)
listener
.
Hear
(
msg
,
false
)
time
.
Sleep
(
3
*
time
.
Second
)
select
{
case
msgStr
:=
<-
ch
:
if
!
mockSender
.
Val
{
if
strings
.
Contains
(
msgStr
,
"SEARCH"
)
&&
strings
.
Contains
(
msgStr
,
"FOUND"
)
{
t
.
Error
(
"Did not receive search found message"
)
t
.
Log
(
"Received found message for search"
)
}
else
{
t
.
Error
(
"Did not receive found message for search"
)
}
}
case
<-
time
.
After
(
5
*
time
.
Second
)
:
t
.
Error
(
"Test timed out"
)
}
}
}
func
TestGetKeyListener_Hear
(
t
*
testing
.
T
)
{
func
TestGetKeyListener_Hear
(
t
*
testing
.
T
)
{
mockSender
:=
testutil
.
NewMockSender
(
"GETKEY"
,
"NOTFOUND"
)
ch
:=
make
(
chan
string
,
1
)
mockSender
:=
testutil
.
NewMockSender
(
ch
)
mockDB
:=
testutil
.
GetMockDatabase
(
"testid"
,
"testval"
,
"testkeyid"
,
"testkey"
,
false
,
false
)
mockDB
:=
testutil
.
GetMockDatabase
(
"testid"
,
"testval"
,
"testkeyid"
,
"testkey"
,
false
,
false
)
pubKeyBits
:=
"S8KXBczy0jins9uS4LgBPt0bkFl8t00MnZmExQ6GcOcu8O7DKgAsNzLU7a"
+
pubKeyBits
:=
"S8KXBczy0jins9uS4LgBPt0bkFl8t00MnZmExQ6GcOcu8O7DKgAsNzLU7a"
+
"+gMTbIsS995IL/kuFF8wcBaQJBY23095PMSQ/nMuetzhk9HdXxrGIiKBo3C/n4SClpq4H+PoF9XziEVKua8JxGM2o83KiCK3tNUpaZbAAElkjueY7wuD96h4oaA+WV5Nh87cnIZ+fAG0uLve2LSHZ0FBZb3glOpNAOv7PFWkvN2BO37ztOQCXTJe72Y5ReoYn7nWVNxGUh0ilal+BRuJt1GZ7whOGDRE0IXfURIoK2yjyAnyZJWWMhfGsL5S6iL4aXUs03mc8BHKRq3HRjvTE10l3YFA=="
"+gMTbIsS995IL/kuFF8wcBaQJBY23095PMSQ/nMuetzhk9HdXxrGIiKBo3C/n4SClpq4H+PoF9XziEVKua8JxGM2o83KiCK3tNUpaZbAAElkjueY7wuD96h4oaA+WV5Nh87cnIZ+fAG0uLve2LSHZ0FBZb3glOpNAOv7PFWkvN2BO37ztOQCXTJe72Y5ReoYn7nWVNxGUh0ilal+BRuJt1GZ7whOGDRE0IXfURIoK2yjyAnyZJWWMhfGsL5S6iL4aXUs03mc8BHKRq3HRjvTE10l3YFA=="
...
@@ -51,13 +60,21 @@ func TestGetKeyListener_Hear(t *testing.T) {
...
@@ -51,13 +60,21 @@ func TestGetKeyListener_Hear(t *testing.T) {
time
.
Sleep
(
3
*
time
.
Second
)
time
.
Sleep
(
3
*
time
.
Second
)
if
!
mockSender
.
Val
{
select
{
t
.
Error
(
"Did not receive getkey found message"
)
case
msgStr
:=
<-
ch
:
if
strings
.
Contains
(
msgStr
,
"GETKEY"
)
&&
!
strings
.
Contains
(
msgStr
,
"NOTFOUND"
)
{
t
.
Log
(
"Received found message for getkey"
)
}
else
{
t
.
Error
(
"Did not receive found message for search"
)
}
case
<-
time
.
After
(
5
*
time
.
Second
)
:
t
.
Error
(
"Test timed out"
)
}
}
}
}
func
TestPushKeyListener_Hear
(
t
*
testing
.
T
)
{
func
TestPushKeyListener_Hear
(
t
*
testing
.
T
)
{
mockSender
:=
testutil
.
NewMockSender
(
"PUSHKEY COMPLETE"
,
""
)
ch
:=
make
(
chan
string
,
1
)
mockSender
:=
testutil
.
NewMockSender
(
ch
)
mockDB
:=
testutil
.
GetMockDatabase
(
"testid"
,
"testval"
,
"testkeyid"
,
"testkey"
,
false
,
true
)
mockDB
:=
testutil
.
GetMockDatabase
(
"testid"
,
"testval"
,
"testkeyid"
,
"testkey"
,
false
,
true
)
pubKeyBits
:=
"S8KXBczy0jins9uS4LgBPt0bkFl8t00MnZmExQ6GcOcu8O7DKgAsNzLU7a"
+
pubKeyBits
:=
"S8KXBczy0jins9uS4LgBPt0bkFl8t00MnZmExQ6GcOcu8O7DKgAsNzLU7a"
+
"+gMTbIsS995IL/kuFF8wcBaQJBY23095PMSQ/nMuetzhk9HdXxrGIiKBo3C/n4SClpq4H+PoF9XziEVKua8JxGM2o83KiCK3tNUpaZbAAElkjueY7wuD96h4oaA+WV5Nh87cnIZ+fAG0uLve2LSHZ0FBZb3glOpNAOv7PFWkvN2BO37ztOQCXTJe72Y5ReoYn7nWVNxGUh0ilal+BRuJt1GZ7whOGDRE0IXfURIoK2yjyAnyZJWWMhfGsL5S6iL4aXUs03mc8BHKRq3HRjvTE10l3YFA=="
"+gMTbIsS995IL/kuFF8wcBaQJBY23095PMSQ/nMuetzhk9HdXxrGIiKBo3C/n4SClpq4H+PoF9XziEVKua8JxGM2o83KiCK3tNUpaZbAAElkjueY7wuD96h4oaA+WV5Nh87cnIZ+fAG0uLve2LSHZ0FBZb3glOpNAOv7PFWkvN2BO37ztOQCXTJe72Y5ReoYn7nWVNxGUh0ilal+BRuJt1GZ7whOGDRE0IXfURIoK2yjyAnyZJWWMhfGsL5S6iL4aXUs03mc8BHKRq3HRjvTE10l3YFA=="
...
@@ -73,14 +90,22 @@ func TestPushKeyListener_Hear(t *testing.T) {
...
@@ -73,14 +90,22 @@ func TestPushKeyListener_Hear(t *testing.T) {
time
.
Sleep
(
3
*
time
.
Second
)
time
.
Sleep
(
3
*
time
.
Second
)
if
!
mockSender
.
Val
{
select
{
t
.
Error
(
"Did not receive pushkey complete message"
)
case
msgStr
:=
<-
ch
:
if
strings
.
Contains
(
msgStr
,
"PUSHKEY COMPLETE"
)
{
t
.
Log
(
"Received complete message for pushkey"
)
}
else
{
t
.
Error
(
"Did not receive pushkey complete"
)
}
case
<-
time
.
After
(
5
*
time
.
Second
)
:
t
.
Error
(
"Test timed out"
)
}
}
}
}
func
TestRegisterListener_Hear
(
t
*
testing
.
T
)
{
func
TestRegisterListener_Hear
(
t
*
testing
.
T
)
{
ch
:=
make
(
chan
string
,
1
)
mockSender
:=
testutil
.
NewMockSender
(
ch
)
mockDB
:=
testutil
.
GetMockDatabase
(
"testid"
,
"testval"
,
"testkeyid"
,
"testkey"
,
true
,
false
)
mockDB
:=
testutil
.
GetMockDatabase
(
"testid"
,
"testval"
,
"testkeyid"
,
"testkey"
,
true
,
false
)
mockSender
:=
testutil
.
NewMockSender
(
"REGISTRATION COMPLETE"
,
""
)
pubKeyBits
:=
"S8KXBczy0jins9uS4LgBPt0bkFl8t00MnZmExQ6GcOcu8O7DKgAsNzLU7a"
+
pubKeyBits
:=
"S8KXBczy0jins9uS4LgBPt0bkFl8t00MnZmExQ6GcOcu8O7DKgAsNzLU7a"
+
"+gMTbIsS995IL/kuFF8wcBaQJBY23095PMSQ/nMuetzhk9HdXxrGIiKBo3C/n4SClpq4H+PoF9XziEVKua8JxGM2o83KiCK3tNUpaZbAAElkjueY7wuD96h4oaA+WV5Nh87cnIZ+fAG0uLve2LSHZ0FBZb3glOpNAOv7PFWkvN2BO37ztOQCXTJe72Y5ReoYn7nWVNxGUh0ilal+BRuJt1GZ7whOGDRE0IXfURIoK2yjyAnyZJWWMhfGsL5S6iL4aXUs03mc8BHKRq3HRjvTE10l3YFA=="
"+gMTbIsS995IL/kuFF8wcBaQJBY23095PMSQ/nMuetzhk9HdXxrGIiKBo3C/n4SClpq4H+PoF9XziEVKua8JxGM2o83KiCK3tNUpaZbAAElkjueY7wuD96h4oaA+WV5Nh87cnIZ+fAG0uLve2LSHZ0FBZb3glOpNAOv7PFWkvN2BO37ztOQCXTJe72Y5ReoYn7nWVNxGUh0ilal+BRuJt1GZ7whOGDRE0IXfURIoK2yjyAnyZJWWMhfGsL5S6iL4aXUs03mc8BHKRq3HRjvTE10l3YFA=="
...
@@ -101,8 +126,14 @@ func TestRegisterListener_Hear(t *testing.T) {
...
@@ -101,8 +126,14 @@ func TestRegisterListener_Hear(t *testing.T) {
time
.
Sleep
(
3
*
time
.
Second
)
time
.
Sleep
(
3
*
time
.
Second
)
if
!
mockSender
.
Val
{
select
{
t
.
Error
(
"Did not receive register message"
)
case
msgStr
:=
<-
ch
:
if
strings
.
Contains
(
msgStr
,
"REGISTRATION COMPLETE"
)
{
t
.
Log
(
"Received registration complete message"
)
}
else
{
t
.
Error
(
"Did not receive registration complete"
)
}
case
<-
time
.
After
(
5
*
time
.
Second
)
:
t
.
Error
(
"Test timed out"
)
}
}
}
}
This diff is collapsed.
Click to expand it.
udb/register_test.go
+
14
−
5
View file @
bca789e0
...
@@ -28,22 +28,22 @@ import (
...
@@ -28,22 +28,22 @@ import (
)
)
var
db
=
storage
.
NewDatabase
(
"test"
,
"password"
,
"regCodes"
,
"0.0.0.0:6969"
)
var
db
=
storage
.
NewDatabase
(
"test"
,
"password"
,
"regCodes"
,
"0.0.0.0:6969"
)
var
ch
=
make
(
chan
string
)
var
rl
=
RegisterListener
{
var
rl
=
RegisterListener
{
Sender
:
&
testutil
.
MockSender
{}
,
Sender
:
testutil
.
New
MockSender
(
ch
)
,
db
:
db
,
db
:
db
,
blacklist
:
*
InitBlackList
(
"./blacklists/bannedNames.txt"
),
blacklist
:
*
InitBlackList
(
"./blacklists/bannedNames.txt"
),
}
}
var
sl
=
SearchListener
{
var
sl
=
SearchListener
{
Sender
:
&
testutil
.
MockSender
{}
,
Sender
:
testutil
.
New
MockSender
(
ch
)
,
db
:
db
,
db
:
db
,
}
}
var
pl
=
PushKeyListener
{
var
pl
=
PushKeyListener
{
Sender
:
&
testutil
.
MockSender
{}
,
Sender
:
testutil
.
New
MockSender
(
ch
)
,
db
:
db
,
db
:
db
,
}
}
var
gl
=
GetKeyListener
{
var
gl
=
GetKeyListener
{
Sender
:
&
testutil
.
MockSender
{}
,
Sender
:
testutil
.
New
MockSender
(
ch
)
,
db
:
db
,
db
:
db
,
}
}
...
@@ -83,6 +83,15 @@ func NewMessage(msg string, msgType cmixproto.Type, sender *id.User) *parse.Mess
...
@@ -83,6 +83,15 @@ func NewMessage(msg string, msgType cmixproto.Type, sender *id.User) *parse.Mess
// NOTE: The send function defaults to a no-op when client is not set up. I am
// NOTE: The send function defaults to a no-op when client is not set up. I am
// not sure how I feel about it.
// not sure how I feel about it.
func
TestRegisterHappyPath
(
t
*
testing
.
T
)
{
func
TestRegisterHappyPath
(
t
*
testing
.
T
)
{
go
func
()
{
for
{
select
{
case
m
:=
<-
ch
:
t
.
Logf
(
"received message: %s"
,
m
)
default
:
}
}
}()
pubKeyBits
:=
"S8KXBczy0jins9uS4LgBPt0bkFl8t00MnZmExQ6GcOcu8O7DKgAsNzLU7a"
+
pubKeyBits
:=
"S8KXBczy0jins9uS4LgBPt0bkFl8t00MnZmExQ6GcOcu8O7DKgAsNzLU7a"
+
"+gMTbIsS995IL/kuFF8wcBaQJBY23095PMSQ/nMuetzhk9HdXxrGIiKBo3C/n4SClpq4H+PoF9XziEVKua8JxGM2o83KiCK3tNUpaZbAAElkjueY7wuD96h4oaA+WV5Nh87cnIZ+fAG0uLve2LSHZ0FBZb3glOpNAOv7PFWkvN2BO37ztOQCXTJe72Y5ReoYn7nWVNxGUh0ilal+BRuJt1GZ7whOGDRE0IXfURIoK2yjyAnyZJWWMhfGsL5S6iL4aXUs03mc8BHKRq3HRjvTE10l3YFA=="
"+gMTbIsS995IL/kuFF8wcBaQJBY23095PMSQ/nMuetzhk9HdXxrGIiKBo3C/n4SClpq4H+PoF9XziEVKua8JxGM2o83KiCK3tNUpaZbAAElkjueY7wuD96h4oaA+WV5Nh87cnIZ+fAG0uLve2LSHZ0FBZb3glOpNAOv7PFWkvN2BO37ztOQCXTJe72Y5ReoYn7nWVNxGUh0ilal+BRuJt1GZ7whOGDRE0IXfURIoK2yjyAnyZJWWMhfGsL5S6iL4aXUs03mc8BHKRq3HRjvTE10l3YFA=="
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment