package lightning

import (
	"context"
	"testing"

	"github.com/stretchr/testify/suite"
)

type localListObjsSuite struct {
	suite.Suite
}

func TestLocalListObjsSuite(t *testing.T) {
	suite.Run(t, new(localListObjsSuite))
}

func (s *localListObjsSuite) TestListObjects() {
	lister := &localObjectLister{
		base: "fixtures/format-csv",
	}
	iter, err := lister.ListObjects(context.Background(), &ListRequest{})
	s.Require().NoError(err)
	iterFileList := []string{}
	expectedFileList := []string{
		"csv-schema-create.sql",
		"csv.threads-schema.sql",
		"csv.threads.000000000.csv",
	}
	for {
		objInfo, err := iter.Next()
		if err != nil {
			if err == errListDone {
				break
			}
			s.FailNow(err.Error())
		}
		s.T().Logf("objInfo: %+v\n", objInfo)
		iterFileList = append(iterFileList, objInfo.Name)
	}
	s.Require().Equal(expectedFileList, iterFileList)
}
