82 lines
2.4 KiB
Go
82 lines
2.4 KiB
Go
package storage
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
|
|
_ "github.com/lib/pq"
|
|
"github.com/spf13/viper"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
var cfg *viper.Viper
|
|
|
|
func init() {
|
|
cfg = viper.New()
|
|
cfg.SetDefault("storage.db.psql.host", "localhost")
|
|
cfg.SetDefault("storage.db.psql.port", "5432")
|
|
cfg.SetDefault("storage.db.psql.user", "postgres")
|
|
cfg.SetDefault("storage.db.psql.password", "postgres")
|
|
cfg.SetDefault("storage.db.psql.dbname", "mobilityaccounts_tests")
|
|
cfg.SetDefault("storage.db.psql.sslmode", "disable")
|
|
cfg.SetDefault("storage.db.psql.schema", "carpool_incentives")
|
|
cfg.SetDefault("storage.db.psql.tables.incentive_subscriptions", "incentive_subscriptions")
|
|
cfg.SetConfigName("config") // Override default values in a config.yaml file within this directory
|
|
cfg.AddConfigPath(".")
|
|
cfg.ReadInConfig()
|
|
}
|
|
|
|
func TestPostgresqlStorage_Initialize(t *testing.T) {
|
|
storage, err := NewPostgresqlStorage(cfg)
|
|
require.NoError(t, err)
|
|
defer storage.DbConnection.Close()
|
|
|
|
err = storage.Migrate()
|
|
require.NoError(t, err)
|
|
|
|
_, err = storage.DbConnection.Exec(fmt.Sprintf("DELETE FROM %s;", storage.Tables["incentive_subscriptions"]))
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
func TestPostgresqlStorage_SubscribeIncentive(t *testing.T) {
|
|
|
|
storage, err := NewPostgresqlStorage(cfg)
|
|
require.NoError(t, err)
|
|
defer storage.DbConnection.Close()
|
|
|
|
err = storage.SubscribeIncentive(is1)
|
|
require.NoError(t, err)
|
|
err = storage.SubscribeIncentive(is2)
|
|
require.NoError(t, err)
|
|
err = storage.SubscribeIncentive(is3)
|
|
require.NoError(t, err)
|
|
|
|
res, err := storage.GetUserSubscriptions(testid)
|
|
require.NoError(t, err)
|
|
require.Len(t, res, 2)
|
|
for _, is := range res {
|
|
require.Contains(t, []string{is1.ID, is3.ID}, is.ID)
|
|
}
|
|
}
|
|
|
|
func TestPostgresqlStorage_GetSubscriptions(t *testing.T) {
|
|
|
|
storage, err := NewPostgresqlStorage(cfg)
|
|
require.NoError(t, err)
|
|
defer storage.DbConnection.Close()
|
|
|
|
res, err := storage.GetUserSubscriptions(is2.UserID)
|
|
require.NoError(t, err)
|
|
require.Len(t, res, 1)
|
|
fmt.Println(res[0])
|
|
fmt.Println(is2)
|
|
require.Equal(t, is2.ID, res[0].ID)
|
|
require.Equal(t, is2.IncentiveID, res[0].IncentiveID)
|
|
require.Equal(t, is2.UserID, res[0].UserID)
|
|
require.Equal(t, is2.Data, res[0].Data)
|
|
require.Equal(t, is2.Declined, res[0].Declined)
|
|
require.Equal(t, is2.IdentityVerificationIDs, res[0].IdentityVerificationIDs)
|
|
require.WithinDuration(t, is2.SubscriptionDatetime, res[0].SubscriptionDatetime, time.Millisecond)
|
|
}
|