feat: implement confirmer

This commit is contained in:
James Houlahan
2020-07-23 13:38:06 +02:00
parent be20714842
commit c8f118a26b
5 changed files with 133 additions and 0 deletions

View File

@ -0,0 +1,50 @@
package confirmer
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestConfirmerYes(t *testing.T) {
c := New()
req := c.NewRequest(1 * time.Second)
go func() {
assert.NoError(t, c.SetResponse(req.ID(), true))
}()
res, err := req.Result()
assert.NoError(t, err)
assert.True(t, res)
}
func TestConfirmerNo(t *testing.T) {
c := New()
req := c.NewRequest(1 * time.Second)
go func() {
assert.NoError(t, c.SetResponse(req.ID(), false))
}()
res, err := req.Result()
assert.NoError(t, err)
assert.False(t, res)
}
func TestConfirmerTimeout(t *testing.T) {
c := New()
req := c.NewRequest(1 * time.Second)
go func() {
time.Sleep(2 * time.Second)
assert.NoError(t, c.SetResponse(req.ID(), true))
}()
_, err := req.Result()
assert.Error(t, err)
}