Skip to content

Instantly share code, notes, and snippets.

@ashleyconnor
Last active May 28, 2023 18:16

Revisions

  1. ashleyconnor revised this gist May 28, 2023. 1 changed file with 15 additions and 24 deletions.
    39 changes: 15 additions & 24 deletions main_test.go
    Original file line number Diff line number Diff line change
    @@ -4,38 +4,29 @@ import (
    "context"
    "testing"

    "github.com/redis/go-redis/v9"
    goredis "github.com/redis/go-redis/v9"

    "github.com/testcontainers/testcontainers-go/modules/redis"

    "github.com/stretchr/testify/assert"
    "github.com/testcontainers/testcontainers-go"
    "github.com/testcontainers/testcontainers-go/wait"
    "github.com/stretchr/testify/require"
    )

    func TestWithRedis(t *testing.T) {
    ctx := context.Background()
    req := testcontainers.ContainerRequest{
    Image: "redis:latest",
    ExposedPorts: []string{"6379/tcp"},
    WaitingFor: wait.ForLog("Ready to accept connections"),
    }
    redisC, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
    ContainerRequest: req,
    Started: true,
    })
    if err != nil {
    t.Error(err)
    }
    defer func() {
    if err := redisC.Terminate(ctx); err != nil {
    t.Fatalf("failed to terminate container: %s", err.Error())

    redisContainer, err := redis.RunContainer(ctx)
    require.NoError(t, err)
    t.Cleanup(func() {
    if err := redisContainer.Terminate(ctx); err != nil {
    t.Fatalf("failed to terminate container: %s", err)
    }
    }()
    })

    endpoint, err := redisC.Endpoint(ctx, "")
    if err != nil {
    t.Error(err)
    }
    endpoint, err := redisContainer.Endpoint(ctx, "")
    require.NoError(t, err)

    client := redis.NewClient(&redis.Options{
    client := goredis.NewClient(&goredis.Options{
    Addr: endpoint,
    })

  2. ashleyconnor created this gist May 28, 2023.
    45 changes: 45 additions & 0 deletions main_test.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,45 @@
    package main

    import (
    "context"
    "testing"

    "github.com/redis/go-redis/v9"
    "github.com/stretchr/testify/assert"
    "github.com/testcontainers/testcontainers-go"
    "github.com/testcontainers/testcontainers-go/wait"
    )

    func TestWithRedis(t *testing.T) {
    ctx := context.Background()
    req := testcontainers.ContainerRequest{
    Image: "redis:latest",
    ExposedPorts: []string{"6379/tcp"},
    WaitingFor: wait.ForLog("Ready to accept connections"),
    }
    redisC, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
    ContainerRequest: req,
    Started: true,
    })
    if err != nil {
    t.Error(err)
    }
    defer func() {
    if err := redisC.Terminate(ctx); err != nil {
    t.Fatalf("failed to terminate container: %s", err.Error())
    }
    }()

    endpoint, err := redisC.Endpoint(ctx, "")
    if err != nil {
    t.Error(err)
    }

    client := redis.NewClient(&redis.Options{
    Addr: endpoint,
    })

    client.Set(ctx, "FOO", "BAR", 0)
    result := client.Get(ctx, "FOO")
    assert.Equal(t, "BAR", result.Val())
    }