2018-04-23 16:54:22 +01:00
|
|
|
// Copyright (C) 2018 Storj Labs, Inc.
|
|
|
|
// See LICENSE for copying information.
|
|
|
|
|
|
|
|
package overlay
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2018-06-20 15:28:46 +01:00
|
|
|
"flag"
|
|
|
|
"log"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
2018-04-23 16:54:22 +01:00
|
|
|
"testing"
|
2018-06-13 19:22:32 +01:00
|
|
|
"time"
|
2018-04-23 16:54:22 +01:00
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
2018-06-20 15:28:46 +01:00
|
|
|
"github.com/zeebo/errs"
|
|
|
|
"go.uber.org/zap"
|
|
|
|
"gopkg.in/spacemonkeygo/monkit.v2"
|
2018-04-23 16:54:22 +01:00
|
|
|
|
2018-06-13 19:22:32 +01:00
|
|
|
"storj.io/storj/internal/test"
|
2018-06-20 15:28:46 +01:00
|
|
|
"storj.io/storj/pkg/process"
|
2018-06-22 14:33:57 +01:00
|
|
|
// naming proto to avoid confusion with this package
|
2018-04-23 16:54:22 +01:00
|
|
|
)
|
|
|
|
|
2018-06-20 15:28:46 +01:00
|
|
|
func newTestService(t *testing.T) Service {
|
|
|
|
return Service{
|
|
|
|
logger: zap.NewNop(),
|
|
|
|
metrics: monkit.Default,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestProcess_redis(t *testing.T) {
|
|
|
|
flag.Set("localPort", "0")
|
2018-06-13 19:22:32 +01:00
|
|
|
done := test.EnsureRedis(t)
|
|
|
|
defer done()
|
|
|
|
|
2018-06-20 15:28:46 +01:00
|
|
|
o := newTestService(t)
|
|
|
|
ctx, _ := context.WithTimeout(context.Background(), 500*time.Millisecond)
|
2018-06-27 09:02:49 +01:00
|
|
|
err := o.Process(ctx, nil, nil)
|
2018-06-13 19:22:32 +01:00
|
|
|
assert.NoError(t, err)
|
|
|
|
}
|
2018-06-20 15:28:46 +01:00
|
|
|
|
|
|
|
func TestProcess_bolt(t *testing.T) {
|
|
|
|
flag.Set("localPort", "0")
|
|
|
|
flag.Set("redisAddress", "")
|
|
|
|
boltdbPath, err := filepath.Abs("test_bolt.db")
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
defer func() {
|
|
|
|
if err := os.Remove(boltdbPath); err != nil {
|
|
|
|
log.Println(errs.New("error while removing test bolt db: %s", err))
|
|
|
|
}
|
|
|
|
}()
|
|
|
|
}
|
|
|
|
|
|
|
|
flag.Set("boltdbPath", boltdbPath)
|
|
|
|
|
|
|
|
o := newTestService(t)
|
|
|
|
ctx, _ := context.WithTimeout(context.Background(), 500*time.Millisecond)
|
2018-06-27 09:02:49 +01:00
|
|
|
err = o.Process(ctx, nil, nil)
|
2018-06-20 15:28:46 +01:00
|
|
|
assert.NoError(t, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestProcess_error(t *testing.T) {
|
|
|
|
flag.Set("localPort", "0")
|
|
|
|
flag.Set("boltdbPath", "")
|
|
|
|
flag.Set("redisAddress", "")
|
|
|
|
|
|
|
|
o := newTestService(t)
|
|
|
|
ctx, _ := context.WithTimeout(context.Background(), 500*time.Millisecond)
|
2018-06-27 09:02:49 +01:00
|
|
|
err := o.Process(ctx, nil, nil)
|
2018-06-20 15:28:46 +01:00
|
|
|
assert.True(t, process.ErrUsage.Has(err))
|
|
|
|
}
|