package dbr import ( "context" "testing" "github.com/stretchr/testify/assert" ) func TestContext_DetectRuntimePanics(t *testing.T) { ctx := context.Background() // Run detection. ctx = DetectRuntime(ctx) // Expect a panic if the detection is run twice. assert.Panics(t, func() { ctx = DetectRuntime(ctx) }) } func TestContext_MockRuntimePanics(t *testing.T) { ctx := context.Background() // Run detection. ctx = MockRuntime(ctx, Environment{IsDbr: true, Version: "15.4"}) // Expect a panic if the mock function is run twice. assert.Panics(t, func() { MockRuntime(ctx, Environment{IsDbr: true, Version: "15.4"}) }) } func TestContext_RunsOnRuntimePanics(t *testing.T) { ctx := context.Background() // Expect a panic if the detection is not run. assert.Panics(t, func() { RunsOnRuntime(ctx) }) } func TestContext_RuntimeVersionPanics(t *testing.T) { ctx := context.Background() // Expect a panic if the detection is not run. assert.Panics(t, func() { RuntimeVersion(ctx) }) } func TestContext_RunsOnRuntime(t *testing.T) { ctx := context.Background() // Run detection. ctx = DetectRuntime(ctx) // Expect no panic because detection has run. assert.NotPanics(t, func() { RunsOnRuntime(ctx) }) } func TestContext_RuntimeVersion(t *testing.T) { ctx := context.Background() // Run detection. ctx = DetectRuntime(ctx) // Expect no panic because detection has run. assert.NotPanics(t, func() { RuntimeVersion(ctx) }) } func TestContext_RunsOnRuntimeWithMock(t *testing.T) { ctx := context.Background() assert.True(t, RunsOnRuntime(MockRuntime(ctx, Environment{IsDbr: true, Version: "15.4"}))) assert.False(t, RunsOnRuntime(MockRuntime(ctx, Environment{}))) } func TestContext_RuntimeVersionWithMock(t *testing.T) { ctx := context.Background() assert.Equal(t, "15.4", RuntimeVersion(MockRuntime(ctx, Environment{IsDbr: true, Version: "15.4"}))) assert.Empty(t, RuntimeVersion(MockRuntime(ctx, Environment{}))) }