feat(oonirun): add support for OONIRun v2 links (#844)

This diff adds support for OONIRun v2 links.

Part of https://github.com/ooni/probe/issues/2184.
This commit is contained in:
Simone Basso
2022-07-08 16:53:59 +02:00
committed by GitHub
parent ebb78c2848
commit 9a0153a349
11 changed files with 644 additions and 22 deletions
+20
View File
@@ -0,0 +1,20 @@
package mocks
import "github.com/ooni/probe-cli/v3/internal/model"
// KeyValueStore allows mocking model.KeyValueStore.
type KeyValueStore struct {
MockGet func(key string) (value []byte, err error)
MockSet func(key string, value []byte) (err error)
}
var _ model.KeyValueStore = &KeyValueStore{}
func (kvs *KeyValueStore) Get(key string) (value []byte, err error) {
return kvs.MockGet(key)
}
func (kvs *KeyValueStore) Set(key string, value []byte) (err error) {
return kvs.MockSet(key, value)
}
@@ -0,0 +1,37 @@
package mocks
import (
"errors"
"testing"
)
func TestKeyValueStore(t *testing.T) {
t.Run("Get", func(t *testing.T) {
expect := errors.New("mocked error")
kvs := &KeyValueStore{
MockGet: func(key string) (value []byte, err error) {
return nil, expect
},
}
out, err := kvs.Get("antani")
if !errors.Is(err, expect) {
t.Fatal("unexpected err", err)
}
if out != nil {
t.Fatal("unexpected out")
}
})
t.Run("Set", func(t *testing.T) {
expect := errors.New("mocked error")
kvs := &KeyValueStore{
MockSet: func(key string, value []byte) (err error) {
return expect
},
}
err := kvs.Set("antani", nil)
if !errors.Is(err, expect) {
t.Fatal("unexpected err", err)
}
})
}