package logger

import (
	"os"
	"testing"

	"github.com/stretchr/testify/require"

	"github.com/influxdata/telegraf/selfstat"
)

func TestTextLogTargetDefault(t *testing.T) {
	instance = defaultHandler()
	cfg := &Config{
		Quiet: true,
	}
	require.NoError(t, SetupLogging(cfg))
	defer func() { require.NoError(t, CloseLogging()) }()

	logger, ok := instance.impl.(*textLogger)
	require.Truef(t, ok, "logging instance is not a default-logger but %T", instance.impl)
	require.Equal(t, logger.logger.Writer(), os.Stderr)
}

func TestErrorCounting(t *testing.T) {
	reg := selfstat.Register(
		"gather",
		"errors",
		map[string]string{"input": "test"},
	)
	defer selfstat.Unregister(
		"gather",
		"errors",
		map[string]string{"input": "test"},
	)
	iLog := New("inputs", "test", "")
	iLog.RegisterErrorCallback(func() {
		reg.Incr(1)
	})
	iLog.Error("something went wrong")
	iLog.Errorf("something went wrong")

	require.Equal(t, int64(2), reg.Get())
}
